Populate dotfiles repository
This commit is contained in:
commit
9aae1daa1c
9
.gitignore
vendored
Normal file
9
.gitignore
vendored
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# Ignore logs
|
||||||
|
tmux/.tmux/resurrect/
|
||||||
|
tmux/.tmux/plugins/tmux-sessionist
|
||||||
|
weechat/.weechat/logs
|
||||||
|
weechat/**/*.log
|
||||||
|
mpd/.mpd
|
||||||
|
!mpd/.mpd/playlists
|
||||||
|
emacs/.emacs.d/.cache/layouts/persp-auto-*
|
||||||
|
vim/.vim/.netrwhist
|
5
README.md
Normal file
5
README.md
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# Dotfiles
|
||||||
|
|
||||||
|
Compilation of my essential configs, managed with GNU stow
|
||||||
|
|
||||||
|
**oekk** now you can finally enjoy yourself
|
19
Xresources/.xrdb/colors/synthwave
Normal file
19
Xresources/.xrdb/colors/synthwave
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
*background: #312e39
|
||||||
|
*foreground: #c0a79a
|
||||||
|
*cursorColor: #554757
|
||||||
|
*color0: #33303b
|
||||||
|
*color1: #87404f
|
||||||
|
*color2: #4c9882
|
||||||
|
*color3: #71949a
|
||||||
|
*color4: #615772
|
||||||
|
*color5: #783e57
|
||||||
|
*color6: #554757
|
||||||
|
*color7: #c0a79a
|
||||||
|
*color8: #4f4b58
|
||||||
|
*color9: #87404f
|
||||||
|
*color10: #4c9882
|
||||||
|
*color11: #71949a
|
||||||
|
*color12: #615772
|
||||||
|
*color13: #783e57
|
||||||
|
*color14: #554757
|
||||||
|
*color15: #c0a79a
|
28
Xresources/.xrdb/urxvt-resources
Normal file
28
Xresources/.xrdb/urxvt-resources
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
Xft.autohint : 0
|
||||||
|
Xft.lcdfilter : lcddefault
|
||||||
|
Xft.hintstyle : hintslight
|
||||||
|
Xft.hinting : 1
|
||||||
|
!Xft.antialias : 1
|
||||||
|
Xft.rgba : rgb
|
||||||
|
Xcursor.size : 16
|
||||||
|
!URxvt.font: xft:Iosevka Term Slab Medium:size=11
|
||||||
|
URxvt*font: -uw-ttyp0-medium-r-normal--13-*-*-*-*-*-iso8859-1
|
||||||
|
URxvt*boldFont: -uw-ttyp0-bold-r-normal--13-*-*-*-*-*-iso8859-1
|
||||||
|
URxvt.iso14755: false
|
||||||
|
URxvt.geometry: 72x18
|
||||||
|
URxvt*letterSpace: 0
|
||||||
|
URxvt.lineSpace: 0
|
||||||
|
URxvt*depth: 32
|
||||||
|
URxvt*saveline: 2000
|
||||||
|
URxvt*termName: rxvt-256color
|
||||||
|
URxvt*iso14755: false
|
||||||
|
URxvt*scrollBar: false
|
||||||
|
URxvt*scrollBar_right: false
|
||||||
|
URxvt.perl-ext-common: default,clipboard,url-select
|
||||||
|
URxvt.keysym.Shift-Control-V: eval:paste_clipboard
|
||||||
|
URxvt.keysym.Shift-Control-C: eval:selection_to_clipboard
|
||||||
|
URxvt.urlLauncher: firefox
|
||||||
|
URxvt.underlineURLs: true
|
||||||
|
URxvt.urlButton: 1
|
||||||
|
URxvt*buffered: false
|
||||||
|
URxvt*urgentOnBell: true
|
74
compton/.config/compton.conf
Normal file
74
compton/.config/compton.conf
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
# Compton config
|
||||||
|
backend = "glx"; # Enables Opengl backend
|
||||||
|
paint-on-overlay = true; # These 3 can improve performance, work well in most cases
|
||||||
|
glx-no-stencil = true;
|
||||||
|
glx-no-rebind-pixmap = true;
|
||||||
|
glx-swap-method = true;
|
||||||
|
vsync = "opengl-mswc"; # Enables one of the vsync methods. Check here for more info: https://github.com/chjj/compton/wiki/vsync-guide
|
||||||
|
unredir-if-possible = true;
|
||||||
|
|
||||||
|
# Shadow
|
||||||
|
shadow = true; # Enabled client-side shadows on windows.
|
||||||
|
no-dock-shadow = true; # Avoid drawing shadows on dock/panel windows.
|
||||||
|
no-dnd-shadow = true; # Don't draw shadows on DND windows.
|
||||||
|
clear-shadow = true; # Zero the part of the shadow's mask behind the window (experimental).
|
||||||
|
shadow-radius = 7; # The blur radius for shadows. (default 12)
|
||||||
|
shadow-offset-x = -7; # The left offset for shadows. (default -15)
|
||||||
|
shadow-offset-y = -7; # The top offset for shadows. (default -15)
|
||||||
|
|
||||||
|
shadow-exclude = [
|
||||||
|
"! name~=''",
|
||||||
|
"name *= 'compton'",
|
||||||
|
"name *= 'chromium-browser'",
|
||||||
|
"name *= 'Chrome'",
|
||||||
|
"name *= 'mpv'",
|
||||||
|
"class_g = 'Conky'",
|
||||||
|
"_GTK_FRAME_EXTENTS@:c"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Blur
|
||||||
|
blur-background = true;
|
||||||
|
blur-method = "kawase";
|
||||||
|
blur-strength = 9;
|
||||||
|
# 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 = true;
|
||||||
|
|
||||||
|
blur-background-exclude = [
|
||||||
|
"window_type = 'desktop'",
|
||||||
|
"class_g *?= 'chromium-browser'",
|
||||||
|
"class_g *?= 'mpv'"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Fading
|
||||||
|
fading = true; # Fade windows during opacity changes.
|
||||||
|
fade-delta = 4; # The time between steps in a fade in milliseconds. (default 10).
|
||||||
|
fade-in-step = 0.03; # Opacity change between steps while fading in. (default 0.028).
|
||||||
|
fade-out-step = 0.03; # Opacity change between steps while fading out. (default 0.03).
|
||||||
|
|
||||||
|
# Opacity
|
||||||
|
menu-opacity = 1;
|
||||||
|
inactive-opacity = 1;
|
||||||
|
active-opacity = 1;
|
||||||
|
frame-opacity = 1;
|
||||||
|
inactive-opacity-override = false;
|
||||||
|
alpha-step = 0.06;
|
||||||
|
|
||||||
|
opacity-rule = [
|
||||||
|
"95:class_g *?='urxvt'",
|
||||||
|
"95:class_g *?='zathura'",
|
||||||
|
"95:class_g *?='emacs'"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Window type settings
|
||||||
|
# Disables shadows on tooltips and enables fading on tooltips
|
||||||
|
|
||||||
|
wintypes:
|
||||||
|
{
|
||||||
|
tooltip = {
|
||||||
|
fade = true;
|
||||||
|
shadow = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
90
conky/.conkyrc
Normal file
90
conky/.conkyrc
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
conky.config = {
|
||||||
|
--======================== Aqua-rings-110.conkyrc ========================================
|
||||||
|
--
|
||||||
|
-- Heavily modified version of SunForMiles.conkyrc;
|
||||||
|
-- Ported to Conky v1.10;
|
||||||
|
-- Removed unecessary ${font} calls, tweaked positions, colours etc;
|
||||||
|
-- Added BL forum atomfeed;
|
||||||
|
-- Designed to complement BunsenLabs Beam desktop themeing
|
||||||
|
--
|
||||||
|
-- by damo, July2017 <damo.linux@gmail.com>
|
||||||
|
--
|
||||||
|
--======================= Modification of ================================================
|
||||||
|
-- SunForMiles.conkyrc
|
||||||
|
-- Date : 05 July 2017
|
||||||
|
-- Author : Sun For Miles
|
||||||
|
-- Version : v0.41
|
||||||
|
-- License : Distributed under the terms of GNU GPL version 2 or later
|
||||||
|
--
|
||||||
|
-- This version is a modification of conkyrc_seamod, which is modification of conkyrc_lunatico,
|
||||||
|
-- which is modification of conkyrc_orange
|
||||||
|
--
|
||||||
|
-- conkyrc_orange: http://gnome-look.org/content/show.php?content=137503&forumpage=0
|
||||||
|
-- conkyrc_lunatico: http://gnome-look.org/content/show.php?content=142884
|
||||||
|
-- conkyrc_seamod: http://custom-linux.deviantart.com/art/Conky-Seamod-v0-1-283461046
|
||||||
|
--=============================================================================================
|
||||||
|
background = true,
|
||||||
|
update_interval = 1,
|
||||||
|
|
||||||
|
cpu_avg_samples = 1,
|
||||||
|
net_avg_samples = 2,
|
||||||
|
temperature_unit = 'celsius',
|
||||||
|
|
||||||
|
double_buffer = true,
|
||||||
|
no_buffers = true,
|
||||||
|
text_buffer_size = 2048,
|
||||||
|
|
||||||
|
gap_x = 40,
|
||||||
|
gap_y = 20,
|
||||||
|
minimum_width = 150, minimum_height = 600,
|
||||||
|
maximum_width = 300,
|
||||||
|
own_window = true,
|
||||||
|
own_window_transparent = true,
|
||||||
|
own_window_argb_visual = true,
|
||||||
|
own_window_type = 'desktop',
|
||||||
|
own_window_hints = 'undecorated,sticky,skip_taskbar,skip_pager,below',
|
||||||
|
border_inner_margin = 30,
|
||||||
|
border_outer_margin = 0,
|
||||||
|
alignment = 'top_right',
|
||||||
|
|
||||||
|
|
||||||
|
draw_shades = false,
|
||||||
|
draw_outline = false,
|
||||||
|
draw_borders = false,
|
||||||
|
draw_graph_borders = false,
|
||||||
|
|
||||||
|
override_utf8_locale = true,
|
||||||
|
use_xft = true,
|
||||||
|
--font = 'caviar dreams:size=10',
|
||||||
|
--font = 'Roboto Condensed:size=14',
|
||||||
|
font = 'Roboto Condensed:size=9',
|
||||||
|
xftalpha = 0.5,
|
||||||
|
uppercase = false,
|
||||||
|
|
||||||
|
-- Defining colors
|
||||||
|
default_color = '#FFFFFF',
|
||||||
|
-- Shades of Gray
|
||||||
|
color1 = 'DDDDDD',
|
||||||
|
color2 = 'AAAAAA',
|
||||||
|
color3 = '888888',
|
||||||
|
color4 = '678b8b',
|
||||||
|
color5 = '284f63',
|
||||||
|
color6 = '617b78',
|
||||||
|
color7 = '668989',
|
||||||
|
color8 = 'dae1e3',
|
||||||
|
color9 = '6B9083',
|
||||||
|
|
||||||
|
};
|
||||||
|
conky.text = [[
|
||||||
|
# Showing disk partitions: root, home and Data. Edit paths as required for your system
|
||||||
|
${voffset 10}
|
||||||
|
#${voffset -10}${font}${color3}CPU1: ${cpu cpu0}% ${cpubar cpu0}
|
||||||
|
#${voffset -5}${font}${color3}CPU2: ${cpu cpu1}% ${cpubar cpu1}
|
||||||
|
#${voffset 0}${font}${color3}RAM: ${memperc}% ${mem}/${memmax} ${membar}
|
||||||
|
${font Roboto Condensed:size=11:style=bold}${color4}${alignr}EMMC
|
||||||
|
${voffset 15}${alignr}${diskiograph 20,180 666666 68364B -t -l}
|
||||||
|
${voffset 0}
|
||||||
|
${offset 100}${font}${color3}Free: ${fs_free /}${alignr}Used: ${fs_used /}
|
||||||
|
# End
|
||||||
|
]];
|
||||||
|
|
2
emacs/.emacs.d/.cache/layouts/AIML
Normal file
2
emacs/.emacs.d/.cache/layouts/AIML
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
;; -*- mode: emacs-lisp; eval: (progn (pp-buffer) (indent-buffer)) -*-
|
||||||
|
((def-persp "AIML" ((def-buffer "streaming.aiml" "/home/coolneng/Documents/Uni/IA/Code/P1/examples/streaming.aiml" web-mode) (def-buffer "Descripcion_Series_Practica.txt" "/home/coolneng/Documents/Uni/IA/Code/P1/programAB/Descripcion_Series_Practica.txt" text-mode) (def-buffer "seriesnetflix.txt" "/home/coolneng/Documents/Uni/IA/Code/P1/programAB/bots/mybot/sets/seriesnetflix.txt" text-mode) (def-buffer "plataforma.txt" "/home/coolneng/Documents/Uni/IA/Code/P1/programAB/bots/mybot/sets/plataforma.txt" text-mode) (def-buffer "agente.aiml" "/home/coolneng/Documents/Uni/IA/Code/P1/programAB/bots/mybot/aiml/agente.aiml" web-mode)) (def-wconf (((min-height . 4) (min-width . 20) (min-height-ignore . 3) (min-width-ignore . 10) (min-height-safe . 1) (min-width-safe . 4) (min-pixel-height . 68) (min-pixel-width . 140) (min-pixel-height-ignore . 51) (min-pixel-width-ignore . 70) (min-pixel-height-safe . 17) (min-pixel-width-safe . 28)) hc (pixel-width . 1366) (pixel-height . 707) (total-width . 195) (total-height . 42) (normal-height . 1.0) (normal-width . 1.0) (combination-limit) (leaf (pixel-width . 683) (pixel-height . 707) (total-width . 97) (total-height . 42) (normal-height . 1.0) (normal-width . 0.5) (buffer "streaming.aiml" (selected) (hscroll . 0) (fringes 8 8 nil) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 206) (start . 1))) (leaf (last . t) (pixel-width . 683) (pixel-height . 707) (total-width . 98) (total-height . 42) (normal-height . 1.0) (normal-width . 0.5) (buffer "agente.aiml" (selected . t) (hscroll . 0) (fringes 8 8 nil) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 610) (start . 1))))) (def-params ((persp-file . "/home/coolneng/.emacs.d/.cache/layouts/AIML") (gui-eyebrowse-last-slot . 1) (gui-eyebrowse-current-slot . 1) (gui-eyebrowse-window-configs (1 (((min-height . 4) (min-width . 20) (min-height-ignore . 3) (min-width-ignore . 10) (min-height-safe . 1) (min-width-safe . 4) (min-pixel-height . 68) (min-pixel-width . 140) (min-pixel-height-ignore . 51) (min-pixel-width-ignore . 70) (min-pixel-height-safe . 17) (min-pixel-width-safe . 28)) hc (pixel-width . 1366) (pixel-height . 707) (total-width . 195) (total-height . 42) (normal-height . 1.0) (normal-width . 1.0) (combination-limit) (leaf (pixel-width . 683) (pixel-height . 707) (total-width . 97) (total-height . 42) (normal-height . 1.0) (normal-width . 0.5) (buffer "streaming.aiml" (selected) (hscroll . 0) (fringes 8 8 nil) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 206) (start . 1))) (leaf (last . t) (pixel-width . 683) (pixel-height . 707) (total-width . 98) (total-height . 42) (normal-height . 1.0) (normal-width . 0.5) (buffer "agente.aiml" (selected . t) (hscroll . 0) (fringes 8 8 nil) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 610) (start . 1)))) "")))) nil nil nil))
|
2
emacs/.emacs.d/.cache/layouts/C++
Normal file
2
emacs/.emacs.d/.cache/layouts/C++
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
;; -*- mode: emacs-lisp; eval: (progn (pp-buffer) (indent-buffer)) -*-
|
||||||
|
((def-persp "C++" ((def-buffer "Misc" "~/Documents/Uni/FP-2.0/CPP/Misc/" dired-mode)) (def-wconf (((min-height . 4) (min-width . 20) (min-height-ignore . 3) (min-width-ignore . 10) (min-height-safe . 1) (min-width-safe . 4) (min-pixel-height . 68) (min-pixel-width . 140) (min-pixel-height-ignore . 51) (min-pixel-width-ignore . 70) (min-pixel-height-safe . 17) (min-pixel-width-safe . 28)) hc (pixel-width . 1366) (pixel-height . 707) (total-width . 195) (total-height . 42) (normal-height . 1.0) (normal-width . 1.0) (combination-limit) (leaf (pixel-width . 683) (pixel-height . 707) (total-width . 97) (total-height . 42) (normal-height . 1.0) (normal-width . 0.5) (buffer "Misc" (selected . t) (hscroll . 0) (fringes 8 8 nil) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 568) (start . 1))) (leaf (last . t) (pixel-width . 683) (pixel-height . 707) (total-width . 98) (total-height . 42) (normal-height . 1.0) (normal-width . 0.5) (buffer "*ansi-term-1*" (selected) (hscroll . 0) (fringes 8 8 nil) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 3702) (start . 3379))))) (def-params ((gui-eyebrowse-window-configs (1 (((min-height . 4) (min-width . 20) (min-height-ignore . 3) (min-width-ignore . 10) (min-height-safe . 1) (min-width-safe . 4) (min-pixel-height . 68) (min-pixel-width . 140) (min-pixel-height-ignore . 51) (min-pixel-width-ignore . 70) (min-pixel-height-safe . 17) (min-pixel-width-safe . 28)) hc (pixel-width . 1366) (pixel-height . 707) (total-width . 195) (total-height . 42) (normal-height . 1.0) (normal-width . 1.0) (combination-limit) (leaf (pixel-width . 683) (pixel-height . 707) (total-width . 97) (total-height . 42) (normal-height . 1.0) (normal-width . 0.5) (buffer "Misc" (selected . t) (hscroll . 0) (fringes 8 8 nil) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 568) (start . 1))) (leaf (last . t) (pixel-width . 683) (pixel-height . 707) (total-width . 98) (total-height . 42) (normal-height . 1.0) (normal-width . 0.5) (buffer "*ansi-term-1*" (selected) (hscroll . 0) (fringes 8 8 nil) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 3702) (start . 3379)))) "")) (gui-eyebrowse-current-slot . 1) (gui-eyebrowse-last-slot . 1) (persp-file . "/home/coolneng/.emacs.d/.cache/layouts/C++"))) nil nil nil))
|
123
emacs/.emacs.d/.cache/layouts/Dots
Normal file
123
emacs/.emacs.d/.cache/layouts/Dots
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
;; -*- mode: emacs-lisp; eval: (progn (pp-buffer) (indent-buffer)) -*-
|
||||||
|
((def-persp "Dots"
|
||||||
|
((def-buffer ".spacemacs<emacs>" "/home/coolneng/.dotfiles/emacs/.spacemacs" emacs-lisp-mode)
|
||||||
|
(def-buffer ".spacemacs<Spacemacs dani>" "/home/coolneng/Documents/IT/Spacemacs dani/.spacemacs" emacs-lisp-mode))
|
||||||
|
(def-wconf
|
||||||
|
(((min-height . 4)
|
||||||
|
(min-width . 20)
|
||||||
|
(min-height-ignore . 3)
|
||||||
|
(min-width-ignore . 10)
|
||||||
|
(min-height-safe . 1)
|
||||||
|
(min-width-safe . 4)
|
||||||
|
(min-pixel-height . 68)
|
||||||
|
(min-pixel-width . 140)
|
||||||
|
(min-pixel-height-ignore . 51)
|
||||||
|
(min-pixel-width-ignore . 70)
|
||||||
|
(min-pixel-height-safe . 17)
|
||||||
|
(min-pixel-width-safe . 28))
|
||||||
|
hc
|
||||||
|
(pixel-width . 1366)
|
||||||
|
(pixel-height . 707)
|
||||||
|
(total-width . 195)
|
||||||
|
(total-height . 42)
|
||||||
|
(normal-height . 1.0)
|
||||||
|
(normal-width . 1.0)
|
||||||
|
(combination-limit)
|
||||||
|
(leaf
|
||||||
|
(pixel-width . 683)
|
||||||
|
(pixel-height . 707)
|
||||||
|
(total-width . 97)
|
||||||
|
(total-height . 42)
|
||||||
|
(normal-height . 1.0)
|
||||||
|
(normal-width . 0.5)
|
||||||
|
(buffer ".spacemacs<Spacemacs dani>"
|
||||||
|
(selected)
|
||||||
|
(hscroll . 0)
|
||||||
|
(fringes 8 8 nil)
|
||||||
|
(margins nil)
|
||||||
|
(scroll-bars nil 0 t nil 0 t)
|
||||||
|
(vscroll . 0)
|
||||||
|
(dedicated)
|
||||||
|
(point . 22948)
|
||||||
|
(start . 22556)))
|
||||||
|
(leaf
|
||||||
|
(last . t)
|
||||||
|
(pixel-width . 683)
|
||||||
|
(pixel-height . 707)
|
||||||
|
(total-width . 98)
|
||||||
|
(total-height . 42)
|
||||||
|
(normal-height . 1.0)
|
||||||
|
(normal-width . 0.5)
|
||||||
|
(buffer ".spacemacs<emacs>"
|
||||||
|
(selected . t)
|
||||||
|
(hscroll . 0)
|
||||||
|
(fringes 8 8 nil)
|
||||||
|
(margins nil)
|
||||||
|
(scroll-bars nil 0 t nil 0 t)
|
||||||
|
(vscroll . 0)
|
||||||
|
(dedicated)
|
||||||
|
(point . 2687)
|
||||||
|
(start . 2395)))))
|
||||||
|
(def-params
|
||||||
|
((gui-eyebrowse-window-configs
|
||||||
|
(1
|
||||||
|
(((min-height . 4)
|
||||||
|
(min-width . 20)
|
||||||
|
(min-height-ignore . 3)
|
||||||
|
(min-width-ignore . 10)
|
||||||
|
(min-height-safe . 1)
|
||||||
|
(min-width-safe . 4)
|
||||||
|
(min-pixel-height . 68)
|
||||||
|
(min-pixel-width . 140)
|
||||||
|
(min-pixel-height-ignore . 51)
|
||||||
|
(min-pixel-width-ignore . 70)
|
||||||
|
(min-pixel-height-safe . 17)
|
||||||
|
(min-pixel-width-safe . 28))
|
||||||
|
hc
|
||||||
|
(pixel-width . 1366)
|
||||||
|
(pixel-height . 707)
|
||||||
|
(total-width . 195)
|
||||||
|
(total-height . 42)
|
||||||
|
(normal-height . 1.0)
|
||||||
|
(normal-width . 1.0)
|
||||||
|
(combination-limit)
|
||||||
|
(leaf
|
||||||
|
(pixel-width . 683)
|
||||||
|
(pixel-height . 707)
|
||||||
|
(total-width . 97)
|
||||||
|
(total-height . 42)
|
||||||
|
(normal-height . 1.0)
|
||||||
|
(normal-width . 0.5)
|
||||||
|
(buffer ".spacemacs<Spacemacs dani>"
|
||||||
|
(selected)
|
||||||
|
(hscroll . 0)
|
||||||
|
(fringes 8 8 nil)
|
||||||
|
(margins nil)
|
||||||
|
(scroll-bars nil 0 t nil 0 t)
|
||||||
|
(vscroll . 0)
|
||||||
|
(dedicated)
|
||||||
|
(point . 22948)
|
||||||
|
(start . 22556)))
|
||||||
|
(leaf
|
||||||
|
(last . t)
|
||||||
|
(pixel-width . 683)
|
||||||
|
(pixel-height . 707)
|
||||||
|
(total-width . 98)
|
||||||
|
(total-height . 42)
|
||||||
|
(normal-height . 1.0)
|
||||||
|
(normal-width . 0.5)
|
||||||
|
(buffer ".spacemacs<emacs>"
|
||||||
|
(selected . t)
|
||||||
|
(hscroll . 0)
|
||||||
|
(fringes 8 8 nil)
|
||||||
|
(margins nil)
|
||||||
|
(scroll-bars nil 0 t nil 0 t)
|
||||||
|
(vscroll . 0)
|
||||||
|
(dedicated)
|
||||||
|
(point . 2687)
|
||||||
|
(start . 2395))))
|
||||||
|
""))
|
||||||
|
(gui-eyebrowse-current-slot . 1)
|
||||||
|
(gui-eyebrowse-last-slot . 1)
|
||||||
|
(persp-file . "/home/coolneng/.emacs.d/.cache/layouts/Dots")))
|
||||||
|
nil nil nil))
|
543
emacs/.spacemacs
Normal file
543
emacs/.spacemacs
Normal file
@ -0,0 +1,543 @@
|
|||||||
|
;; -*- mode: emacs-lisp; lexical-binding: t -*-
|
||||||
|
;; This file is loaded by Spacemacs at startup.
|
||||||
|
;; It must be stored in your home directory.
|
||||||
|
|
||||||
|
(defun dotspacemacs/layers ()
|
||||||
|
"Layer configuration:
|
||||||
|
This function should only modify configuration layer settings."
|
||||||
|
(setq-default
|
||||||
|
;; Base distribution to use. This is a layer contained in the directory
|
||||||
|
;; `+distribution'. For now available distributions are `spacemacs-base'
|
||||||
|
;; or `spacemacs'. (default 'spacemacs)
|
||||||
|
dotspacemacs-distribution 'spacemacs-base
|
||||||
|
|
||||||
|
;; Lazy installation of layers (i.e. layers are installed only when a file
|
||||||
|
;; with a supported type is opened). Possible values are `all', `unused'
|
||||||
|
;; and `nil'. `unused' will lazy install only unused layers (i.e. layers
|
||||||
|
;; not listed in variable `dotspacemacs-configuration-layers'), `all' will
|
||||||
|
;; lazy install any layer that support lazy installation even the layers
|
||||||
|
;; listed in `dotspacemacs-configuration-layers'. `nil' disable the lazy
|
||||||
|
;; installation feature and you have to explicitly list a layer in the
|
||||||
|
;; variable `dotspacemacs-configuration-layers' to install it.
|
||||||
|
;; (default 'unused)
|
||||||
|
dotspacemacs-enable-lazy-installation 'unused
|
||||||
|
|
||||||
|
;; If non-nil then Spacemacs will ask for confirmation before installing
|
||||||
|
;; a layer lazily. (default t)
|
||||||
|
dotspacemacs-ask-for-lazy-installation t
|
||||||
|
|
||||||
|
;; If non-nil layers with lazy install support are lazy installed.
|
||||||
|
;; List of additional paths where to look for configuration layers.
|
||||||
|
;; Paths must have a trailing slash (i.e. `~/.mycontribs/')
|
||||||
|
dotspacemacs-configuration-layer-path '()
|
||||||
|
|
||||||
|
;; List of configuration layers to load.
|
||||||
|
dotspacemacs-configuration-layers '(
|
||||||
|
|
||||||
|
;; ----------------------------------------------------------------
|
||||||
|
;; Example of useful layers you may want to use right away.
|
||||||
|
;; Uncomment some layer names and press `SPC f e R' (Vim style) or
|
||||||
|
;; `M-m f e R' (Emacs style) to install them.
|
||||||
|
;; ----------------------------------------------------------------
|
||||||
|
ivy
|
||||||
|
(auto-completion :variables
|
||||||
|
auto-completion-return-key-behavior 'complete
|
||||||
|
auto-completion-tab-key-behavior 'cycle)
|
||||||
|
;; better-defaults
|
||||||
|
emacs-lisp
|
||||||
|
git
|
||||||
|
markdown
|
||||||
|
html
|
||||||
|
;; org
|
||||||
|
(shell :variables
|
||||||
|
shell-default-height 30
|
||||||
|
shell-default-position 'bottom)
|
||||||
|
;; spell-checking
|
||||||
|
syntax-checking
|
||||||
|
;; version-control
|
||||||
|
(cmake :variables cmake-enable-cmake-ide-support 't)
|
||||||
|
(c-c++ :variables
|
||||||
|
c-c++-enable-clang-support 't
|
||||||
|
c-c++-default-mode-for-headers 'c++-mode)
|
||||||
|
java
|
||||||
|
shell-scripts
|
||||||
|
spacemacs-layouts
|
||||||
|
debug
|
||||||
|
;;ibuffer
|
||||||
|
)
|
||||||
|
|
||||||
|
;; List of additional packages that will be installed without being
|
||||||
|
;; wrapped in a layer. If you need some configuration for these
|
||||||
|
;; packages, then consider creating a layer. You can also put the
|
||||||
|
;; configuration in `dotspacemacs/user-config'.
|
||||||
|
;; To use a local version of a package, use the `:location' property:
|
||||||
|
;; '(your-package :location "~/path/to/your-package/")
|
||||||
|
;; Also include the dependencies as they will not be resolved automatically.
|
||||||
|
dotspacemacs-additional-packages '(
|
||||||
|
zerodark-theme
|
||||||
|
plan9-theme
|
||||||
|
winum
|
||||||
|
smartparens
|
||||||
|
company-irony
|
||||||
|
company-irony-c-headers
|
||||||
|
flycheck-irony
|
||||||
|
)
|
||||||
|
|
||||||
|
;; A list of packages that cannot be updated.
|
||||||
|
dotspacemacs-frozen-packages '()
|
||||||
|
|
||||||
|
;; A list of packages that will not be installed and loaded.
|
||||||
|
dotspacemacs-excluded-packages '()
|
||||||
|
|
||||||
|
;; Defines the behaviour of Spacemacs when installing packages.
|
||||||
|
;; Possible values are `used-only', `used-but-keep-unused' and `all'.
|
||||||
|
;; `used-only' installs only explicitly used packages and deletes any unused
|
||||||
|
;; packages as well as their unused dependencies. `used-but-keep-unused'
|
||||||
|
;; installs only the used packages but won't delete unused ones. `all'
|
||||||
|
;; installs *all* packages supported by Spacemacs and never uninstalls them.
|
||||||
|
;; (default is `used-only')
|
||||||
|
dotspacemacs-install-packages 'used-only))
|
||||||
|
|
||||||
|
(defun dotspacemacs/init ()
|
||||||
|
"Initialization:
|
||||||
|
This function is called at the very beginning of Spacemacs startup,
|
||||||
|
before layer configuration.
|
||||||
|
It should only modify the values of Spacemacs settings."
|
||||||
|
;; This setq-default sexp is an exhaustive list of all the supported
|
||||||
|
;; spacemacs settings.
|
||||||
|
(setq-default
|
||||||
|
;; If non-nil then enable support for the portable dumper. You'll need
|
||||||
|
;; to compile Emacs 27 from source following the instructions in file
|
||||||
|
;; EXPERIMENTAL.org at to root of the git repository.
|
||||||
|
;; (default nil)
|
||||||
|
dotspacemacs-enable-emacs-pdumper nil
|
||||||
|
|
||||||
|
;; File path pointing to emacs 27.1 executable compiled with support
|
||||||
|
;; for the portable dumper (this is currently the branch pdumper).
|
||||||
|
;; (default "emacs-27.0.50")
|
||||||
|
dotspacemacs-emacs-pdumper-executable-file "emacs-27.0.50"
|
||||||
|
|
||||||
|
;; Name of the Spacemacs dump file. This is the file will be created by the
|
||||||
|
;; portable dumper in the cache directory under dumps sub-directory.
|
||||||
|
;; To load it when starting Emacs add the parameter `--dump-file'
|
||||||
|
;; when invoking Emacs 27.1 executable on the command line, for instance:
|
||||||
|
;; ./emacs --dump-file=~/.emacs.d/.cache/dumps/spacemacs.pdmp
|
||||||
|
;; (default spacemacs.pdmp)
|
||||||
|
dotspacemacs-emacs-dumper-dump-file "spacemacs.pdmp"
|
||||||
|
|
||||||
|
;; If non-nil ELPA repositories are contacted via HTTPS whenever it's
|
||||||
|
;; possible. Set it to nil if you have no way to use HTTPS in your
|
||||||
|
;; environment, otherwise it is strongly recommended to let it set to t.
|
||||||
|
;; This variable has no effect if Emacs is launched with the parameter
|
||||||
|
;; `--insecure' which forces the value of this variable to nil.
|
||||||
|
;; (default t)
|
||||||
|
dotspacemacs-elpa-https t
|
||||||
|
|
||||||
|
;; Maximum allowed time in seconds to contact an ELPA repository.
|
||||||
|
;; (default 5)
|
||||||
|
dotspacemacs-elpa-timeout 5
|
||||||
|
|
||||||
|
;; Set `gc-cons-threshold' and `gc-cons-percentage' when startup finishes.
|
||||||
|
;; This is an advanced option and should not be changed unless you suspect
|
||||||
|
;; performance issues due to garbage collection operations.
|
||||||
|
;; (default '(100000000 0.1))
|
||||||
|
dotspacemacs-gc-cons '(100000000 0.1)
|
||||||
|
|
||||||
|
;; If non-nil then Spacelpa repository is the primary source to install
|
||||||
|
;; a locked version of packages. If nil then Spacemacs will install the
|
||||||
|
;; latest version of packages from MELPA. (default nil)
|
||||||
|
dotspacemacs-use-spacelpa nil
|
||||||
|
|
||||||
|
;; If non-nil then verify the signature for downloaded Spacelpa archives.
|
||||||
|
;; (default nil)
|
||||||
|
dotspacemacs-verify-spacelpa-archives nil
|
||||||
|
|
||||||
|
;; If non-nil then spacemacs will check for updates at startup
|
||||||
|
;; when the current branch is not `develop'. Note that checking for
|
||||||
|
;; new versions works via git commands, thus it calls GitHub services
|
||||||
|
;; whenever you start Emacs. (default nil)
|
||||||
|
dotspacemacs-check-for-update nil
|
||||||
|
|
||||||
|
;; If non-nil, a form that evaluates to a package directory. For example, to
|
||||||
|
;; use different package directories for different Emacs versions, set this
|
||||||
|
;; to `emacs-version'. (default 'emacs-version)
|
||||||
|
dotspacemacs-elpa-subdirectory 'emacs-version
|
||||||
|
|
||||||
|
;; One of `vim', `emacs' or `hybrid'.
|
||||||
|
;; `hybrid' is like `vim' except that `insert state' is replaced by the
|
||||||
|
;; `hybrid state' with `emacs' key bindings. The value can also be a list
|
||||||
|
;; with `:variables' keyword (similar to layers). Check the editing styles
|
||||||
|
;; section of the documentation for details on available variables.
|
||||||
|
;; (default 'vim)
|
||||||
|
dotspacemacs-editing-style 'vim
|
||||||
|
|
||||||
|
;; If non-nil output loading progress in `*Messages*' buffer. (default nil)
|
||||||
|
dotspacemacs-verbose-loading nil
|
||||||
|
|
||||||
|
;; Specify the startup banner. Default value is `official', it displays
|
||||||
|
;; the official spacemacs logo. An integer value is the index of text
|
||||||
|
;; banner, `random' chooses a random text banner in `core/banners'
|
||||||
|
;; directory. A string value must be a path to an image format supported
|
||||||
|
;; by your Emacs build.
|
||||||
|
;; If the value is nil then no banner is displayed. (default 'official)
|
||||||
|
dotspacemacs-startup-banner 'official
|
||||||
|
|
||||||
|
;; List of items to show in startup buffer or an association list of
|
||||||
|
;; the form `(list-type . list-size)`. If nil then it is disabled.
|
||||||
|
;; Possible values for list-type are:
|
||||||
|
;; `recents' `bookmarks' `projects' `agenda' `todos'.
|
||||||
|
;; List sizes may be nil, in which case
|
||||||
|
;; `spacemacs-buffer-startup-lists-length' takes effect.
|
||||||
|
dotspacemacs-startup-lists '((recents . 5)
|
||||||
|
(projects . 7))
|
||||||
|
|
||||||
|
;; True if the home buffer should respond to resize events. (default t)
|
||||||
|
dotspacemacs-startup-buffer-responsive t
|
||||||
|
|
||||||
|
;; Default major mode of the scratch buffer (default `text-mode')
|
||||||
|
dotspacemacs-scratch-mode 'text-mode
|
||||||
|
|
||||||
|
;; Initial message in the scratch buffer, such as "Welcome to Spacemacs!"
|
||||||
|
;; (default nil)
|
||||||
|
dotspacemacs-initial-scratch-message nil
|
||||||
|
|
||||||
|
;; List of themes, the first of the list is loaded when spacemacs starts.
|
||||||
|
;; Press `SPC T n' to cycle to the next theme in the list (works great
|
||||||
|
;; with 2 themes variants, one dark and one light)
|
||||||
|
dotspacemacs-themes '(zerodark
|
||||||
|
plan9)
|
||||||
|
|
||||||
|
;; Set the theme for the Spaceline. Supported themes are `spacemacs',
|
||||||
|
;; `all-the-icons', `custom', `doom', `vim-powerline' and `vanilla'. The
|
||||||
|
;; first three are spaceline themes. `doom' is the doom-emacs mode-line.
|
||||||
|
;; `vanilla' is default Emacs mode-line. `custom' is a user defined themes,
|
||||||
|
;; refer to the DOCUMENTATION.org for more info on how to create your own
|
||||||
|
;; spaceline theme. Value can be a symbol or list with additional properties.
|
||||||
|
;; (default '(spacemacs :separator wave :separator-scale 1.5))
|
||||||
|
dotspacemacs-mode-line-theme '(spacemacs :separator wave :separator-scale 1.5)
|
||||||
|
|
||||||
|
;; If non-nil the cursor color matches the state color in GUI Emacs.
|
||||||
|
;; (default t)
|
||||||
|
dotspacemacs-colorize-cursor-according-to-state t
|
||||||
|
|
||||||
|
;; Default font, or prioritized list of fonts. `powerline-scale' allows to
|
||||||
|
;; quickly tweak the mode-line size to make separators look not too crappy.
|
||||||
|
dotspacemacs-default-font '("Iosevka Slab"
|
||||||
|
:size 14
|
||||||
|
:weight normal
|
||||||
|
:width normal)
|
||||||
|
|
||||||
|
;; The leader key (default "SPC")
|
||||||
|
dotspacemacs-leader-key "SPC"
|
||||||
|
|
||||||
|
;; The key used for Emacs commands `M-x' (after pressing on the leader key).
|
||||||
|
;; (default "SPC")
|
||||||
|
dotspacemacs-emacs-command-key "SPC"
|
||||||
|
|
||||||
|
;; The key used for Vim Ex commands (default ":")
|
||||||
|
dotspacemacs-ex-command-key ":"
|
||||||
|
|
||||||
|
;; The leader key accessible in `emacs state' and `insert state'
|
||||||
|
;; (default "M-m")
|
||||||
|
dotspacemacs-emacs-leader-key "M-m"
|
||||||
|
|
||||||
|
;; Major mode leader key is a shortcut key which is the equivalent of
|
||||||
|
;; pressing `<leader> m`. Set it to `nil` to disable it. (default ",")
|
||||||
|
dotspacemacs-major-mode-leader-key ","
|
||||||
|
|
||||||
|
;; Major mode leader key accessible in `emacs state' and `insert state'.
|
||||||
|
;; (default "C-M-m")
|
||||||
|
dotspacemacs-major-mode-emacs-leader-key "C-M-m"
|
||||||
|
|
||||||
|
;; These variables control whether separate commands are bound in the GUI to
|
||||||
|
;; the key pairs `C-i', `TAB' and `C-m', `RET'.
|
||||||
|
;; Setting it to a non-nil value, allows for separate commands under `C-i'
|
||||||
|
;; and TAB or `C-m' and `RET'.
|
||||||
|
;; In the terminal, these pairs are generally indistinguishable, so this only
|
||||||
|
;; works in the GUI. (default nil)
|
||||||
|
dotspacemacs-distinguish-gui-tab nil
|
||||||
|
|
||||||
|
;; Name of the default layout (default "Default")
|
||||||
|
dotspacemacs-default-layout-name "Misc"
|
||||||
|
|
||||||
|
;; If non-nil the default layout name is displayed in the mode-line.
|
||||||
|
;; (default nil)
|
||||||
|
dotspacemacs-display-default-layout nil
|
||||||
|
|
||||||
|
;; If non-nil then the last auto saved layouts are resumed automatically upon
|
||||||
|
;; start. (default nil)
|
||||||
|
dotspacemacs-auto-resume-layouts nil
|
||||||
|
|
||||||
|
;; If non-nil, auto-generate layout name when creating new layouts. Only has
|
||||||
|
;; effect when using the "jump to layout by number" commands. (default nil)
|
||||||
|
dotspacemacs-auto-generate-layout-names nil
|
||||||
|
|
||||||
|
;; Size (in MB) above which spacemacs will prompt to open the large file
|
||||||
|
;; literally to avoid performance issues. Opening a file literally means that
|
||||||
|
;; no major mode or minor modes are active. (default is 1)
|
||||||
|
dotspacemacs-large-file-size 1
|
||||||
|
|
||||||
|
;; Location where to auto-save files. Possible values are `original' to
|
||||||
|
;; auto-save the file in-place, `cache' to auto-save the file to another
|
||||||
|
;; file stored in the cache directory and `nil' to disable auto-saving.
|
||||||
|
;; (default 'cache)
|
||||||
|
dotspacemacs-auto-save-file-location nil
|
||||||
|
|
||||||
|
;; Maximum number of rollback slots to keep in the cache. (default 5)
|
||||||
|
dotspacemacs-max-rollback-slots 5
|
||||||
|
|
||||||
|
;; If non-nil, the paste transient-state is enabled. While enabled, after you
|
||||||
|
;; paste something, pressing `C-j' and `C-k' several times cycles through the
|
||||||
|
;; elements in the `kill-ring'. (default nil)
|
||||||
|
dotspacemacs-enable-paste-transient-state nil
|
||||||
|
|
||||||
|
;; Which-key delay in seconds. The which-key buffer is the popup listing
|
||||||
|
;; the commands bound to the current keystroke sequence. (default 0.4)
|
||||||
|
dotspacemacs-which-key-delay 0.4
|
||||||
|
|
||||||
|
;; Which-key frame position. Possible values are `right', `bottom' and
|
||||||
|
;; `right-then-bottom'. right-then-bottom tries to display the frame to the
|
||||||
|
;; right; if there is insufficient space it displays it at the bottom.
|
||||||
|
;; (default 'bottom)
|
||||||
|
dotspacemacs-which-key-position 'bottom
|
||||||
|
|
||||||
|
;; Control where `switch-to-buffer' displays the buffer. If nil,
|
||||||
|
;; `switch-to-buffer' displays the buffer in the current window even if
|
||||||
|
;; another same-purpose window is available. If non-nil, `switch-to-buffer'
|
||||||
|
;; displays the buffer in a same-purpose window even if the buffer can be
|
||||||
|
;; displayed in the current window. (default nil)
|
||||||
|
dotspacemacs-switch-to-buffer-prefers-purpose nil
|
||||||
|
|
||||||
|
;; If non-nil a progress bar is displayed when spacemacs is loading. This
|
||||||
|
;; may increase the boot time on some systems and emacs builds, set it to
|
||||||
|
;; nil to boost the loading time. (default t)
|
||||||
|
dotspacemacs-loading-progress-bar t
|
||||||
|
|
||||||
|
;; If non-nil the frame is fullscreen when Emacs starts up. (default nil)
|
||||||
|
;; (Emacs 24.4+ only)
|
||||||
|
dotspacemacs-fullscreen-at-startup nil
|
||||||
|
|
||||||
|
;; If non-nil `spacemacs/toggle-fullscreen' will not use native fullscreen.
|
||||||
|
;; Use to disable fullscreen animations in OSX. (default nil)
|
||||||
|
dotspacemacs-fullscreen-use-non-native nil
|
||||||
|
|
||||||
|
;; If non-nil the frame is maximized when Emacs starts up.
|
||||||
|
;; Takes effect only if `dotspacemacs-fullscreen-at-startup' is nil.
|
||||||
|
;; (default nil) (Emacs 24.4+ only)
|
||||||
|
dotspacemacs-maximized-at-startup t
|
||||||
|
|
||||||
|
;; A value from the range (0..100), in increasing opacity, which describes
|
||||||
|
;; the transparency level of a frame when it's active or selected.
|
||||||
|
;; Transparency can be toggled through `toggle-transparency'. (default 90)
|
||||||
|
dotspacemacs-active-transparency 90
|
||||||
|
|
||||||
|
;; A value from the range (0..100), in increasing opacity, which describes
|
||||||
|
;; the transparency level of a frame when it's inactive or deselected.
|
||||||
|
;; Transparency can be toggled through `toggle-transparency'. (default 90)
|
||||||
|
dotspacemacs-inactive-transparency 90
|
||||||
|
|
||||||
|
;; If non-nil show the titles of transient states. (default t)
|
||||||
|
dotspacemacs-show-transient-state-title t
|
||||||
|
|
||||||
|
;; If non-nil show the color guide hint for transient state keys. (default t)
|
||||||
|
dotspacemacs-show-transient-state-color-guide t
|
||||||
|
|
||||||
|
;; If non-nil unicode symbols are displayed in the mode line.
|
||||||
|
;; If you use Emacs as a daemon and wants unicode characters only in GUI set
|
||||||
|
;; the value to quoted `display-graphic-p'. (default t)
|
||||||
|
dotspacemacs-mode-line-unicode-symbols t
|
||||||
|
|
||||||
|
;; If non-nil smooth scrolling (native-scrolling) is enabled. Smooth
|
||||||
|
;; scrolling overrides the default behavior of Emacs which recenters point
|
||||||
|
;; when it reaches the top or bottom of the screen. (default t)
|
||||||
|
dotspacemacs-smooth-scrolling t
|
||||||
|
|
||||||
|
;; Control line numbers activation.
|
||||||
|
;; If set to `t' or `relative' line numbers are turned on in all `prog-mode' and
|
||||||
|
;; `text-mode' derivatives. If set to `relative', line numbers are relative.
|
||||||
|
;; This variable can also be set to a property list for finer control:
|
||||||
|
;; '(:relative nil
|
||||||
|
;; :disabled-for-modes dired-mode
|
||||||
|
;; doc-view-mode
|
||||||
|
;; markdown-mode
|
||||||
|
;; org-mode
|
||||||
|
;; pdf-view-mode
|
||||||
|
;; text-mode
|
||||||
|
;; :size-limit-kb 1000)
|
||||||
|
;; (default nil)
|
||||||
|
dotspacemacs-line-numbers 't
|
||||||
|
|
||||||
|
;; Code folding method. Possible values are `evil' and `origami'.
|
||||||
|
;; (default 'evil)
|
||||||
|
dotspacemacs-folding-method 'evil
|
||||||
|
|
||||||
|
;; If non-nil `smartparens-strict-mode' will be enabled in programming modes.
|
||||||
|
;; (default nil)
|
||||||
|
dotspacemacs-smartparens-strict-mode nil
|
||||||
|
|
||||||
|
;; If non-nil pressing the closing parenthesis `)' key in insert mode passes
|
||||||
|
;; over any automatically added closing parenthesis, bracket, quote, etc…
|
||||||
|
;; This can be temporary disabled by pressing `C-q' before `)'. (default nil)
|
||||||
|
dotspacemacs-smart-closing-parenthesis nil
|
||||||
|
|
||||||
|
;; Select a scope to highlight delimiters. Possible values are `any',
|
||||||
|
;; `current', `all' or `nil'. Default is `all' (highlight any scope and
|
||||||
|
;; emphasis the current one). (default 'all)
|
||||||
|
dotspacemacs-highlight-delimiters 'all
|
||||||
|
|
||||||
|
;; If non-nil, start an Emacs server if one is not already running.
|
||||||
|
;; (default nil)
|
||||||
|
dotspacemacs-enable-server nil
|
||||||
|
|
||||||
|
;; Set the emacs server socket location.
|
||||||
|
;; If nil, uses whatever the Emacs default is, otherwise a directory path
|
||||||
|
;; like \"~/.emacs.d/server\". It has no effect if
|
||||||
|
;; `dotspacemacs-enable-server' is nil.
|
||||||
|
;; (default nil)
|
||||||
|
dotspacemacs-server-socket-dir nil
|
||||||
|
|
||||||
|
;; If non-nil, advise quit functions to keep server open when quitting.
|
||||||
|
;; (default nil)
|
||||||
|
dotspacemacs-persistent-server nil
|
||||||
|
|
||||||
|
;; List of search tool executable names. Spacemacs uses the first installed
|
||||||
|
;; tool of the list. Supported tools are `rg', `ag', `pt', `ack' and `grep'.
|
||||||
|
;; (default '("rg" "ag" "pt" "ack" "grep"))
|
||||||
|
dotspacemacs-search-tools '("rg" "ag" "pt" "ack" "grep")
|
||||||
|
|
||||||
|
;; Format specification for setting the frame title.
|
||||||
|
;; %a - the `abbreviated-file-name', or `buffer-name'
|
||||||
|
;; %t - `projectile-project-name'
|
||||||
|
;; %I - `invocation-name'
|
||||||
|
;; %S - `system-name'
|
||||||
|
;; %U - contents of $USER
|
||||||
|
;; %b - buffer name
|
||||||
|
;; %f - visited file name
|
||||||
|
;; %F - frame name
|
||||||
|
;; %s - process status
|
||||||
|
;; %p - percent of buffer above top of window, or Top, Bot or All
|
||||||
|
;; %P - percent of buffer above bottom of window, perhaps plus Top, or Bot or All
|
||||||
|
;; %m - mode name
|
||||||
|
;; %n - Narrow if appropriate
|
||||||
|
;; %z - mnemonics of buffer, terminal, and keyboard coding systems
|
||||||
|
;; %Z - like %z, but including the end-of-line format
|
||||||
|
;; (default "%I@%S")
|
||||||
|
dotspacemacs-frame-title-format "%I@%S"
|
||||||
|
|
||||||
|
;; Format specification for setting the icon title format
|
||||||
|
;; (default nil - same as frame-title-format)
|
||||||
|
dotspacemacs-icon-title-format nil
|
||||||
|
|
||||||
|
;; Delete whitespace while saving buffer. Possible values are `all'
|
||||||
|
;; to aggressively delete empty line and long sequences of whitespace,
|
||||||
|
;; `trailing' to delete only the whitespace at end of lines, `changed' to
|
||||||
|
;; delete only whitespace for changed lines or `nil' to disable cleanup.
|
||||||
|
;; (default nil)
|
||||||
|
dotspacemacs-whitespace-cleanup nil
|
||||||
|
|
||||||
|
;; Either nil or a number of seconds. If non-nil zone out after the specified
|
||||||
|
;; number of seconds. (default nil)
|
||||||
|
dotspacemacs-zone-out-when-idle nil
|
||||||
|
|
||||||
|
;; Run `spacemacs/prettify-org-buffer' when
|
||||||
|
;; visiting README.org files of Spacemacs.
|
||||||
|
;; (default nil)
|
||||||
|
dotspacemacs-pretty-docs nil))
|
||||||
|
|
||||||
|
(defun dotspacemacs/user-env ()
|
||||||
|
"Environment variables setup.
|
||||||
|
This function defines the environment variables for your Emacs session. By
|
||||||
|
default it calls `spacemacs/load-spacemacs-env' which loads the environment
|
||||||
|
variables declared in `~/.spacemacs.env' or `~/.spacemacs.d/.spacemacs.env'.
|
||||||
|
See the header of this file for more information."
|
||||||
|
(spacemacs/load-spacemacs-env))
|
||||||
|
|
||||||
|
(defun dotspacemacs/user-init ()
|
||||||
|
"Initialization for user code:
|
||||||
|
This function is called immediately after `dotspacemacs/init', before layer
|
||||||
|
configuration.
|
||||||
|
It is mostly for variables that should be set before packages are loaded.
|
||||||
|
If you are unsure, try setting them in `dotspacemacs/user-config' first."
|
||||||
|
)
|
||||||
|
|
||||||
|
(defun dotspacemacs/user-load ()
|
||||||
|
"Library to load while dumping.
|
||||||
|
This function is called only while dumping Spacemacs configuration. You can
|
||||||
|
`require' or `load' the libraries of your choice that will be included in the
|
||||||
|
dump."
|
||||||
|
)
|
||||||
|
|
||||||
|
(defun dotspacemacs/user-config ()
|
||||||
|
"Configuration for user code:
|
||||||
|
This function is called at the very end of Spacemacs startup, after layer
|
||||||
|
configuration.
|
||||||
|
Put your configuration code here, except for variables that should be set
|
||||||
|
before packages are loaded."
|
||||||
|
(smartparens-global-mode t)
|
||||||
|
(show-smartparens-global-mode +1)
|
||||||
|
(add-hook 'after-init-hook 'global-company-mode)
|
||||||
|
(add-to-list 'auto-mode-alist '("\\.tpp\\'" . c++-mode))
|
||||||
|
(setq split-height-threshold nil)
|
||||||
|
(setq split-width-threshold 0)
|
||||||
|
(global-set-key [f3] 'other-window)
|
||||||
|
(global-set-key [f4] 'ivy-switch-buffer)
|
||||||
|
(global-set-key [f5] 'delete-window)
|
||||||
|
(global-set-key [f6] 'counsel-recentf)
|
||||||
|
(windmove-default-keybindings)
|
||||||
|
(load-file "~/.emacs.d/private/recentf-ext.el"); Add dired in recentf
|
||||||
|
(setq compilation-finish-function ; Close compilation buffer automatically
|
||||||
|
(lambda (buf str)
|
||||||
|
(if (null (string-match ".*exited abnormally.*" str))
|
||||||
|
;;no errors, make the compilation window go away in a few seconds
|
||||||
|
(progn
|
||||||
|
(run-at-time
|
||||||
|
"1 sec" nil 'delete-windows-on
|
||||||
|
(get-buffer-create "*compilation*"))
|
||||||
|
(message "No Compilation Errors!")))))
|
||||||
|
(setq ibuffer-expert t) ; Remove buffer deletion confirmation
|
||||||
|
(setq ibuffer-show-empty-filter-groups nil) ; Cleaner ibuffer
|
||||||
|
(add-hook 'realgud-short-key-mode-hook ; Short key mode for realgud
|
||||||
|
(lambda ()
|
||||||
|
(local-set-key "\C-c" realgud:shortkey-mode-map)))
|
||||||
|
(setq magit-repository-directories
|
||||||
|
'(("~/Documents/Uni" . 3)))
|
||||||
|
(add-to-list 'auto-mode-alist '("\\.aiml\\'" . web-mode))
|
||||||
|
(defun display-new-buffer (buffer force-other-window) ; Vertical/horizontal split based on the screen space
|
||||||
|
(or (get-buffer-window buffer)
|
||||||
|
(if (one-window-p)
|
||||||
|
(let ((new-win
|
||||||
|
(if (> (window-width) 100)
|
||||||
|
(split-window-horizontally)
|
||||||
|
(split-window-vertically))))
|
||||||
|
(set-window-buffer new-win buffer)
|
||||||
|
new-win)
|
||||||
|
(let ((new-win (get-lru-window)))
|
||||||
|
(set-window-buffer new-win buffer)
|
||||||
|
new-win))))
|
||||||
|
(setq display-buffer-function 'display-new-buffer)
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
;; Do not write anything past this comment. This is where Emacs will
|
||||||
|
;; auto-generate custom variable definitions.
|
||||||
|
(defun dotspacemacs/emacs-custom-settings ()
|
||||||
|
"Emacs custom settings.
|
||||||
|
This is an auto-generated function, do not modify its content directly, use
|
||||||
|
Emacs customize menu instead.
|
||||||
|
This function is called at the very end of Spacemacs initialization."
|
||||||
|
(custom-set-variables
|
||||||
|
;; custom-set-variables was added by Custom.
|
||||||
|
;; If you edit it by hand, you could mess it up, so be careful.
|
||||||
|
;; Your init file should contain only one such instance.
|
||||||
|
;; If there is more than one, they won't work right.
|
||||||
|
'(evil-want-Y-yank-to-eol nil)
|
||||||
|
'(package-selected-packages
|
||||||
|
(quote
|
||||||
|
(web-mode web-beautify tagedit slim-mode scss-mode sass-mode pug-mode prettier-js impatient-mode htmlize simple-httpd haml-mode emmet-mode counsel-css company-web web-completion-data smeargle magit-svn magit-gitflow magit-popup gitignore-templates gitignore-mode gitconfig-mode gitattributes-mode git-timemachine git-messenger git-link evil-magit magit transient lv git-commit with-editor dash hasklig-mode all-the-icons yasnippet-snippets ivy-hydra counsel swiper helm helm-core ivy flycheck company hydra zerodark-theme xterm-color winum which-key wgrep use-package smex smartparens shell-pop realgud plan9-theme persp-mode pcre2el overseer nameless mvn multi-term mmm-mode meghanada maven-test-mode markdown-toc macrostep ivy-yasnippet ivy-xref ivy-rtags insert-shebang ibuffer-projectile helm-make groovy-mode groovy-imports gradle-mode google-c-style gh-md fuzzy flycheck-rtags flycheck-pos-tip flycheck-irony flycheck-bashate flx fish-mode eyebrowse evil eshell-z eshell-prompt-extras esh-help ensime elisp-slime-nav dotenv-mode disaster diminish company-statistics company-shell company-rtags company-irony-c-headers company-irony company-emacs-eclim company-c-headers cmake-mode cmake-ide clang-format bind-map auto-yasnippet auto-compile async ac-ispell))))
|
||||||
|
(custom-set-faces
|
||||||
|
;; custom-set-faces was added by Custom.
|
||||||
|
;; If you edit it by hand, you could mess it up, so be careful.
|
||||||
|
;; Your init file should contain only one such instance.
|
||||||
|
;; If there is more than one, they won't work right.
|
||||||
|
)
|
||||||
|
)
|
39
fish/.config/fish/config.fish
Normal file
39
fish/.config/fish/config.fish
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
# Fish config file
|
||||||
|
fundle plugin 'decors/fish-colored-man'
|
||||||
|
fundle plugin 'oh-my-fish/theme-nai'
|
||||||
|
|
||||||
|
fundle init
|
||||||
|
|
||||||
|
# Man colors
|
||||||
|
set -g man_standout -o blue
|
||||||
|
set -g man_bold -o magenta
|
||||||
|
|
||||||
|
# Text Editor
|
||||||
|
export EDITOR="vim"
|
||||||
|
|
||||||
|
# Aliases
|
||||||
|
alias f "fff"
|
||||||
|
alias tmux "tmux -2"
|
||||||
|
alias peerflix "peerflix -d"
|
||||||
|
alias xclip "xclip -selection clipboard"
|
||||||
|
|
||||||
|
function fish_title
|
||||||
|
true
|
||||||
|
end
|
||||||
|
|
||||||
|
# Spacemacs
|
||||||
|
if test -n "$EMACS"
|
||||||
|
set -x TERM eterm-color
|
||||||
|
end
|
||||||
|
|
||||||
|
# fff
|
||||||
|
## Directory color [0-9]
|
||||||
|
export FFF_COL1=3
|
||||||
|
export FFF_COL2=8
|
||||||
|
|
||||||
|
## Favourites (keys 1-9) (dir or file)
|
||||||
|
export FFF_FAV1=/home/coolneng/Nextcloud/Documents/Archive-uni/Second\ year/
|
||||||
|
export FFF_FAV2=/home/coolneng/Nextcloud/Documents/Books/Academic/
|
||||||
|
export FFF_FAV3=/home/coolneng/Nextcloud/Documents/Papers
|
||||||
|
export FFF_FAV4=/home/coolneng/Nextcloud/Documents/Knowledge/
|
||||||
|
export FFF_FAV5=/home/coolneng/Nextcloud/Photos/
|
29
fish/.config/fish/fish_variables
Normal file
29
fish/.config/fish/fish_variables
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
# This file contains fish universal variable definitions.
|
||||||
|
# VERSION: 3.0
|
||||||
|
SETUVAR fish_color_autosuggestion:555\x1ebrblack
|
||||||
|
SETUVAR fish_color_cancel:\x2dr
|
||||||
|
SETUVAR fish_color_command:005fd7
|
||||||
|
SETUVAR fish_color_comment:990000
|
||||||
|
SETUVAR fish_color_cwd:green
|
||||||
|
SETUVAR fish_color_cwd_root:red
|
||||||
|
SETUVAR fish_color_end:009900
|
||||||
|
SETUVAR fish_color_error:ff0000
|
||||||
|
SETUVAR fish_color_escape:00a6b2
|
||||||
|
SETUVAR fish_color_history_current:\x2d\x2dbold
|
||||||
|
SETUVAR fish_color_host:normal
|
||||||
|
SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue
|
||||||
|
SETUVAR fish_color_normal:normal
|
||||||
|
SETUVAR fish_color_operator:00a6b2
|
||||||
|
SETUVAR fish_color_param:00afff
|
||||||
|
SETUVAR fish_color_quote:999900
|
||||||
|
SETUVAR fish_color_redirection:00afff
|
||||||
|
SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack
|
||||||
|
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
|
||||||
|
SETUVAR fish_color_user:brgreen
|
||||||
|
SETUVAR fish_color_valid_path:\x2d\x2dunderline
|
||||||
|
SETUVAR fish_greeting:Welcome\x20to\x20fish\x2c\x20the\x20friendly\x20interactive\x20shell
|
||||||
|
SETUVAR fish_key_bindings:fish_default_key_bindings
|
||||||
|
SETUVAR fish_pager_color_completion:\x1d
|
||||||
|
SETUVAR fish_pager_color_description:B3A06D\x1eyellow
|
||||||
|
SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
|
||||||
|
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
|
425
fish/.config/fish/functions/fundle.fish
Normal file
425
fish/.config/fish/functions/fundle.fish
Normal file
@ -0,0 +1,425 @@
|
|||||||
|
set __fundle_current_version '0.7.0'
|
||||||
|
|
||||||
|
function __fundle_seq -a upto
|
||||||
|
seq 1 1 $upto 2>/dev/null
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fundle_next_arg -a index
|
||||||
|
set -l args $argv[2..-1]
|
||||||
|
set -l arg_index (math $index + 1)
|
||||||
|
if test (count $args) -lt $arg_index
|
||||||
|
echo "missing argument for $args[$index]"
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
set -l arg $args[$arg_index]
|
||||||
|
switch $arg
|
||||||
|
case '--*'
|
||||||
|
echo "expected argument for $args[$index], got $arg"; and return 1
|
||||||
|
case '*'
|
||||||
|
echo $arg; and return 0
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fundle_compare_versions -a version1 -a version2
|
||||||
|
for i in (__fundle_seq 4)
|
||||||
|
set -l v1 (echo $version1 | cut -d '.' -f $i | sed -Ee 's/[a-z]+//g')
|
||||||
|
set -l v2 (echo $version2 | cut -d '.' -f $i | sed -Ee 's/[a-z]+//g')
|
||||||
|
if test \( -n $v1 -a -z $v2 \) -o \( -n $v1 -a -n $v2 -a $v1 -lt $v2 \)
|
||||||
|
echo -n "lt"; and return 0
|
||||||
|
else if test \( -z $v1 -a -n $v2 \) -o \( -n $v1 -a -n $v2 -a $v1 -gt $v2 \)
|
||||||
|
echo -n "gt"; and return 0
|
||||||
|
end
|
||||||
|
end
|
||||||
|
echo -n "eq"; and return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fundle_date -d "returns a date"
|
||||||
|
set -l d (date +%s%N)
|
||||||
|
if echo $d | string match -rvq 'N'
|
||||||
|
echo $d
|
||||||
|
else
|
||||||
|
gdate +%s%N
|
||||||
|
end
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fundle_self_update -d "updates fundle"
|
||||||
|
set -l fundle_repo_url "https://github.com/tuvistavie/fundle.git"
|
||||||
|
# This `sed` stays for now since doing it easily with `string` requires "--filter", which is only in 2.6.0
|
||||||
|
set -l latest (command git ls-remote --tags $fundle_repo_url | sed -n -e 's|.*refs/tags/v\(.*\)|\1|p' | tail -n 1)
|
||||||
|
if test (__fundle_compare_versions $latest (__fundle_version)) != "gt"
|
||||||
|
echo "fundle is already up to date"; and return 0
|
||||||
|
else
|
||||||
|
set -l file_url_template 'https://raw.githubusercontent.com/tuvistavie/fundle/VERSION/functions/fundle.fish'
|
||||||
|
set -l file_url (string replace 'VERSION' -- "v$latest" $file_url_template)
|
||||||
|
set -l tmp_file (mktemp /tmp/fundle.XXX)
|
||||||
|
set -l update_message "fundle has been updated to version $latest"
|
||||||
|
curl -Ls $file_url > $tmp_file; and mv $tmp_file (status -f); and echo $update_message; and return 0
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fundle_url_rev -d "prints the revision from the url" -a git_url
|
||||||
|
set -l rev (echo $git_url | cut -d '#' -f 2 -s)
|
||||||
|
if test -n "$rev"
|
||||||
|
echo $rev
|
||||||
|
else
|
||||||
|
echo master
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fundle_remote_url -d "prints the remote url from the full git url" -a git_url
|
||||||
|
echo $git_url | cut -d '#' -f 1
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fundle_rev_parse -d "prints the revision if any" -a dir -a commitish
|
||||||
|
set -l sha (command git --git-dir $dir rev-parse -q --verify $commitish 2>/dev/null)
|
||||||
|
if test $status -eq 0
|
||||||
|
echo -n $sha
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fundle_commit_sha -d "returns sha of the commit-ish" -a dir -a commitish
|
||||||
|
if test -d "$dir/.git"
|
||||||
|
set dir "$dir/.git"
|
||||||
|
end
|
||||||
|
if __fundle_rev_parse $dir "origin/$commitish"
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
__fundle_rev_parse $dir $commitish
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fundle_plugins_dir -d "returns fundle directory"
|
||||||
|
if test -z "$fundle_plugins_dir"
|
||||||
|
if test -n "$XDG_CONFIG_HOME"
|
||||||
|
echo $XDG_CONFIG_HOME/fish/fundle
|
||||||
|
else
|
||||||
|
echo $HOME/.config/fish/fundle
|
||||||
|
end
|
||||||
|
else
|
||||||
|
echo $fundle_plugins_dir
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fundle_no_git -d "check if git is installed"
|
||||||
|
# `command -q` is >= 2.5.0
|
||||||
|
if not command -s git > /dev/null 2>&1
|
||||||
|
echo "git needs to be installed and in the path"
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fundle_check_date -d "check date"
|
||||||
|
if date +%s%N | string match -rvq 'N'
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
if command -s gdate > /dev/null 2>&1
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
echo "You need to have a GNU date compliant date installed to use profiling. Use 'brew install coreutils' on OSX"
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fundle_get_url -d "returns the url for the given plugin" -a repo
|
||||||
|
echo "https://github.com/$repo.git"
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fundle_update_plugin -d "update the given plugin" -a git_dir -a remote_url
|
||||||
|
command git --git-dir=$git_dir remote set-url origin $remote_url 2>/dev/null; and \
|
||||||
|
command git --git-dir=$git_dir fetch -q 2>/dev/null
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fundle_install_plugin -d "install/update the given plugin" -a plugin -a git_url
|
||||||
|
if __fundle_no_git
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l plugin_dir (__fundle_plugins_dir)/$plugin
|
||||||
|
set -l git_dir $plugin_dir/.git
|
||||||
|
set -l remote_url (__fundle_remote_url $git_url)
|
||||||
|
set -l update ""
|
||||||
|
|
||||||
|
if contains __update $argv
|
||||||
|
set update true
|
||||||
|
end
|
||||||
|
|
||||||
|
if test -d $plugin_dir
|
||||||
|
if test -n "$update"
|
||||||
|
echo "Updating $plugin"
|
||||||
|
__fundle_update_plugin $git_dir $remote_url
|
||||||
|
else
|
||||||
|
echo "$argv[1] installed in $plugin_dir"
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
else
|
||||||
|
echo "Installing $plugin"
|
||||||
|
command git clone -q $remote_url $plugin_dir
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l sha (__fundle_commit_sha $git_dir (__fundle_url_rev $git_url))
|
||||||
|
if test $status -eq 0
|
||||||
|
command git --git-dir="$git_dir" --work-tree="$plugin_dir" checkout -q -f $sha
|
||||||
|
else
|
||||||
|
echo "Could not update $plugin"
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fundle_show_doc_msg -d "show a link to fundle docs"
|
||||||
|
if test (count $argv) -ge 1
|
||||||
|
echo $argv
|
||||||
|
end
|
||||||
|
echo "See the docs for more info. https://github.com/tuvistavie/fundle"
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fundle_load_plugin -a plugin -a path -a fundle_dir -a profile -d "load a plugin"
|
||||||
|
if begin; set -q __fundle_loaded_plugins; and contains $plugin $__fundle_loaded_plugins; end
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l plugin_dir (string replace -r '/.$' '' -- "$fundle_dir/$plugin/$path")
|
||||||
|
|
||||||
|
if not test -d $plugin_dir
|
||||||
|
__fundle_show_doc_msg "$plugin not installed. You may need to run 'fundle install'"
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
# Take everything but "plugin-" from the last path component
|
||||||
|
set -l plugin_name (string replace -r '.*/(plugin-)?(.*)$' '$2' -- $plugin)
|
||||||
|
set -l init_file "$plugin_dir/init.fish"
|
||||||
|
set -l conf_dir "$plugin_dir/conf.d"
|
||||||
|
set -l bindings_file "$plugin_dir/key_bindings.fish"
|
||||||
|
set -l functions_dir "$plugin_dir/functions"
|
||||||
|
set -l completions_dir "$plugin_dir/completions"
|
||||||
|
set -l plugin_paths $__fundle_plugin_name_paths
|
||||||
|
|
||||||
|
if begin; test -d $functions_dir; and not contains $functions_dir $fish_function_path; end
|
||||||
|
set fish_function_path $functions_dir $fish_function_path
|
||||||
|
end
|
||||||
|
|
||||||
|
if begin; test -d $completions_dir; and not contains $completions_dir $fish_complete_path; end
|
||||||
|
set fish_complete_path $completions_dir $fish_complete_path
|
||||||
|
end
|
||||||
|
|
||||||
|
if test -f $init_file
|
||||||
|
source $init_file
|
||||||
|
else if test -d $conf_dir
|
||||||
|
# read all *.fish files in conf.d
|
||||||
|
for f in $conf_dir/*.fish
|
||||||
|
source $f
|
||||||
|
end
|
||||||
|
else
|
||||||
|
# read all *.fish files if no init.fish or conf.d found
|
||||||
|
for f in $plugin_dir/*.fish
|
||||||
|
source $f
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if test -f $bindings_file
|
||||||
|
set -g __fundle_binding_paths $bindings_file $__fundle_binding_paths
|
||||||
|
end
|
||||||
|
|
||||||
|
set -g __fundle_loaded_plugins $plugin $__fundle_loaded_plugins
|
||||||
|
|
||||||
|
set -l dependencies (printf '%s\n' $plugin_paths $__fundle_plugin_name_paths | sort | uniq -u)
|
||||||
|
for dependency in $dependencies
|
||||||
|
set -l name_path (string split : -- $dependency)
|
||||||
|
if test "$profile" -eq 1
|
||||||
|
set -l start_time (__fundle_date +%s%N)
|
||||||
|
__fundle_load_plugin $name_path[1] $name_path[2] $fundle_dir $profile
|
||||||
|
set -l ellapsed_time (math \((__fundle_date +%s%N) - $start_time\) / 1000)
|
||||||
|
echo "$name_path[1]": {$ellapsed_time}us
|
||||||
|
else
|
||||||
|
__fundle_load_plugin $name_path[1] $name_path[2] $fundle_dir $profile
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
emit "init_$plugin_name" $plugin_dir
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fundle_bind -d "set up bindings"
|
||||||
|
if functions -q fish_user_key_bindings; and not functions -q __fish_user_key_bindings
|
||||||
|
functions -c fish_user_key_bindings __fish_user_key_bindings
|
||||||
|
end
|
||||||
|
|
||||||
|
function fish_user_key_bindings
|
||||||
|
for bindings in $__fundle_binding_paths
|
||||||
|
source $bindings
|
||||||
|
end
|
||||||
|
if functions -q __fish_user_key_bindings
|
||||||
|
__fish_user_key_bindings
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fundle_init -d "initialize fundle"
|
||||||
|
set -l fundle_dir (__fundle_plugins_dir)
|
||||||
|
|
||||||
|
if test (count $__fundle_plugin_names) -eq 0
|
||||||
|
__fundle_show_doc_msg "No plugin registered. You need to call 'fundle plugin NAME' before using 'fundle init'. \
|
||||||
|
|
||||||
|
Try reloading your shell if you just edited your configuration."
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l profile 0
|
||||||
|
if begin; contains -- -p $argv; or contains -- --profile $argv; and __fundle_check_date; end
|
||||||
|
set profile 1
|
||||||
|
end
|
||||||
|
|
||||||
|
for name_path in $__fundle_plugin_name_paths
|
||||||
|
set -l name_path (string split : -- $name_path)
|
||||||
|
if test "$profile" -eq 1
|
||||||
|
set -l start_time (__fundle_date +%s%N)
|
||||||
|
__fundle_load_plugin $name_path[1] $name_path[2] $fundle_dir $profile
|
||||||
|
set -l ellapsed_time (math \((__fundle_date +%s%N) - $start_time\) / 1000)
|
||||||
|
echo "$name_path[1]": {$ellapsed_time}us
|
||||||
|
else
|
||||||
|
__fundle_load_plugin $name_path[1] $name_path[2] $fundle_dir $profile
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
__fundle_bind
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fundle_install -d "install plugin"
|
||||||
|
if test (count $__fundle_plugin_names) -eq 0
|
||||||
|
__fundle_show_doc_msg "No plugin registered. You need to call 'fundle plugin NAME' before using 'fundle install'"
|
||||||
|
end
|
||||||
|
|
||||||
|
if begin; contains -- -u $argv; or contains -- --upgrade $argv; end
|
||||||
|
echo "deprecation warning: please use 'fundle update' to update plugins"
|
||||||
|
set argv $argv __update
|
||||||
|
end
|
||||||
|
|
||||||
|
for i in (__fundle_seq (count $__fundle_plugin_names))
|
||||||
|
__fundle_install_plugin $__fundle_plugin_names[$i] $__fundle_plugin_urls[$i] $argv
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l original_plugins_count (count (__fundle_list -s))
|
||||||
|
__fundle_init
|
||||||
|
|
||||||
|
# if plugins count increase after init, new plugins have dependencies
|
||||||
|
# install new plugins dependencies if any
|
||||||
|
if test (count (__fundle_list -s)) -gt $original_plugins_count
|
||||||
|
__fundle_install $argv
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fundle_clean -d "cleans fundle directory"
|
||||||
|
set -l fundle_dir (__fundle_plugins_dir)
|
||||||
|
set -l used_plugins (__fundle_list -s)
|
||||||
|
set -l installed_plugins $fundle_dir/*/*/
|
||||||
|
for installed_plugin in $installed_plugins
|
||||||
|
set -l plugin (string trim --chars="/" \
|
||||||
|
(string replace -r -- "$fundle_dir" "" $installed_plugin))
|
||||||
|
if not contains $plugin $used_plugins
|
||||||
|
echo "Removing $plugin"
|
||||||
|
rm -rf $fundle_dir/$plugin
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fundle_plugin -d "add plugin to fundle" -a name
|
||||||
|
set -l plugin_url ""
|
||||||
|
set -l plugin_path "."
|
||||||
|
set -l argv_count (count $argv)
|
||||||
|
set -l skip_next true
|
||||||
|
if test $argv_count -eq 0 -o -z "$argv"
|
||||||
|
echo "usage: fundle plugin NAME [[--url] URL] [--path PATH]"
|
||||||
|
return 1
|
||||||
|
else if test $argv_count -gt 1
|
||||||
|
for i in (__fundle_seq (count $argv))
|
||||||
|
test $skip_next = true; and set skip_next false; and continue
|
||||||
|
set -l arg $argv[$i]
|
||||||
|
switch $arg
|
||||||
|
case '--url'
|
||||||
|
set plugin_url (__fundle_next_arg $i $argv)
|
||||||
|
test $status -eq 1; and echo $plugin_url; and return 1
|
||||||
|
set skip_next true
|
||||||
|
case '--path'
|
||||||
|
set plugin_path (__fundle_next_arg $i $argv)
|
||||||
|
test $status -eq 1; and echo $plugin_path; and return 1
|
||||||
|
set skip_next true
|
||||||
|
case '--*'
|
||||||
|
echo "unknown flag $arg"; and return 1
|
||||||
|
case '*'
|
||||||
|
test $i -ne 2; and echo "invalid argument $arg"; and return 1
|
||||||
|
set plugin_url $arg
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
test -z "$plugin_url"; and set plugin_url (__fundle_get_url $name)
|
||||||
|
|
||||||
|
if not contains $name $__fundle_plugin_names
|
||||||
|
set -g __fundle_plugin_names $__fundle_plugin_names $name
|
||||||
|
set -g __fundle_plugin_urls $__fundle_plugin_urls $plugin_url
|
||||||
|
set -g __fundle_plugin_name_paths $__fundle_plugin_name_paths $name:$plugin_path
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fundle_version -d "prints fundle version"
|
||||||
|
echo $__fundle_current_version
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fundle_print_help -d "prints fundle help"
|
||||||
|
echo "usage: fundle (init | plugin | list | install | update | clean | self-update | version | help)"
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fundle_list -d "list registered plugins"
|
||||||
|
if begin; contains -- -s $argv; or contains -- --short $argv; end
|
||||||
|
for name in $__fundle_plugin_names
|
||||||
|
echo $name
|
||||||
|
end
|
||||||
|
else
|
||||||
|
for i in (__fundle_seq (count $__fundle_plugin_names))
|
||||||
|
echo {$__fundle_plugin_names[$i]}\n\t{$__fundle_plugin_urls[$i]}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function fundle -d "run fundle"
|
||||||
|
if __fundle_no_git
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l sub_args ""
|
||||||
|
|
||||||
|
switch (count $argv)
|
||||||
|
case 0
|
||||||
|
__fundle_print_help
|
||||||
|
return 1
|
||||||
|
case 1
|
||||||
|
case '*'
|
||||||
|
set sub_args $argv[2..-1]
|
||||||
|
end
|
||||||
|
|
||||||
|
switch $argv[1]
|
||||||
|
case "init"
|
||||||
|
__fundle_init $sub_args
|
||||||
|
case "plugin"
|
||||||
|
__fundle_plugin $sub_args
|
||||||
|
case "list"
|
||||||
|
__fundle_list $sub_args
|
||||||
|
case "plugins"
|
||||||
|
echo "'fundle plugins' has been replaced by 'fundle list'"
|
||||||
|
case "install"
|
||||||
|
__fundle_install $sub_args
|
||||||
|
case "update"
|
||||||
|
__fundle_install __update $sub_args
|
||||||
|
case "clean"
|
||||||
|
__fundle_clean
|
||||||
|
case "self-update"
|
||||||
|
__fundle_self_update
|
||||||
|
case "version" -v --version
|
||||||
|
__fundle_version
|
||||||
|
case "help" -h --help
|
||||||
|
__fundle_print_help
|
||||||
|
return 0
|
||||||
|
case "*"
|
||||||
|
__fundle_print_help
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
end
|
1
fish/.config/fish/fundle/decors/fish-colored-man
Submodule
1
fish/.config/fish/fundle/decors/fish-colored-man
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit c1e9db7765c932587b795d6c8965e9cff2fd849a
|
1
fish/.config/fish/fundle/oh-my-fish/theme-nai
Submodule
1
fish/.config/fish/fundle/oh-my-fish/theme-nai
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 9616e644e95fe79eb59b8c9d77fe44b9f096db2f
|
15
imapnotify/.config/imapnotify/gmail.js
Normal file
15
imapnotify/.config/imapnotify/gmail.js
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
var child_process = require('child_process');
|
||||||
|
|
||||||
|
function getStdout(cmd) {
|
||||||
|
var stdout = child_process.execSync(cmd);
|
||||||
|
return stdout.toString().trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.host = "imap.gmail.com"
|
||||||
|
exports.port = 993;
|
||||||
|
exports.tls = true;
|
||||||
|
exports.username = "akasroua@gmail.com";
|
||||||
|
exports.password = getStdout("pass mail/gmail");
|
||||||
|
exports.onNewMail = "/usr/local/bin/mbsync gmail"
|
||||||
|
exports.onNewMailPost = "/usr/local/bin/notmuch new"
|
||||||
|
exports.boxes = [ "INBOX"];
|
15
imapnotify/.config/imapnotify/uni.js
Normal file
15
imapnotify/.config/imapnotify/uni.js
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
var child_process = require('child_process');
|
||||||
|
|
||||||
|
function getStdout(cmd) {
|
||||||
|
var stdout = child_process.execSync(cmd);
|
||||||
|
return stdout.toString().trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.host = "correo.ugr.es"
|
||||||
|
exports.port = 993;
|
||||||
|
exports.tls = true;
|
||||||
|
exports.username = "akasroua@correo.ugr.es";
|
||||||
|
exports.password = getStdout("pass mail/uni");
|
||||||
|
exports.onNewMail = "/usr/local/bin/mbsync uni"
|
||||||
|
exports.onNewMailPost = "/usr/local/bin/notmuch new"
|
||||||
|
exports.boxes = [ "INBOX"];
|
27
khal/.config/khal/config
Normal file
27
khal/.config/khal/config
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
[calendars]
|
||||||
|
|
||||||
|
[[bob_calendar_local]]
|
||||||
|
path = ~/.calendars/*
|
||||||
|
type = discover
|
||||||
|
|
||||||
|
[[bob_contacts_local]]
|
||||||
|
path = ~/.contacts/*
|
||||||
|
type = discover
|
||||||
|
|
||||||
|
[locale]
|
||||||
|
timeformat = %H:%M
|
||||||
|
dateformat = %d/%m/
|
||||||
|
longdateformat = %d/%m/%Y
|
||||||
|
datetimeformat = %d/%m/%Y %H:%M
|
||||||
|
longdatetimeformat = %d/%m/%Y %H:%M
|
||||||
|
local_timezone= Europe/Brussels
|
||||||
|
default_timezone= Europe/Brussels
|
||||||
|
|
||||||
|
[default]
|
||||||
|
default_calendar = Misc
|
||||||
|
timedelta = 60d
|
||||||
|
highlight_event_days = true
|
||||||
|
print_new = event
|
||||||
|
|
||||||
|
[highlight_days]
|
||||||
|
method = fg
|
49
khard/.config/khard/khard.conf
Normal file
49
khard/.config/khard/khard.conf
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# example configuration file for khard version >= 0.13.0
|
||||||
|
# place it under $HOME/.config/khard/khard.conf
|
||||||
|
|
||||||
|
[addressbooks]
|
||||||
|
[[contacts]]
|
||||||
|
path = ~/.contacts/Contacts/
|
||||||
|
|
||||||
|
[general]
|
||||||
|
debug = no
|
||||||
|
default_action = list
|
||||||
|
editor = vim
|
||||||
|
merge_editor = vimdiff
|
||||||
|
|
||||||
|
[contact table]
|
||||||
|
# display names by first or last name: first_name / last_name
|
||||||
|
display = first_name
|
||||||
|
# group by address book: yes / no
|
||||||
|
group_by_addressbook = no
|
||||||
|
# reverse table ordering: yes / no
|
||||||
|
reverse = no
|
||||||
|
# append nicknames to name column: yes / no
|
||||||
|
show_nicknames = no
|
||||||
|
# show uid table column: yes / no
|
||||||
|
show_uids = yes
|
||||||
|
# sort by first or last name: first_name / last_name
|
||||||
|
sort = last_name
|
||||||
|
# localize dates: yes / no
|
||||||
|
localize_dates = yes
|
||||||
|
# set a comma separated list of preferred phone number types in descending priority
|
||||||
|
# or nothing for non-filtered alphabetical order
|
||||||
|
preferred_phone_number_type = pref, cell, home
|
||||||
|
# set a comma separated list of preferred email address types in descending priority
|
||||||
|
# or nothing for non-filtered alphabetical order
|
||||||
|
preferred_email_address_type = pref, work, home
|
||||||
|
|
||||||
|
[vcard]
|
||||||
|
# extend contacts with your own private objects
|
||||||
|
# these objects are stored with a leading "X-" before the object name in the vcard files
|
||||||
|
# every object label may only contain letters, digits and the - character
|
||||||
|
# example:
|
||||||
|
# private_objects = Jabber, Skype, Twitter
|
||||||
|
private_objects = Jabber, Skype, Twitter
|
||||||
|
# preferred vcard version: 3.0 / 4.0
|
||||||
|
preferred_version = 3.0
|
||||||
|
# Look into source vcf files to speed up search queries: yes / no
|
||||||
|
search_in_source_files = no
|
||||||
|
# skip unparsable vcard files: yes / no
|
||||||
|
skip_unparsable = no
|
||||||
|
|
51
khard/.config/khard/khard.conf~
Normal file
51
khard/.config/khard/khard.conf~
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
# example configuration file for khard version >= 0.13.0
|
||||||
|
# place it under $HOME/.config/khard/khard.conf
|
||||||
|
|
||||||
|
[addressbooks]
|
||||||
|
[[family]]
|
||||||
|
path = ~/.contacts/family/
|
||||||
|
[[friends]]
|
||||||
|
path = ~/.contacts/friends/
|
||||||
|
|
||||||
|
[general]
|
||||||
|
debug = no
|
||||||
|
default_action = list
|
||||||
|
editor = vim
|
||||||
|
merge_editor = vimdiff
|
||||||
|
|
||||||
|
[contact table]
|
||||||
|
# display names by first or last name: first_name / last_name
|
||||||
|
display = first_name
|
||||||
|
# group by address book: yes / no
|
||||||
|
group_by_addressbook = no
|
||||||
|
# reverse table ordering: yes / no
|
||||||
|
reverse = no
|
||||||
|
# append nicknames to name column: yes / no
|
||||||
|
show_nicknames = no
|
||||||
|
# show uid table column: yes / no
|
||||||
|
show_uids = yes
|
||||||
|
# sort by first or last name: first_name / last_name
|
||||||
|
sort = last_name
|
||||||
|
# localize dates: yes / no
|
||||||
|
localize_dates = yes
|
||||||
|
# set a comma separated list of preferred phone number types in descending priority
|
||||||
|
# or nothing for non-filtered alphabetical order
|
||||||
|
preferred_phone_number_type = pref, cell, home
|
||||||
|
# set a comma separated list of preferred email address types in descending priority
|
||||||
|
# or nothing for non-filtered alphabetical order
|
||||||
|
preferred_email_address_type = pref, work, home
|
||||||
|
|
||||||
|
[vcard]
|
||||||
|
# extend contacts with your own private objects
|
||||||
|
# these objects are stored with a leading "X-" before the object name in the vcard files
|
||||||
|
# every object label may only contain letters, digits and the - character
|
||||||
|
# example:
|
||||||
|
# private_objects = Jabber, Skype, Twitter
|
||||||
|
private_objects = Jabber, Skype, Twitter
|
||||||
|
# preferred vcard version: 3.0 / 4.0
|
||||||
|
preferred_version = 3.0
|
||||||
|
# Look into source vcf files to speed up search queries: yes / no
|
||||||
|
search_in_source_files = no
|
||||||
|
# skip unparsable vcard files: yes / no
|
||||||
|
skip_unparsable = no
|
||||||
|
|
87
mbsync/.mbsyncrc
Normal file
87
mbsync/.mbsyncrc
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
IMAPAccount gmail
|
||||||
|
Host imap.gmail.com
|
||||||
|
User akasroua@gmail.com
|
||||||
|
#PassCmd "/usr/local/bin/pass mail/gmail"
|
||||||
|
Pass WQSxbcvEkWBLQgkt399GcpMBAvCqwf6fkF2tArX3NLQfjt3M98mQ9C3DDjRfWwBgi84Gzs25BSVUfvwZrA9oatE2sg4j2iLNgihG
|
||||||
|
SSLType IMAPS
|
||||||
|
SSLVersions TLSv1.2
|
||||||
|
CertificateFile /usr/local/share/certs/ca-root-nss.crt
|
||||||
|
|
||||||
|
IMAPStore gmail-remote
|
||||||
|
Account gmail
|
||||||
|
|
||||||
|
MaildirStore gmail-local
|
||||||
|
Subfolders Verbatim
|
||||||
|
# The trailing "/" is important
|
||||||
|
Path ~/.mail/gmail/
|
||||||
|
Inbox ~/.mail/gmail/Inbox/
|
||||||
|
|
||||||
|
Channel sync-gmail-default
|
||||||
|
Master :gmail-remote:
|
||||||
|
Slave :gmail-local:
|
||||||
|
|
||||||
|
Channel sync-gmail-sent
|
||||||
|
Master :gmail-remote:"[Gmail]/Sent Mail"
|
||||||
|
Slave :gmail-local:sent
|
||||||
|
|
||||||
|
Channel sync-gmail-trash
|
||||||
|
Master :gmail-remote:"[Gmail]/Bin"
|
||||||
|
Slave :gmail-local:trash
|
||||||
|
|
||||||
|
Channel sync-gmail-junk
|
||||||
|
Master :gmail-remote:"[Gmail]/Spam"
|
||||||
|
Slave :gmail-local:junk
|
||||||
|
|
||||||
|
# Get all the channels together into a group.
|
||||||
|
Group gmail
|
||||||
|
Channel sync-gmail-default
|
||||||
|
Channel sync-gmail-sent
|
||||||
|
Channel sync-gmail-trash
|
||||||
|
Channel sync-gmail-junk
|
||||||
|
|
||||||
|
Create Both
|
||||||
|
Expunge Both
|
||||||
|
SyncState *
|
||||||
|
|
||||||
|
IMAPAccount uni
|
||||||
|
Host correo.ugr.es
|
||||||
|
User akasroua@correo.ugr.es
|
||||||
|
PassCmd "/usr/local/bin/pass mail/uni"
|
||||||
|
SSLType IMAPS
|
||||||
|
CertificateFile /usr/local/share/certs/ca-root-nss.crt
|
||||||
|
|
||||||
|
IMAPStore uni-remote
|
||||||
|
Account uni
|
||||||
|
|
||||||
|
MaildirStore uni-local
|
||||||
|
Subfolders Verbatim
|
||||||
|
# The trailing "/" is important
|
||||||
|
Path ~/.mail/uni/
|
||||||
|
Inbox ~/.mail/uni/INBOX/
|
||||||
|
|
||||||
|
Channel uni-default
|
||||||
|
Master :uni-remote:
|
||||||
|
Slave :uni-local:
|
||||||
|
|
||||||
|
Channel uni-sent
|
||||||
|
Master :uni-remote:"Sent"
|
||||||
|
Slave :uni-local:sent
|
||||||
|
|
||||||
|
Channel uni-trash
|
||||||
|
Master :uni-remote:"Trash"
|
||||||
|
Slave :uni-local:trash
|
||||||
|
|
||||||
|
Channel uni-archive
|
||||||
|
Master :uni-remote:"BUZONdeEntradaUGR"
|
||||||
|
Slave :uni-local:archive
|
||||||
|
|
||||||
|
# Get all the channels together into a group.
|
||||||
|
Group uni
|
||||||
|
Channel uni-default
|
||||||
|
Channel uni-sent
|
||||||
|
Channel uni-trash
|
||||||
|
Channel uni-archive
|
||||||
|
|
||||||
|
Create Both
|
||||||
|
Expunge Both
|
||||||
|
SyncState *
|
65
mpd/.ncmpcpp/config
Normal file
65
mpd/.ncmpcpp/config
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
# mpd
|
||||||
|
mpd_host = /home/coolneng/.mpd/socket
|
||||||
|
mpd_music_dir = "~/Music
|
||||||
|
|
||||||
|
## Selected tracks ##
|
||||||
|
selected_item_prefix = "* "
|
||||||
|
discard_colors_if_item_is_selected = "no"
|
||||||
|
|
||||||
|
# Colors
|
||||||
|
color1 = "magenta"
|
||||||
|
color2 = "cyan"
|
||||||
|
main_window_color = "cyan"
|
||||||
|
state_line_color = "black"
|
||||||
|
statusbar_color = "black"
|
||||||
|
progressbar_color = "magenta"
|
||||||
|
progressbar_elapsed_color = "cyan"
|
||||||
|
current_item_prefix = "$(red)$r"
|
||||||
|
current_item_suffix = "$/r$(end)"
|
||||||
|
alternative_ui_separator_color = "black"
|
||||||
|
|
||||||
|
# Settings
|
||||||
|
autocenter_mode = "yes"
|
||||||
|
header_visibility = "no"
|
||||||
|
statusbar_visibility = "no"
|
||||||
|
cyclic_scrolling = "yes"
|
||||||
|
titles_visibility = "no"
|
||||||
|
display_bitrate = "yes"
|
||||||
|
playlist_separate_albums = "no"
|
||||||
|
ask_before_clearing_playlists = "no"
|
||||||
|
visualizer_type = "ellipse"
|
||||||
|
visualizer_fifo_path = "/tmp/mpd.fifo"
|
||||||
|
|
||||||
|
# Playlist
|
||||||
|
user_interface = "alternative"
|
||||||
|
playlist_display_mode = "classic"
|
||||||
|
browser_display_mode = "classic"
|
||||||
|
song_list_format = "$7 {%a}|{%D}$8 * $5%t $R $6%l"
|
||||||
|
song_status_format = "$6%t $1>> $8%a $1>> $2%b$1"
|
||||||
|
song_columns_list_format = "(5)[]{} (20)[red]{a} (26)[white]{t|f} (44)[blue]{b} (20)[red]{l}"
|
||||||
|
alternative_header_second_line_format = "$6{%a} $b$8-$9 $4{%b}$9"
|
||||||
|
now_playing_prefix = "$b$4>$5> "
|
||||||
|
now_playing_suffix = "$2$/b$2"
|
||||||
|
|
||||||
|
# Progressbars to use.
|
||||||
|
# This section works as
|
||||||
|
# a clipboard so no need
|
||||||
|
# to hunt these down from
|
||||||
|
# the web.
|
||||||
|
|
||||||
|
#progressbar_look = "░█ "
|
||||||
|
#progressbar_look = "=>"
|
||||||
|
#progressbar_look = "─- "
|
||||||
|
#progressbar_look = "▒▒░"
|
||||||
|
#progressbar_look = "┅┅┄"
|
||||||
|
#progressbar_look = "─⊙┄"
|
||||||
|
#progressbar_look = "─➞─"
|
||||||
|
progressbar_look = "─┅─"
|
||||||
|
#progressbar_look = "▪▪▪"
|
||||||
|
#progressbar_look = "▪▪▫"
|
||||||
|
#progressbar_look = "───"
|
||||||
|
#progressbar_look = "▁▁▁"
|
||||||
|
#progressbar_look = "‒‒‒"
|
||||||
|
#progressbar_look = "■◣ "
|
||||||
|
#progressbar_look = "◈◆◇"
|
||||||
|
#progressbar_look = "→→"
|
108
mpd/.ncmpcpp/config.bak
Normal file
108
mpd/.ncmpcpp/config.bak
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
#ncmpcpp_directory = ~/.ncmpcpp
|
||||||
|
#lyrics_directory = ~/.lyrics
|
||||||
|
mpd_host = /home/coolneng/.mpd/socket
|
||||||
|
mpd_crossfade_time = 2
|
||||||
|
visualizer_fifo_path = /tmp/mpd.fifo
|
||||||
|
visualizer_output_name = "Visualizer feed"
|
||||||
|
visualizer_in_stereo = no
|
||||||
|
#visualizer_sample_multiplier = 1
|
||||||
|
visualizer_sync_interval = 30
|
||||||
|
visualizer_type = spectrum
|
||||||
|
visualizer_look = ●┃
|
||||||
|
visualizer_color = cyan, green, yellow, magenta, red
|
||||||
|
#visualizer_color = 41, 83, 119, 155, 185, 215, 209, 203, 197, 161
|
||||||
|
#system_encoding = ""
|
||||||
|
#playlist_disable_highlight_delay = 5
|
||||||
|
#message_delay_time = 5
|
||||||
|
song_list_format = "{{%a - %t}|{%f}}{$R%l}"
|
||||||
|
#song_status_format = {%a - %t}|{%f}
|
||||||
|
#song_status_format = "{{%a{ "%b"{ (%y)}} - }{%t$/b}}|{$b%f$/b}"
|
||||||
|
song_status_format = "{{%a{ $2//$9 %b{, %y}} $2//$9 }{%t$/b}}|{$b%f$/b}"
|
||||||
|
#song_library_format = {{{%t} - %a{ "%b"{ (%y)}}}}|{%f}
|
||||||
|
song_library_format = {{%a - %t} (%b)}|{%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}
|
||||||
|
now_playing_prefix = "$b$5"
|
||||||
|
now_playing_suffix = "$/b$9"
|
||||||
|
#browser_playlist_prefix = "$2playlist$9 "
|
||||||
|
#selected_item_prefix = $6
|
||||||
|
#selected_item_suffix = $9
|
||||||
|
#modified_item_prefix = $3> $9
|
||||||
|
#song_window_title_format = {%a - }{%t}|{%f}
|
||||||
|
#browser_sort_mode = name
|
||||||
|
#browser_sort_format = {%a - }{%t}|{%f} {(%l)}
|
||||||
|
#song_columns_list_format = (20)[]{a} (6f)[green]{NE} (50)[white]{t|f:Title} (20)[red]{b} (7f)[magenta]{l}
|
||||||
|
#playlist_show_mpd_host = no
|
||||||
|
#playlist_show_remaining_time = no
|
||||||
|
#playlist_shorten_total_times = no
|
||||||
|
#playlist_separate_albums = no
|
||||||
|
playlist_display_mode = classic
|
||||||
|
#browser_display_mode = classic
|
||||||
|
#search_engine_display_mode = classic
|
||||||
|
#playlist_editor_display_mode = classic
|
||||||
|
#discard_colors_if_item_is_selected = yes
|
||||||
|
#incremental_seeking = yes
|
||||||
|
#seek_time = 1
|
||||||
|
#volume_change_step = 2
|
||||||
|
autocenter_mode = yes
|
||||||
|
#centered_cursor = no
|
||||||
|
progressbar_look = "─╼ "
|
||||||
|
#progressbar_boldness = yes
|
||||||
|
#default_place_to_search_in = database
|
||||||
|
#user_interface = classic
|
||||||
|
#data_fetching_delay = yes
|
||||||
|
#media_library_primary_tag = artist
|
||||||
|
#default_find_mode = wrapped
|
||||||
|
#default_tag_editor_pattern = %n - %t
|
||||||
|
header_visibility = no
|
||||||
|
statusbar_visibility = yes
|
||||||
|
titles_visibility = no
|
||||||
|
#header_text_scrolling = yes
|
||||||
|
#cyclic_scrolling = no
|
||||||
|
#lines_scrolled = 2
|
||||||
|
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
|
||||||
|
#lastfm_preferred_language = en
|
||||||
|
#show_hidden_files_in_local_browser = no
|
||||||
|
#screen_switcher_mode = playlist, browser
|
||||||
|
#startup_screen = playlist
|
||||||
|
#startup_slave_screen = ""
|
||||||
|
#startup_slave_screen_focus = no
|
||||||
|
#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
|
||||||
|
#regular_expressions = perl
|
||||||
|
#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 = no
|
||||||
|
external_editor = vim
|
||||||
|
colors_enabled = yes
|
||||||
|
empty_tag_color = red
|
||||||
|
header_window_color = yellow
|
||||||
|
volume_color = yellow
|
||||||
|
state_line_color = red
|
||||||
|
state_flags_color = yellow
|
||||||
|
main_window_color = default
|
||||||
|
color1 = red
|
||||||
|
color2 = red
|
||||||
|
main_window_highlight_color = white
|
||||||
|
progressbar_color = black
|
||||||
|
progressbar_elapsed_color = yellow
|
||||||
|
statusbar_color = default
|
||||||
|
alternative_ui_separator_color = magenta
|
||||||
|
active_column_color = red
|
||||||
|
window_border_color = yellow
|
||||||
|
active_window_border = magenta
|
0
mpd/.ncmpcpp/error.log
Normal file
0
mpd/.ncmpcpp/error.log
Normal file
12
mpv/.config/mpv/mpv.conf
Normal file
12
mpv/.config/mpv/mpv.conf
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
## Subtitle settings
|
||||||
|
sub-font-size=38
|
||||||
|
embeddedfonts=no
|
||||||
|
sub-font='Roboto Condensed'
|
||||||
|
## HW Decoding
|
||||||
|
hwdec=vaapi
|
||||||
|
vo=vaapi
|
||||||
|
## Volume settings
|
||||||
|
volume-max=200
|
||||||
|
af=acompressor
|
||||||
|
## Youtube-dl settings
|
||||||
|
ytdl-format=bestvideo[height<=?720]+bestaudio/best
|
20
msmtp/.msmtprc
Normal file
20
msmtp/.msmtprc
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# Default values
|
||||||
|
defaults
|
||||||
|
auth on
|
||||||
|
tls on
|
||||||
|
tls_trust_file /usr/local/share/certs/ca-root-nss.crt
|
||||||
|
logfile ~/.msmtp.log
|
||||||
|
# Accounts
|
||||||
|
account gmail
|
||||||
|
host smtp.gmail.com
|
||||||
|
port 587
|
||||||
|
from akasroua@gmail.com
|
||||||
|
user akasroua@gmail.com
|
||||||
|
passwordeval "pass mail/gmail"
|
||||||
|
|
||||||
|
account uni
|
||||||
|
host correo.ugr.es
|
||||||
|
port 587
|
||||||
|
from akasroua@correo.ugr.es
|
||||||
|
user akasroua@correo.ugr.es
|
||||||
|
passwordeval "pass mail/uni"
|
728
neofetch/.config/neofetch/config.conf
Normal file
728
neofetch/.config/neofetch/config.conf
Normal file
@ -0,0 +1,728 @@
|
|||||||
|
# See this wiki page for more info:
|
||||||
|
# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info
|
||||||
|
print_info() {
|
||||||
|
# info title
|
||||||
|
info underline
|
||||||
|
|
||||||
|
info "OS" distro
|
||||||
|
# info "Host" model
|
||||||
|
info "Kernel" kernel
|
||||||
|
info "Uptime" uptime
|
||||||
|
# info "Packages" packages
|
||||||
|
info "Shell" shell
|
||||||
|
# info "Resolution" resolution
|
||||||
|
# info "DE" de
|
||||||
|
info "WM" wm
|
||||||
|
# info "WM Theme" wm_theme
|
||||||
|
# info "Theme" theme
|
||||||
|
# info "Icons" icons
|
||||||
|
info "Terminal" term
|
||||||
|
info "Terminal Font" term_font
|
||||||
|
# info "CPU" cpu
|
||||||
|
# info "GPU" gpu
|
||||||
|
# info "Memory" memory
|
||||||
|
|
||||||
|
# info "GPU Driver" gpu_driver # Linux/macOS only
|
||||||
|
# info "CPU Usage" cpu_usage
|
||||||
|
# info "Disk" disk
|
||||||
|
# info "Battery" battery
|
||||||
|
# info "Font" font
|
||||||
|
# info "Song" song
|
||||||
|
# info "Local IP" local_ip
|
||||||
|
# info "Public IP" public_ip
|
||||||
|
# info "Users" users
|
||||||
|
# info "Locale" locale # This only works on glibc systems.
|
||||||
|
|
||||||
|
info line_break
|
||||||
|
# info cols
|
||||||
|
info line_break
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Kernel
|
||||||
|
|
||||||
|
|
||||||
|
# Shorten the output of the kernel function.
|
||||||
|
#
|
||||||
|
# Default: 'on'
|
||||||
|
# Values: 'on', 'off'
|
||||||
|
# Flag: --kernel_shorthand
|
||||||
|
# Supports: Everything except *BSDs (except PacBSD and PC-BSD)
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# on: '4.8.9-1-ARCH'
|
||||||
|
# off: 'Linux 4.8.9-1-ARCH'
|
||||||
|
kernel_shorthand="on"
|
||||||
|
|
||||||
|
|
||||||
|
# Distro
|
||||||
|
|
||||||
|
|
||||||
|
# Shorten the output of the distro function
|
||||||
|
#
|
||||||
|
# Default: 'off'
|
||||||
|
# Values: 'on', 'off', 'tiny'
|
||||||
|
# Flag: --distro_shorthand
|
||||||
|
# Supports: Everything except Windows and Haiku
|
||||||
|
distro_shorthand="off"
|
||||||
|
|
||||||
|
# Show/Hide OS Architecture.
|
||||||
|
# Show 'x86_64', 'x86' and etc in 'Distro:' output.
|
||||||
|
#
|
||||||
|
# Default: 'on'
|
||||||
|
# Values: 'on', 'off'
|
||||||
|
# Flag: --os_arch
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# on: 'Arch Linux x86_64'
|
||||||
|
# off: 'Arch Linux'
|
||||||
|
os_arch="off"
|
||||||
|
|
||||||
|
|
||||||
|
# Uptime
|
||||||
|
|
||||||
|
|
||||||
|
# Shorten the output of the uptime function
|
||||||
|
#
|
||||||
|
# Default: 'on'
|
||||||
|
# Values: 'on', 'off', 'tiny'
|
||||||
|
# Flag: --uptime_shorthand
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# on: '2 days, 10 hours, 3 mins'
|
||||||
|
# off: '2 days, 10 hours, 3 minutes'
|
||||||
|
# tiny: '2d 10h 3m'
|
||||||
|
uptime_shorthand="on"
|
||||||
|
|
||||||
|
|
||||||
|
# Packages
|
||||||
|
|
||||||
|
|
||||||
|
# Show/Hide Package Manager names.
|
||||||
|
#
|
||||||
|
# Default: 'tiny'
|
||||||
|
# Values: 'on', 'tiny' 'off'
|
||||||
|
# Flag: --package_managers
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# on: '998 (pacman), 8 (flatpak), 4 (snap)'
|
||||||
|
# tiny: '908 (pacman, flatpak, snap)'
|
||||||
|
# off: '908'
|
||||||
|
package_managers="on"
|
||||||
|
|
||||||
|
|
||||||
|
# Shell
|
||||||
|
|
||||||
|
|
||||||
|
# Show the path to $SHELL
|
||||||
|
#
|
||||||
|
# Default: 'off'
|
||||||
|
# Values: 'on', 'off'
|
||||||
|
# Flag: --shell_path
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# on: '/bin/bash'
|
||||||
|
# off: 'bash'
|
||||||
|
shell_path="off"
|
||||||
|
|
||||||
|
# Show $SHELL version
|
||||||
|
#
|
||||||
|
# Default: 'on'
|
||||||
|
# Values: 'on', 'off'
|
||||||
|
# Flag: --shell_version
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# on: 'bash 4.4.5'
|
||||||
|
# off: 'bash'
|
||||||
|
shell_version="off"
|
||||||
|
|
||||||
|
|
||||||
|
# CPU
|
||||||
|
|
||||||
|
|
||||||
|
# CPU speed type
|
||||||
|
#
|
||||||
|
# Default: 'bios_limit'
|
||||||
|
# Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'.
|
||||||
|
# Flag: --speed_type
|
||||||
|
# Supports: Linux with 'cpufreq'
|
||||||
|
# NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value.
|
||||||
|
speed_type="bios_limit"
|
||||||
|
|
||||||
|
# CPU speed shorthand
|
||||||
|
#
|
||||||
|
# Default: 'off'
|
||||||
|
# Values: 'on', 'off'.
|
||||||
|
# Flag: --speed_shorthand.
|
||||||
|
# NOTE: This flag is not supported in systems with CPU speed less than 1 GHz
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# on: 'i7-6500U (4) @ 3.1GHz'
|
||||||
|
# off: 'i7-6500U (4) @ 3.100GHz'
|
||||||
|
speed_shorthand="off"
|
||||||
|
|
||||||
|
# Enable/Disable CPU brand in output.
|
||||||
|
#
|
||||||
|
# Default: 'on'
|
||||||
|
# Values: 'on', 'off'
|
||||||
|
# Flag: --cpu_brand
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# on: 'Intel i7-6500U'
|
||||||
|
# off: 'i7-6500U (4)'
|
||||||
|
cpu_brand="on"
|
||||||
|
|
||||||
|
# CPU Speed
|
||||||
|
# Hide/Show CPU speed.
|
||||||
|
#
|
||||||
|
# Default: 'on'
|
||||||
|
# Values: 'on', 'off'
|
||||||
|
# Flag: --cpu_speed
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# on: 'Intel i7-6500U (4) @ 3.1GHz'
|
||||||
|
# off: 'Intel i7-6500U (4)'
|
||||||
|
cpu_speed="on"
|
||||||
|
|
||||||
|
# CPU Cores
|
||||||
|
# Display CPU cores in output
|
||||||
|
#
|
||||||
|
# Default: 'logical'
|
||||||
|
# Values: 'logical', 'physical', 'off'
|
||||||
|
# Flag: --cpu_cores
|
||||||
|
# Support: 'physical' doesn't work on BSD.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# logical: 'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores)
|
||||||
|
# physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores)
|
||||||
|
# off: 'Intel i7-6500U @ 3.1GHz'
|
||||||
|
cpu_cores="logical"
|
||||||
|
|
||||||
|
# CPU Temperature
|
||||||
|
# Hide/Show CPU temperature.
|
||||||
|
# Note the temperature is added to the regular CPU function.
|
||||||
|
#
|
||||||
|
# Default: 'off'
|
||||||
|
# Values: 'C', 'F', 'off'
|
||||||
|
# Flag: --cpu_temp
|
||||||
|
# Supports: Linux, BSD
|
||||||
|
# NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable
|
||||||
|
# coretemp kernel module. This only supports newer Intel processors.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]'
|
||||||
|
# F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]'
|
||||||
|
# off: 'Intel i7-6500U (4) @ 3.1GHz'
|
||||||
|
cpu_temp="off"
|
||||||
|
|
||||||
|
|
||||||
|
# GPU
|
||||||
|
|
||||||
|
|
||||||
|
# Enable/Disable GPU Brand
|
||||||
|
#
|
||||||
|
# Default: 'on'
|
||||||
|
# Values: 'on', 'off'
|
||||||
|
# Flag: --gpu_brand
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# on: 'AMD HD 7950'
|
||||||
|
# off: 'HD 7950'
|
||||||
|
gpu_brand="on"
|
||||||
|
|
||||||
|
# Which GPU to display
|
||||||
|
#
|
||||||
|
# Default: 'all'
|
||||||
|
# Values: 'all', 'dedicated', 'integrated'
|
||||||
|
# Flag: --gpu_type
|
||||||
|
# Supports: Linux
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# all:
|
||||||
|
# GPU1: AMD HD 7950
|
||||||
|
# GPU2: Intel Integrated Graphics
|
||||||
|
#
|
||||||
|
# dedicated:
|
||||||
|
# GPU1: AMD HD 7950
|
||||||
|
#
|
||||||
|
# integrated:
|
||||||
|
# GPU1: Intel Integrated Graphics
|
||||||
|
gpu_type="all"
|
||||||
|
|
||||||
|
|
||||||
|
# Resolution
|
||||||
|
|
||||||
|
|
||||||
|
# Display refresh rate next to each monitor
|
||||||
|
# Default: 'off'
|
||||||
|
# Values: 'on', 'off'
|
||||||
|
# Flag: --refresh_rate
|
||||||
|
# Supports: Doesn't work on Windows.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# on: '1920x1080 @ 60Hz'
|
||||||
|
# off: '1920x1080'
|
||||||
|
refresh_rate="off"
|
||||||
|
|
||||||
|
|
||||||
|
# Gtk Theme / Icons / Font
|
||||||
|
|
||||||
|
|
||||||
|
# Shorten output of GTK Theme / Icons / Font
|
||||||
|
#
|
||||||
|
# Default: 'off'
|
||||||
|
# Values: 'on', 'off'
|
||||||
|
# Flag: --gtk_shorthand
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# on: 'Numix, Adwaita'
|
||||||
|
# off: 'Numix [GTK2], Adwaita [GTK3]'
|
||||||
|
gtk_shorthand="off"
|
||||||
|
|
||||||
|
|
||||||
|
# Enable/Disable gtk2 Theme / Icons / Font
|
||||||
|
#
|
||||||
|
# Default: 'on'
|
||||||
|
# Values: 'on', 'off'
|
||||||
|
# Flag: --gtk2
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# on: 'Numix [GTK2], Adwaita [GTK3]'
|
||||||
|
# off: 'Adwaita [GTK3]'
|
||||||
|
gtk2="on"
|
||||||
|
|
||||||
|
# Enable/Disable gtk3 Theme / Icons / Font
|
||||||
|
#
|
||||||
|
# Default: 'on'
|
||||||
|
# Values: 'on', 'off'
|
||||||
|
# Flag: --gtk3
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# on: 'Numix [GTK2], Adwaita [GTK3]'
|
||||||
|
# off: 'Numix [GTK2]'
|
||||||
|
gtk3="on"
|
||||||
|
|
||||||
|
|
||||||
|
# IP Address
|
||||||
|
|
||||||
|
|
||||||
|
# Website to ping for the public IP
|
||||||
|
#
|
||||||
|
# Default: 'http://ident.me'
|
||||||
|
# Values: 'url'
|
||||||
|
# Flag: --ip_host
|
||||||
|
public_ip_host="http://ident.me"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Disk
|
||||||
|
|
||||||
|
|
||||||
|
# Which disks to display.
|
||||||
|
# The values can be any /dev/sdXX, mount point or directory.
|
||||||
|
# NOTE: By default we only show the disk info for '/'.
|
||||||
|
#
|
||||||
|
# Default: '/'
|
||||||
|
# Values: '/', '/dev/sdXX', '/path/to/drive'.
|
||||||
|
# Flag: --disk_show
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# disk_show=('/' '/dev/sdb1'):
|
||||||
|
# 'Disk (/): 74G / 118G (66%)'
|
||||||
|
# 'Disk (/mnt/Videos): 823G / 893G (93%)'
|
||||||
|
#
|
||||||
|
# disk_show=('/'):
|
||||||
|
# 'Disk (/): 74G / 118G (66%)'
|
||||||
|
#
|
||||||
|
disk_show=('/')
|
||||||
|
|
||||||
|
# Disk subtitle.
|
||||||
|
# What to append to the Disk subtitle.
|
||||||
|
#
|
||||||
|
# Default: 'mount'
|
||||||
|
# Values: 'mount', 'name', 'dir'
|
||||||
|
# Flag: --disk_subtitle
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# name: 'Disk (/dev/sda1): 74G / 118G (66%)'
|
||||||
|
# 'Disk (/dev/sdb2): 74G / 118G (66%)'
|
||||||
|
#
|
||||||
|
# mount: 'Disk (/): 74G / 118G (66%)'
|
||||||
|
# 'Disk (/mnt/Local Disk): 74G / 118G (66%)'
|
||||||
|
# 'Disk (/mnt/Videos): 74G / 118G (66%)'
|
||||||
|
#
|
||||||
|
# dir: 'Disk (/): 74G / 118G (66%)'
|
||||||
|
# 'Disk (Local Disk): 74G / 118G (66%)'
|
||||||
|
# 'Disk (Videos): 74G / 118G (66%)'
|
||||||
|
disk_subtitle="mount"
|
||||||
|
|
||||||
|
|
||||||
|
# Song
|
||||||
|
|
||||||
|
|
||||||
|
# Manually specify a music player.
|
||||||
|
#
|
||||||
|
# Default: 'auto'
|
||||||
|
# Values: 'auto', 'player-name'
|
||||||
|
# Flag: --music_player
|
||||||
|
#
|
||||||
|
# Available values for 'player-name':
|
||||||
|
#
|
||||||
|
# amarok
|
||||||
|
# audacious
|
||||||
|
# banshee
|
||||||
|
# bluemindo
|
||||||
|
# clementine
|
||||||
|
# cmus
|
||||||
|
# deadbeef
|
||||||
|
# deepin-music
|
||||||
|
# dragon
|
||||||
|
# elisa
|
||||||
|
# exaile
|
||||||
|
# gnome-music
|
||||||
|
# gmusicbrowser
|
||||||
|
# Google Play
|
||||||
|
# guayadeque
|
||||||
|
# iTunes
|
||||||
|
# juk
|
||||||
|
# lollypop
|
||||||
|
# mocp
|
||||||
|
# mopidy
|
||||||
|
# mpd
|
||||||
|
# pogo
|
||||||
|
# pragha
|
||||||
|
# qmmp
|
||||||
|
# quodlibet
|
||||||
|
# rhythmbox
|
||||||
|
# sayonara
|
||||||
|
# smplayer
|
||||||
|
# spotify
|
||||||
|
# Spotify
|
||||||
|
# tomahawk
|
||||||
|
# vlc
|
||||||
|
# xmms2d
|
||||||
|
# yarock
|
||||||
|
music_player="auto"
|
||||||
|
|
||||||
|
# Format to display song information.
|
||||||
|
#
|
||||||
|
# Default: '%artist% - %album% - %title%'
|
||||||
|
# Values: '%artist%', '%album%', '%title%'
|
||||||
|
# Flag: --song_format
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# default: 'Song: Jet - Get Born - Sgt Major'
|
||||||
|
song_format="%artist% - %album% - %title%"
|
||||||
|
|
||||||
|
# Print the Artist, Album and Title on separate lines
|
||||||
|
#
|
||||||
|
# Default: 'off'
|
||||||
|
# Values: 'on', 'off'
|
||||||
|
# Flag: --song_shorthand
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# on: 'Artist: The Fratellis'
|
||||||
|
# 'Album: Costello Music'
|
||||||
|
# 'Song: Chelsea Dagger'
|
||||||
|
#
|
||||||
|
# off: 'Song: The Fratellis - Costello Music - Chelsea Dagger'
|
||||||
|
song_shorthand="off"
|
||||||
|
|
||||||
|
# 'mpc' arguments (specify a host, password etc).
|
||||||
|
#
|
||||||
|
# Default: ''
|
||||||
|
# Example: mpc_args=(-h HOST -P PASSWORD)
|
||||||
|
mpc_args=()
|
||||||
|
|
||||||
|
|
||||||
|
# Text Colors
|
||||||
|
|
||||||
|
|
||||||
|
# Text Colors
|
||||||
|
#
|
||||||
|
# Default: 'distro'
|
||||||
|
# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
|
||||||
|
# Flag: --colors
|
||||||
|
#
|
||||||
|
# Each number represents a different part of the text in
|
||||||
|
# this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info'
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# colors=(distro) - Text is colored based on Distro colors.
|
||||||
|
# colors=(4 6 1 8 8 6) - Text is colored in the order above.
|
||||||
|
colors=(distro)
|
||||||
|
|
||||||
|
|
||||||
|
# Text Options
|
||||||
|
|
||||||
|
|
||||||
|
# Toggle bold text
|
||||||
|
#
|
||||||
|
# Default: 'on'
|
||||||
|
# Values: 'on', 'off'
|
||||||
|
# Flag: --bold
|
||||||
|
bold="on"
|
||||||
|
|
||||||
|
# Enable/Disable Underline
|
||||||
|
#
|
||||||
|
# Default: 'on'
|
||||||
|
# Values: 'on', 'off'
|
||||||
|
# Flag: --underline
|
||||||
|
underline_enabled="on"
|
||||||
|
|
||||||
|
# Underline character
|
||||||
|
#
|
||||||
|
# Default: '-'
|
||||||
|
# Values: 'string'
|
||||||
|
# Flag: --underline_char
|
||||||
|
underline_char="-"
|
||||||
|
|
||||||
|
|
||||||
|
# Color Blocks
|
||||||
|
|
||||||
|
|
||||||
|
# Color block range
|
||||||
|
# The range of colors to print.
|
||||||
|
#
|
||||||
|
# Default: '0', '7'
|
||||||
|
# Values: 'num'
|
||||||
|
# Flag: --block_range
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
#
|
||||||
|
# Display colors 0-7 in the blocks. (8 colors)
|
||||||
|
# neofetch --block_range 0 7
|
||||||
|
#
|
||||||
|
# Display colors 0-15 in the blocks. (16 colors)
|
||||||
|
# neofetch --block_range 0 15
|
||||||
|
block_range=(0 7)
|
||||||
|
|
||||||
|
# Toggle color blocks
|
||||||
|
#
|
||||||
|
# Default: 'on'
|
||||||
|
# Values: 'on', 'off'
|
||||||
|
# Flag: --color_blocks
|
||||||
|
color_blocks="on"
|
||||||
|
|
||||||
|
# Color block width in spaces
|
||||||
|
#
|
||||||
|
# Default: '3'
|
||||||
|
# Values: 'num'
|
||||||
|
# Flag: --block_width
|
||||||
|
block_width=3
|
||||||
|
|
||||||
|
# Color block height in lines
|
||||||
|
#
|
||||||
|
# Default: '1'
|
||||||
|
# Values: 'num'
|
||||||
|
# Flag: --block_height
|
||||||
|
block_height=1
|
||||||
|
|
||||||
|
|
||||||
|
# Progress Bars
|
||||||
|
|
||||||
|
|
||||||
|
# Bar characters
|
||||||
|
#
|
||||||
|
# Default: '-', '='
|
||||||
|
# Values: 'string', 'string'
|
||||||
|
# Flag: --bar_char
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# neofetch --bar_char 'elapsed' 'total'
|
||||||
|
# neofetch --bar_char '-' '='
|
||||||
|
bar_char_elapsed="-"
|
||||||
|
bar_char_total="="
|
||||||
|
|
||||||
|
# Toggle Bar border
|
||||||
|
#
|
||||||
|
# Default: 'on'
|
||||||
|
# Values: 'on', 'off'
|
||||||
|
# Flag: --bar_border
|
||||||
|
bar_border="on"
|
||||||
|
|
||||||
|
# Progress bar length in spaces
|
||||||
|
# Number of chars long to make the progress bars.
|
||||||
|
#
|
||||||
|
# Default: '15'
|
||||||
|
# Values: 'num'
|
||||||
|
# Flag: --bar_length
|
||||||
|
bar_length=15
|
||||||
|
|
||||||
|
# Progress bar colors
|
||||||
|
# When set to distro, uses your distro's logo colors.
|
||||||
|
#
|
||||||
|
# Default: 'distro', 'distro'
|
||||||
|
# Values: 'distro', 'num'
|
||||||
|
# Flag: --bar_colors
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# neofetch --bar_colors 3 4
|
||||||
|
# neofetch --bar_colors distro 5
|
||||||
|
bar_color_elapsed="distro"
|
||||||
|
bar_color_total="distro"
|
||||||
|
|
||||||
|
|
||||||
|
# Info display
|
||||||
|
# Display a bar with the info.
|
||||||
|
#
|
||||||
|
# Default: 'off'
|
||||||
|
# Values: 'bar', 'infobar', 'barinfo', 'off'
|
||||||
|
# Flags: --cpu_display
|
||||||
|
# --memory_display
|
||||||
|
# --battery_display
|
||||||
|
# --disk_display
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# bar: '[---=======]'
|
||||||
|
# infobar: 'info [---=======]'
|
||||||
|
# barinfo: '[---=======] info'
|
||||||
|
# off: 'info'
|
||||||
|
cpu_display="off"
|
||||||
|
memory_display="off"
|
||||||
|
battery_display="off"
|
||||||
|
disk_display="off"
|
||||||
|
|
||||||
|
|
||||||
|
# Backend Settings
|
||||||
|
|
||||||
|
|
||||||
|
# Image backend.
|
||||||
|
#
|
||||||
|
# Default: 'ascii'
|
||||||
|
# Values: 'ascii', 'caca', 'jp2a', 'iterm2', 'off', 'termpix', 'pixterm', 'tycat', 'w3m'
|
||||||
|
# Flag: --backend
|
||||||
|
image_backend="ascii"
|
||||||
|
|
||||||
|
# Image Source
|
||||||
|
#
|
||||||
|
# Which image or ascii file to display.
|
||||||
|
#
|
||||||
|
# Default: 'auto'
|
||||||
|
# Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/'
|
||||||
|
# Flag: --source
|
||||||
|
#
|
||||||
|
# NOTE: 'auto' will pick the best image source for whatever image backend is used.
|
||||||
|
# In ascii mode, distro ascii art will be used and in an image mode, your
|
||||||
|
# wallpaper will be used.
|
||||||
|
image_source="auto"
|
||||||
|
|
||||||
|
|
||||||
|
# Ascii Options
|
||||||
|
|
||||||
|
|
||||||
|
# Ascii distro
|
||||||
|
# Which distro's ascii art to display.
|
||||||
|
#
|
||||||
|
# Default: 'auto'
|
||||||
|
# Values: 'auto', 'distro_name'
|
||||||
|
# Flag: --ascii_distro
|
||||||
|
#
|
||||||
|
# NOTE: Arch and Ubuntu have 'old' logo variants.
|
||||||
|
# Change this to 'arch_old' or 'ubuntu_old' to use the old logos.
|
||||||
|
# NOTE: Ubuntu has flavor variants.
|
||||||
|
# Change this to 'Lubuntu', 'Xubuntu', 'Ubuntu-GNOME' or 'Ubuntu-Budgie' to use the flavors.
|
||||||
|
# NOTE: Arch, Crux and Gentoo have a smaller logo variant.
|
||||||
|
# Change this to 'arch_small', 'crux_small' or 'gentoo_small' to use the small logos.
|
||||||
|
ascii_distro="auto"
|
||||||
|
|
||||||
|
# Ascii Colors
|
||||||
|
#
|
||||||
|
# Default: 'distro'
|
||||||
|
# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
|
||||||
|
# Flag: --ascii_colors
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# ascii_colors=(distro) - Ascii is colored based on Distro colors.
|
||||||
|
# ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors.
|
||||||
|
ascii_colors=(distro)
|
||||||
|
|
||||||
|
# Bold ascii logo
|
||||||
|
# Whether or not to bold the ascii logo.
|
||||||
|
#
|
||||||
|
# Default: 'on'
|
||||||
|
# Values: 'on', 'off'
|
||||||
|
# Flag: --ascii_bold
|
||||||
|
ascii_bold="on"
|
||||||
|
|
||||||
|
|
||||||
|
# Image Options
|
||||||
|
|
||||||
|
|
||||||
|
# Image loop
|
||||||
|
# Setting this to on will make neofetch redraw the image constantly until
|
||||||
|
# Ctrl+C is pressed. This fixes display issues in some terminal emulators.
|
||||||
|
#
|
||||||
|
# Default: 'off'
|
||||||
|
# Values: 'on', 'off'
|
||||||
|
# Flag: --loop
|
||||||
|
image_loop="off"
|
||||||
|
|
||||||
|
# Thumbnail directory
|
||||||
|
#
|
||||||
|
# Default: '~/.cache/thumbnails/neofetch'
|
||||||
|
# Values: 'dir'
|
||||||
|
thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch"
|
||||||
|
|
||||||
|
# Crop mode
|
||||||
|
#
|
||||||
|
# Default: 'normal'
|
||||||
|
# Values: 'normal', 'fit', 'fill'
|
||||||
|
# Flag: --crop_mode
|
||||||
|
#
|
||||||
|
# See this wiki page to learn about the fit and fill options.
|
||||||
|
# https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F
|
||||||
|
crop_mode="normal"
|
||||||
|
|
||||||
|
# Crop offset
|
||||||
|
# Note: Only affects 'normal' crop mode.
|
||||||
|
#
|
||||||
|
# Default: 'center'
|
||||||
|
# Values: 'northwest', 'north', 'northeast', 'west', 'center'
|
||||||
|
# 'east', 'southwest', 'south', 'southeast'
|
||||||
|
# Flag: --crop_offset
|
||||||
|
crop_offset="center"
|
||||||
|
|
||||||
|
# Image size
|
||||||
|
# The image is half the terminal width by default.
|
||||||
|
#
|
||||||
|
# Default: 'auto'
|
||||||
|
# Values: 'auto', '00px', '00%', 'none'
|
||||||
|
# Flags: --image_size
|
||||||
|
# --size
|
||||||
|
image_size="auto"
|
||||||
|
|
||||||
|
# Gap between image and text
|
||||||
|
#
|
||||||
|
# Default: '3'
|
||||||
|
# Values: 'num', '-num'
|
||||||
|
# Flag: --gap
|
||||||
|
gap=3
|
||||||
|
|
||||||
|
# Image offsets
|
||||||
|
# Only works with the w3m backend.
|
||||||
|
#
|
||||||
|
# Default: '0'
|
||||||
|
# Values: 'px'
|
||||||
|
# Flags: --xoffset
|
||||||
|
# --yoffset
|
||||||
|
yoffset=0
|
||||||
|
xoffset=0
|
||||||
|
|
||||||
|
# Image background color
|
||||||
|
# Only works with the w3m backend.
|
||||||
|
#
|
||||||
|
# Default: ''
|
||||||
|
# Values: 'color', 'blue'
|
||||||
|
# Flag: --bg_color
|
||||||
|
background_color=
|
||||||
|
|
||||||
|
|
||||||
|
# Misc Options
|
||||||
|
|
||||||
|
# Stdout mode
|
||||||
|
# Turn off all colors and disables image backend (ASCII/Image).
|
||||||
|
# Useful for piping into another command.
|
||||||
|
# Default: 'off'
|
||||||
|
# Values: 'on', 'off'
|
||||||
|
stdout="off"
|
29
neomutt/.config/neomutt/accounts/gmail.muttrc
Normal file
29
neomutt/.config/neomutt/accounts/gmail.muttrc
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
# vim: filetype=neomuttrc
|
||||||
|
# muttrc file for account gmail
|
||||||
|
set realname = "Amin Kasrou Aouam"
|
||||||
|
set from = "akasroua@gmail.com"
|
||||||
|
set sendmail = "./.config/neomutt/etc/sendmail gmail"
|
||||||
|
set folder = "~/.mail/gmail"
|
||||||
|
#set header_cache = ~/.config/mutt/accounts/gmail/cache/headers
|
||||||
|
#set message_cachedir = ~/.config/mutt/accounts/gmail/cache/bodies
|
||||||
|
#set certificate_file = ~/.config/mutt/accounts/gmail/certificates
|
||||||
|
#source "~/.config/mutt/credentials/getmuttpass gmail |"
|
||||||
|
|
||||||
|
set mbox_type = Maildir
|
||||||
|
set ssl_starttls = yes
|
||||||
|
set ssl_force_tls = yes
|
||||||
|
|
||||||
|
set record = "+sent"
|
||||||
|
bind index,pager gg noop
|
||||||
|
bind index,pager g noop
|
||||||
|
bind index gg first-entry
|
||||||
|
unmailboxes *
|
||||||
|
mailboxes =gmail =------------------- =junk =Inbox =trash =sent
|
||||||
|
macro index,pager gi "<change-folder>=Inbox<enter>" "Go to inbox."
|
||||||
|
macro index,pager gs "<change-folder>=sent<enter>" "Go to sent."
|
||||||
|
macro index,pager gt "<change-folder>=trash<enter>" "Go to trash."
|
||||||
|
macro index,pager gj "<change-folder>=junk<enter>" "Go to spam."
|
||||||
|
set spoolfile = "+Inbox"
|
||||||
|
set record = "+sent"
|
||||||
|
set postponed = ""
|
||||||
|
set trash = "+trash"
|
28
neomutt/.config/neomutt/accounts/uni.muttrc
Normal file
28
neomutt/.config/neomutt/accounts/uni.muttrc
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
# vim: filetype=neomuttrc
|
||||||
|
# muttrc file for account coolneng
|
||||||
|
set realname = "Amin Kasrou Aouam"
|
||||||
|
set from = "akasroua@correo.ugr.es"
|
||||||
|
set sendmail = "./.config/neomutt/etc/sendmail uni"
|
||||||
|
set folder = "~/.mail/uni"
|
||||||
|
#set header_cache = ~/.config/mutt/accounts/coolneng/cache/headers
|
||||||
|
#set message_cachedir = ~/.config/mutt/accounts/coolneng/cache/bodies
|
||||||
|
#set certificate_file = ~/.config/mutt/accounts/coolneng/certificates
|
||||||
|
#source "~/.config/mutt/credentials/getmuttpass coolneng |"
|
||||||
|
|
||||||
|
set mbox_type = Maildir
|
||||||
|
set ssl_starttls = yes
|
||||||
|
set ssl_force_tls = yes
|
||||||
|
|
||||||
|
bind index,pager gg noop
|
||||||
|
bind index,pager g noop
|
||||||
|
bind index gg first-entry
|
||||||
|
unmailboxes *
|
||||||
|
mailboxes =uni =------------------- =INBOX =trash =sent =archive
|
||||||
|
macro index,pager gi "<change-folder>=INBOX<enter>" "Go to inbox."
|
||||||
|
macro index,pager gs "<change-folder>=sent<enter>" "Go to sent."
|
||||||
|
macro index,pager gt "<change-folder>=trash<enter>" "Go to trash."
|
||||||
|
macro index,pager ga "<change-folder>=archive<enter>" "Go to archive."
|
||||||
|
set spoolfile = "+INBOX"
|
||||||
|
set record = "+sent"
|
||||||
|
set postponed = ""
|
||||||
|
set trash = "+trash"
|
22
neomutt/.config/neomutt/etc/aliases
Normal file
22
neomutt/.config/neomutt/etc/aliases
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
## A file for aliases
|
||||||
|
|
||||||
|
# Uni staff
|
||||||
|
alias dani dmolina@decsai.ugr.es
|
||||||
|
alias cano carloscano@ugr.es
|
||||||
|
alias paco carranzafr@ugr.es
|
||||||
|
alias mesa cdemesa@decsai.ugr.es
|
||||||
|
|
||||||
|
# Uni students
|
||||||
|
alias elenche elenche@correo.ugr.es
|
||||||
|
alias bezout jesusmartinz@correo.ugr.es
|
||||||
|
alias lesca lesca98@correo.ugr.es
|
||||||
|
alias oumnia oumnia487@correo.ugr.es
|
||||||
|
alias juanca jclm@correo.ugr.es
|
||||||
|
|
||||||
|
# Personal
|
||||||
|
alias barbas arodasaparicio@gmail.com
|
||||||
|
alias rafika rafibel63@gmail.com
|
||||||
|
alias oekk luismata06@gmail.com
|
||||||
|
alias walid mkasrou@gmail.com
|
||||||
|
alias walida naouam61@gmail.com
|
||||||
|
alias tarek tarek@tarcript.me
|
131
neomutt/.config/neomutt/etc/gpg.rc
Normal file
131
neomutt/.config/neomutt/etc/gpg.rc
Normal file
@ -0,0 +1,131 @@
|
|||||||
|
# -*-muttrc-*-
|
||||||
|
#
|
||||||
|
# Command formats for gpg.
|
||||||
|
#
|
||||||
|
# Version notes:
|
||||||
|
#
|
||||||
|
# GPG 2.1 introduces the option "--pinentry-mode", which requires
|
||||||
|
# the "loopback" argument in instances where "--passphrase-fd" is
|
||||||
|
# used.
|
||||||
|
#
|
||||||
|
# Some of the older commented-out versions of the commands use gpg-2comp from:
|
||||||
|
# http://70t.de/download/gpg-2comp.tar.gz
|
||||||
|
#
|
||||||
|
# %p The empty string when no passphrase is needed,
|
||||||
|
# the string "PGPPASSFD=0" if one is needed.
|
||||||
|
#
|
||||||
|
# This is mostly used in conditional % sequences.
|
||||||
|
#
|
||||||
|
# %f Most PGP commands operate on a single file or a file
|
||||||
|
# containing a message. %f expands to this file's name.
|
||||||
|
#
|
||||||
|
# %s When verifying signatures, there is another temporary file
|
||||||
|
# containing the detached signature. %s expands to this
|
||||||
|
# file's name.
|
||||||
|
#
|
||||||
|
# %a In "signing" contexts, this expands to the value of the
|
||||||
|
# configuration variable $pgp_sign_as, if set, otherwise
|
||||||
|
# $pgp_default_key. You probably need to
|
||||||
|
# use this within a conditional % sequence.
|
||||||
|
#
|
||||||
|
# %r In many contexts, neomutt passes key IDs to pgp. %r expands to
|
||||||
|
# a list of key IDs.
|
||||||
|
|
||||||
|
# Section A: Key Management
|
||||||
|
|
||||||
|
# The default key for encryption (used by $pgp_self_encrypt and
|
||||||
|
# $postpone_encrypt).
|
||||||
|
#
|
||||||
|
# It will also be used for signing unless $pgp_sign_as is set to a
|
||||||
|
# key.
|
||||||
|
#
|
||||||
|
# Unless your key does not have encryption capability, uncomment this
|
||||||
|
# line and replace the keyid with your own.
|
||||||
|
#
|
||||||
|
# set pgp_default_key="0x12345678"
|
||||||
|
|
||||||
|
# If you have a separate signing key, or your key _only_ has signing
|
||||||
|
# capability, uncomment this line and replace the keyid with your
|
||||||
|
# signing keyid.
|
||||||
|
#
|
||||||
|
# set pgp_sign_as="0x87654321"
|
||||||
|
|
||||||
|
|
||||||
|
# Section B: Commands
|
||||||
|
|
||||||
|
# Note that we explicitly set the comment armor header since GnuPG, when used
|
||||||
|
# in some localiaztion environments, generates 8bit data in that header, thereby
|
||||||
|
# breaking PGP/MIME.
|
||||||
|
|
||||||
|
# decode application/pgp
|
||||||
|
#
|
||||||
|
set pgp_decode_command="gpg --status-fd=2 %?p?--pinentry-mode loopback --passphrase-fd 0? --no-verbose --quiet --batch --output - %f"
|
||||||
|
|
||||||
|
# Verify a signature
|
||||||
|
#
|
||||||
|
set pgp_verify_command="gpg --status-fd=2 --no-verbose --quiet --batch --output - --verify %s %f"
|
||||||
|
|
||||||
|
# Decrypt an attachment
|
||||||
|
#
|
||||||
|
set pgp_decrypt_command="gpg --status-fd=2 %?p?--pinentry-mode loopback --passphrase-fd 0? --no-verbose --quiet --batch --output - --decrypt %f"
|
||||||
|
|
||||||
|
# Create a PGP/MIME signed attachment
|
||||||
|
#
|
||||||
|
# set pgp_sign_command="gpg-2comp --comment '' --no-verbose --batch --output - %?p?--passphrase-fd 0? --armor --detach-sign --textmode %?a?-u %a? %f"
|
||||||
|
#
|
||||||
|
set pgp_sign_command="gpg %?p?--pinentry-mode loopback --passphrase-fd 0? --no-verbose --batch --quiet --output - --armor --textmode %?a?--local-user %a? --detach-sign %f"
|
||||||
|
|
||||||
|
# Create a application/pgp inline signed message. This style is obsolete but still needed for Hushmail recipients and some MUAs.
|
||||||
|
#
|
||||||
|
# set pgp_clearsign_command="gpg-2comp --comment '' --no-verbose --batch --output - %?p?--passphrase-fd 0? --armor --textmode --clearsign %?a?-u %a? %f"
|
||||||
|
#
|
||||||
|
set pgp_clearsign_command="gpg %?p?--pinentry-mode loopback --passphrase-fd 0? --no-verbose --batch --quiet --output - --armor --textmode %?a?--local-user %a? --clearsign %f"
|
||||||
|
|
||||||
|
# Create an encrypted attachment (note that some users include the --always-trust option here)
|
||||||
|
#
|
||||||
|
# set pgp_encrypt_only_command="/usr/libexec/neomutt/pgpewrap gpg-2comp -v --batch --output - --encrypt --textmode --armor --always-trust -- -r %r -- %f"
|
||||||
|
#
|
||||||
|
set pgp_encrypt_only_command="/usr/libexec/neomutt/pgpewrap gpg --batch --quiet --no-verbose --output - --textmode --armor --encrypt -- --recipient %r -- %f"
|
||||||
|
|
||||||
|
# Create an encrypted and signed attachment (note that some users include the --always-trust option here)
|
||||||
|
#
|
||||||
|
# set pgp_encrypt_sign_command="/usr/libexec/neomutt/pgpewrap gpg-2comp %?p?--passphrase-fd 0? -v --batch --output - --encrypt --sign %?a?-u %a? --armor --always-trust -- -r %r -- %f"
|
||||||
|
#
|
||||||
|
set pgp_encrypt_sign_command="/usr/libexec/neomutt/pgpewrap gpg %?p?--pinentry-mode loopback --passphrase-fd 0? --batch --quiet --no-verbose --textmode --output - %?a?--local-user %a? --armor --sign --encrypt -- --recipient %r -- %f"
|
||||||
|
|
||||||
|
# Import a key into the public key ring
|
||||||
|
#
|
||||||
|
set pgp_import_command="gpg --no-verbose --import %f"
|
||||||
|
|
||||||
|
# Export a key from the public key ring
|
||||||
|
#
|
||||||
|
set pgp_export_command="gpg --no-verbose --armor --export %r"
|
||||||
|
|
||||||
|
# Verify a key
|
||||||
|
#
|
||||||
|
set pgp_verify_key_command="gpg --verbose --batch --fingerprint --check-sigs %r"
|
||||||
|
|
||||||
|
# Read in the public key ring
|
||||||
|
#
|
||||||
|
set pgp_list_pubring_command="gpg --no-verbose --batch --quiet --with-colons --with-fingerprint --with-fingerprint --list-keys %r"
|
||||||
|
|
||||||
|
# Read in the secret key ring
|
||||||
|
#
|
||||||
|
set pgp_list_secring_command="gpg --no-verbose --batch --quiet --with-colons --with-fingerprint --with-fingerprint --list-secret-keys %r"
|
||||||
|
|
||||||
|
# Fetch keys
|
||||||
|
# set pgp_getkeys_command="pkspxycwrap %r"
|
||||||
|
|
||||||
|
# pattern for good signature - may need to be adapted to locale!
|
||||||
|
# OK, here's a version which uses gnupg's message catalog:
|
||||||
|
# set pgp_good_sign="^gpgv?: Good signature from"
|
||||||
|
# set pgp_good_sign="`gettext -d gnupg -s 'Good signature from "' | tr -d '"'`"
|
||||||
|
#
|
||||||
|
# Output pattern to indicate a valid signature using --status-fd messages
|
||||||
|
set pgp_good_sign="^\\[GNUPG:\\] GOODSIG"
|
||||||
|
|
||||||
|
# Output pattern to verify a decryption occurred
|
||||||
|
# This is now deprecated by pgp_check_gpg_decrypt_status_fd:
|
||||||
|
# set pgp_decryption_okay="^\\[GNUPG:\\] DECRYPTION_OKAY"
|
||||||
|
set pgp_check_gpg_decrypt_status_fd
|
||||||
|
|
6
neomutt/.config/neomutt/etc/mailcap
Normal file
6
neomutt/.config/neomutt/etc/mailcap
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
text/html; w3m -I %{charset} -T text/html %s; copiousoutput;
|
||||||
|
text/* ; vim %s ; edit=vim %s ; compose=vim %s ; needsterminal
|
||||||
|
image/*; sxiv %s ; copiousoutput
|
||||||
|
application/pdf; zathura %s ;
|
||||||
|
application/docx; libreoffice %s ;
|
||||||
|
application/pgp-encrypted; gpg -d '%s'; copiousoutput;
|
71
neomutt/.config/neomutt/etc/muttcol
Normal file
71
neomutt/.config/neomutt/etc/muttcol
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
# vim: filetype=neomuttrc
|
||||||
|
|
||||||
|
# Default index colors:
|
||||||
|
color index yellow default '.*'
|
||||||
|
color index_author red default '.*'
|
||||||
|
color index_number blue default
|
||||||
|
color index_subject cyan default '.*'
|
||||||
|
|
||||||
|
# For new mail:
|
||||||
|
color index brightyellow black "~N"
|
||||||
|
color index_author brightred black "~N"
|
||||||
|
color index_subject brightcyan black "~N"
|
||||||
|
|
||||||
|
# Header colors:
|
||||||
|
color header blue default ".*"
|
||||||
|
color header brightmagenta default "^(From)"
|
||||||
|
color header brightcyan default "^(Subject)"
|
||||||
|
color header brightwhite default "^(CC|BCC)"
|
||||||
|
|
||||||
|
mono bold bold
|
||||||
|
mono underline underline
|
||||||
|
mono indicator reverse
|
||||||
|
mono error bold
|
||||||
|
color normal default default
|
||||||
|
color indicator brightblack white
|
||||||
|
color sidebar_highlight red default
|
||||||
|
color sidebar_divider brightblack black
|
||||||
|
color sidebar_flagged red black
|
||||||
|
color sidebar_new green black
|
||||||
|
color normal brightyellow default
|
||||||
|
color error red default
|
||||||
|
color tilde black default
|
||||||
|
color message cyan default
|
||||||
|
color markers red white
|
||||||
|
color attachment white default
|
||||||
|
color search brightmagenta default
|
||||||
|
color status brightyellow black
|
||||||
|
color hdrdefault brightgreen default
|
||||||
|
color quoted green default
|
||||||
|
color quoted1 blue default
|
||||||
|
color quoted2 cyan default
|
||||||
|
color quoted3 yellow default
|
||||||
|
color quoted4 red default
|
||||||
|
color quoted5 brightred default
|
||||||
|
color signature brightgreen default
|
||||||
|
color bold black default
|
||||||
|
color underline black default
|
||||||
|
color normal default default
|
||||||
|
|
||||||
|
color body brightred default "[\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+" # Email addresses
|
||||||
|
color body brightblue default "(https?|ftp)://[\-\.,/%~_:?&=\#a-zA-Z0-9]+" # URL
|
||||||
|
color body green default "\`[^\`]*\`" # Green text between ` and `
|
||||||
|
color body brightblue default "^# \.*" # Headings as bold blue
|
||||||
|
color body brightcyan default "^## \.*" # Subheadings as bold cyan
|
||||||
|
color body brightgreen default "^### \.*" # Subsubheadings as bold green
|
||||||
|
color body yellow default "^(\t| )*(-|\\*) \.*" # List items as yellow
|
||||||
|
color body brightcyan default "[;:][-o][)/(|]" # emoticons
|
||||||
|
color body brightcyan default "[;:][)(|]" # emoticons
|
||||||
|
color body brightcyan default "[*]?((N)?ACK|CU|LOL|SCNR|BRB|BTW|CWYL|\
|
||||||
|
|FWIW|vbg|GD&R|HTH|HTHBE|IMHO|IMNSHO|\
|
||||||
|
|IRL|RTFM|ROTFL|ROFL|YMMV)[*]?"
|
||||||
|
color body brightcyan default "[ ][*][^*]*[*][ ]?" # more emoticon?
|
||||||
|
color body brightcyan default "[ ]?[*][^*]*[*][ ]" # more emoticon?
|
||||||
|
color body red default "(BAD signature)"
|
||||||
|
color body cyan default "(Good signature)"
|
||||||
|
color body brightblack default "^gpg: Good signature .*"
|
||||||
|
color body brightyellow default "^gpg: "
|
||||||
|
color body brightyellow red "^gpg: BAD signature from.*"
|
||||||
|
mono body bold "^gpg: Good signature"
|
||||||
|
mono body bold "^gpg: BAD signature from.*"
|
||||||
|
color body red default "([a-z][a-z0-9+-]*://(((([a-z0-9_.!~*'();:&=+$,-]|%[0-9a-f][0-9a-f])*@)?((([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?|[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)(:[0-9]+)?)|([a-z0-9_.!~*'()$,;:@&=+-]|%[0-9a-f][0-9a-f])+)(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?(#([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?|(www|ftp)\\.(([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?(:[0-9]+)?(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?(#([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?)[^].,:;!)? \t\r\n<>\"]""']))']))']))']))']))']))']))']))']))']))']))']))'])']))))))])]"
|
3
neomutt/.config/neomutt/etc/sendmail
Executable file
3
neomutt/.config/neomutt/etc/sendmail
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
./.local/bin/MIMEmbellish | msmtp -a $1 -t
|
1
neomutt/.config/neomutt/keys/gmail.gpg
Normal file
1
neomutt/.config/neomutt/keys/gmail.gpg
Normal file
@ -0,0 +1 @@
|
|||||||
|
Œ
$<24>_Ôì`ÐÒ™ç¶<>õ¸[Þa´´§s×´‡d_Y6ë‚‘ø1d<31>!ö&n´ÔÿÁ¥÷Ð<C3B7>ºÓDó×ZæÙÃHøù?7™äQyi¢“ÝÑâ’{PôÎÒ;ìgª€~²þÔ>BÖ¥JGr¹*@GH³âûËK¨ÚRî)öÂR]<5D>uµÖÙÇù a¦éî‰TºÇ;²úM©\¢’ï E
|
1
neomutt/.config/neomutt/keys/uni.gpg
Normal file
1
neomutt/.config/neomutt/keys/uni.gpg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<EFBFBD>
€Dg₪;a־׀ׂH.׀.כdGRצ†ב×<D791>R<EFBFBD>yט<11>־<EFBFBD>'ֿ‘ר'@ֿOדi2,~ת"XBzף<7A>©³B'[£<>¸uµ÷םֳץc¥ֲ<C2A5>€צ¼ד¼הו
|
89
neomutt/.config/neomutt/neomuttrc
Normal file
89
neomutt/.config/neomutt/neomuttrc
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
#vim: filetype=neomuttrc
|
||||||
|
# This is the general mutt config which has the settings that all accounts use.
|
||||||
|
bind index,pager i noop
|
||||||
|
bind index,pager g noop
|
||||||
|
bind index \Cf noop
|
||||||
|
source etc/muttcol
|
||||||
|
source etc/aliases
|
||||||
|
source personal.muttrc
|
||||||
|
set sleep_time = 0
|
||||||
|
set sort = 'reverse-date'
|
||||||
|
set editor = $EDITOR
|
||||||
|
set copy = no
|
||||||
|
set timeout = "15"
|
||||||
|
set mail_check = "30"
|
||||||
|
set imap_idle = yes
|
||||||
|
set beep_new = yes
|
||||||
|
set mailcap_path = ~/.config/neomutt/etc/mailcap
|
||||||
|
set date_format="%d/%m/%y %H:%M"
|
||||||
|
set index_format="%2C %zs %?X?A& ? %D %-15.15F %s (%-4.4c)"
|
||||||
|
set markers = no
|
||||||
|
set mark_old = no
|
||||||
|
set mime_forward = yes
|
||||||
|
set smtp_authenticators = 'gssapi:login'
|
||||||
|
set wait_key = no
|
||||||
|
auto_view text/html
|
||||||
|
auto_view application/pgp-encrypted
|
||||||
|
alternative_order text/plain text/enriched text/html
|
||||||
|
set rfc2047_parameters = yes
|
||||||
|
set send_charset = 'us-ascii:utf-8'
|
||||||
|
set ssl_use_tlsv1_2=yes
|
||||||
|
|
||||||
|
# General remappings
|
||||||
|
bind editor <space> noop
|
||||||
|
bind index G last-entry
|
||||||
|
bind index gg first-entry
|
||||||
|
bind pager j next-line
|
||||||
|
bind pager k previous-line
|
||||||
|
bind pager gg top
|
||||||
|
bind pager G bottom
|
||||||
|
bind index d half-down
|
||||||
|
bind index u half-up
|
||||||
|
bind index D delete-message
|
||||||
|
bind index U undelete-message
|
||||||
|
bind index F search
|
||||||
|
bind index,pager R group-reply
|
||||||
|
bind index,pager \031 previous-undeleted # Mouse wheel
|
||||||
|
bind index,pager \005 next-undeleted # Mouse wheel
|
||||||
|
macro index,pager S <sync-mailbox>
|
||||||
|
macro index,pager \Cu |urlscan\n
|
||||||
|
macro index,pager ,, |urlscan\n
|
||||||
|
|
||||||
|
# View attachments properly.
|
||||||
|
bind attach <return> view-mailcap
|
||||||
|
set fast_reply # skip to compose when replying
|
||||||
|
set fcc_attach # save attachments with the body
|
||||||
|
unset mime_forward # forward attachments as part of body
|
||||||
|
set forward_format = "Fwd: %s" # format of subject when forwarding
|
||||||
|
set forward_decode # decode when forwarding
|
||||||
|
set forward_quote # include message in forwards
|
||||||
|
set reverse_name # reply as whomever it was to
|
||||||
|
set include # include message in replies
|
||||||
|
|
||||||
|
#Ctrl-R to mark all as read
|
||||||
|
macro index \Cr "T~U<enter><tag-prefix><clear-flag>N<untag-pattern>.<enter>" "mark all messages as read"
|
||||||
|
#
|
||||||
|
# #sync email
|
||||||
|
macro index o "<shell-escape>mbsync -a 2>/dev/null 1>&2 &<enter>" "run mbsync to sync all mail"
|
||||||
|
|
||||||
|
# #copy/move dialogs
|
||||||
|
macro index C "<copy-message>?<toggle-mailboxes>" "copy a message to a mailbox"
|
||||||
|
macro index M "<save-message>?<toggle-mailboxes>" "move a message to a mailbox"
|
||||||
|
|
||||||
|
# Notmuch searching
|
||||||
|
macro index \Cf "<enter-command>unset wait_key<enter><shell-escape>read -p 'notmuch query: ' x; echo \$x >~/.cache/mutt_terms<enter><limit>~i \"\`notmuch search --output=messages \$(cat ~/.cache/mutt_terms) | head -n 600 | perl -le '@a=<>;chomp@a;s/\^id:// for@a;$,=\"|\";print@a'\`\"<enter>" "show only messages matching a notmuch pattern"
|
||||||
|
macro index A "<limit>all\n" "show all messages (undo limit)"
|
||||||
|
|
||||||
|
# # Sidebar mappings
|
||||||
|
set sidebar_visible = yes
|
||||||
|
set sidebar_width = 20
|
||||||
|
set sidebar_short_path = yes
|
||||||
|
set sidebar_next_new_wrap = yes
|
||||||
|
set mail_check_stats
|
||||||
|
set sidebar_format = '%B%?F? [%F]?%* %?N?%N/? %?S?%S?'
|
||||||
|
bind index,pager \Ck sidebar-prev
|
||||||
|
bind index,pager \Cj sidebar-next
|
||||||
|
bind index,pager \Co sidebar-open
|
||||||
|
bind index,pager \Cp sidebar-prev-new
|
||||||
|
bind index,pager \Cn sidebar-next-new
|
||||||
|
bind index,pager B sidebar-toggle-visible
|
4
neomutt/.config/neomutt/personal.muttrc
Normal file
4
neomutt/.config/neomutt/personal.muttrc
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
macro index,pager i1 '<sync-mailbox><enter-command>source "/home/coolneng/.config/neomutt"/accounts/gmail.muttrc<enter><change-folder>!<enter>'
|
||||||
|
source /home/coolneng/.config/neomutt/accounts/gmail.muttrc
|
||||||
|
macro index,pager i2 '<sync-mailbox><enter-command>source "/home/coolneng/.config/neomutt"/accounts/uni.muttrc<enter><change-folder>!<enter>'
|
||||||
|
source /home/coolneng/.config/neomutt/accounts/uni.muttrc
|
238
neomutt/.local/bin/MIMEmbellish/MIMEmbellish
Executable file
238
neomutt/.local/bin/MIMEmbellish/MIMEmbellish
Executable file
@ -0,0 +1,238 @@
|
|||||||
|
#!/usr/local/bin/python3.6
|
||||||
|
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
import email
|
||||||
|
import shlex
|
||||||
|
import mimetypes
|
||||||
|
import subprocess
|
||||||
|
from copy import copy
|
||||||
|
from hashlib import md5
|
||||||
|
from email import charset
|
||||||
|
from email import encoders
|
||||||
|
from email.mime.text import MIMEText
|
||||||
|
from email.mime.multipart import MIMEMultipart
|
||||||
|
from email.mime.nonmultipart import MIMENonMultipart
|
||||||
|
from os.path import basename, splitext, expanduser
|
||||||
|
|
||||||
|
|
||||||
|
charset.add_charset('utf-8', charset.SHORTEST, '8bit')
|
||||||
|
|
||||||
|
|
||||||
|
def pandoc(from_format, to_format='markdown', plain='markdown', title=None):
|
||||||
|
markdown = ('markdown'
|
||||||
|
'-blank_before_blockquote')
|
||||||
|
|
||||||
|
if from_format == 'plain':
|
||||||
|
from_format = plain
|
||||||
|
if from_format == 'markdown':
|
||||||
|
from_format = markdown
|
||||||
|
if to_format == 'markdown':
|
||||||
|
to_format = markdown
|
||||||
|
|
||||||
|
command = 'pandoc -f {} -t {} --standalone --highlight-style=tango'
|
||||||
|
if to_format in ('html', 'html5'):
|
||||||
|
if title is not None:
|
||||||
|
command += ' --variable=pagetitle:{}'.format(shlex.quote(title))
|
||||||
|
command += ' --webtex --template={}'.format(
|
||||||
|
expanduser('~/.pandoc/templates/email.html'))
|
||||||
|
return command.format(from_format, to_format)
|
||||||
|
|
||||||
|
|
||||||
|
def gmailfy(payload):
|
||||||
|
return payload.replace('<blockquote>',
|
||||||
|
'<blockquote class="gmail_quote" style="'
|
||||||
|
'padding: 0 7px 0 7px;'
|
||||||
|
'border-left: 2px solid #cccccc;'
|
||||||
|
'font-style: italic;'
|
||||||
|
'margin: 0 0 7px 3px;'
|
||||||
|
'">')
|
||||||
|
|
||||||
|
|
||||||
|
def make_alternative(message, part):
|
||||||
|
alternative = convert(part, 'html',
|
||||||
|
pandoc(part.get_content_subtype(),
|
||||||
|
to_format='html',
|
||||||
|
title=message.get('Subject')))
|
||||||
|
alternative.set_payload(gmailfy(alternative.get_payload()))
|
||||||
|
return alternative
|
||||||
|
|
||||||
|
|
||||||
|
def make_replacement(message, part):
|
||||||
|
return convert(part, 'plain', pandoc(part.get_content_subtype()))
|
||||||
|
|
||||||
|
|
||||||
|
def convert(part, to_subtype, command):
|
||||||
|
payload = part.get_payload()
|
||||||
|
if isinstance(payload, str):
|
||||||
|
payload = payload.encode('utf-8')
|
||||||
|
else:
|
||||||
|
payload = part.get_payload(None, True)
|
||||||
|
if not isinstance(payload, bytes):
|
||||||
|
payload = payload.encode('utf-8')
|
||||||
|
process = subprocess.run(
|
||||||
|
shlex.split(command),
|
||||||
|
input=payload, stdout=subprocess.PIPE, check=True)
|
||||||
|
return MIMEText(process.stdout, to_subtype, 'utf-8')
|
||||||
|
|
||||||
|
|
||||||
|
def with_alternative(parent, part, from_signed,
|
||||||
|
make_alternative=make_alternative,
|
||||||
|
make_replacement=None):
|
||||||
|
try:
|
||||||
|
alternative = make_alternative(parent or part, from_signed or part)
|
||||||
|
replacement = (make_replacement(parent or part, part)
|
||||||
|
if from_signed is None and make_replacement is not None
|
||||||
|
else part)
|
||||||
|
except:
|
||||||
|
return parent or part
|
||||||
|
envelope = MIMEMultipart('alternative')
|
||||||
|
if parent is None:
|
||||||
|
for k, v in part.items():
|
||||||
|
if (k.lower() != 'mime-version'
|
||||||
|
and not k.lower().startswith('content-')):
|
||||||
|
envelope.add_header(k, v)
|
||||||
|
del part[k]
|
||||||
|
envelope.attach(replacement)
|
||||||
|
envelope.attach(alternative)
|
||||||
|
if parent is None:
|
||||||
|
return envelope
|
||||||
|
payload = parent.get_payload()
|
||||||
|
payload[payload.index(part)] = envelope
|
||||||
|
return parent
|
||||||
|
|
||||||
|
|
||||||
|
def tag_attachments(message):
|
||||||
|
if message.get_content_type() == 'multipart/mixed':
|
||||||
|
for part in message.get_payload():
|
||||||
|
if (part.get_content_maintype() in ['image']
|
||||||
|
and 'Content-ID' not in part):
|
||||||
|
filename = part.get_param('filename',
|
||||||
|
header='Content-Disposition')
|
||||||
|
if isinstance(filename, tuple):
|
||||||
|
filename = str(filename[2], filename[0] or 'us-ascii')
|
||||||
|
if filename:
|
||||||
|
filename = splitext(basename(filename))[0]
|
||||||
|
if filename:
|
||||||
|
part.add_header('Content-ID', '<{}>'.format(filename))
|
||||||
|
return message
|
||||||
|
|
||||||
|
|
||||||
|
def attachment_from_file_path(attachment_path):
|
||||||
|
try:
|
||||||
|
mime, encoding = mimetypes.guess_type(attachment_path, strict=False)
|
||||||
|
maintype, subtype = mime.split('/')
|
||||||
|
with open(attachment_path, 'rb') as payload:
|
||||||
|
attachment = MIMENonMultipart(maintype, subtype)
|
||||||
|
attachment.set_payload(payload.read())
|
||||||
|
encoders.encode_base64(attachment)
|
||||||
|
if encoding:
|
||||||
|
attachment.add_header('Content-Encoding', encoding)
|
||||||
|
return attachment
|
||||||
|
except:
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
attachment_path_pattern = re.compile(r'\]\s*\(\s*file://(/[^)]*\S)\s*\)|'
|
||||||
|
r'\]\s*:\s*file://(/.*\S)\s*$',
|
||||||
|
re.MULTILINE)
|
||||||
|
|
||||||
|
|
||||||
|
def link_attachments(payload):
|
||||||
|
attached = []
|
||||||
|
attachments = []
|
||||||
|
|
||||||
|
def on_match(match):
|
||||||
|
if match.group(1):
|
||||||
|
attachment_path = match.group(1)
|
||||||
|
cid_fmt = '](cid:{})'
|
||||||
|
else:
|
||||||
|
attachment_path = match.group(2)
|
||||||
|
cid_fmt = ']: cid:{}'
|
||||||
|
attachment_id = md5(attachment_path.encode()).hexdigest()
|
||||||
|
if attachment_id in attached:
|
||||||
|
return cid_fmt.format(attachment_id)
|
||||||
|
attachment = attachment_from_file_path(attachment_path)
|
||||||
|
if attachment:
|
||||||
|
attachment.add_header('Content-ID', '<{}>'.format(attachment_id))
|
||||||
|
attachments.append(attachment)
|
||||||
|
attached.append(attachment_id)
|
||||||
|
return cid_fmt.format(attachment_id)
|
||||||
|
return match.group()
|
||||||
|
|
||||||
|
return attachments, attachment_path_pattern.sub(on_match, payload)
|
||||||
|
|
||||||
|
|
||||||
|
def with_local_attachments(parent, part, from_signed,
|
||||||
|
link_attachments=link_attachments):
|
||||||
|
if from_signed is None:
|
||||||
|
attachments, payload = link_attachments(part.get_payload())
|
||||||
|
part.set_payload(payload)
|
||||||
|
else:
|
||||||
|
attachments, payload = link_attachments(from_signed.get_payload())
|
||||||
|
from_signed = copy(from_signed)
|
||||||
|
from_signed.set_payload(payload)
|
||||||
|
if not attachments:
|
||||||
|
return parent, part, from_signed
|
||||||
|
if parent is None:
|
||||||
|
parent = MIMEMultipart('mixed')
|
||||||
|
for k, v in part.items():
|
||||||
|
if (k.lower() != 'mime-version'
|
||||||
|
and not k.lower().startswith('content-')):
|
||||||
|
parent.add_header(k, v)
|
||||||
|
del part[k]
|
||||||
|
parent.attach(part)
|
||||||
|
for attachment in attachments:
|
||||||
|
parent.attach(attachment)
|
||||||
|
return parent, part, from_signed
|
||||||
|
|
||||||
|
|
||||||
|
def is_target(part, target_subtypes):
|
||||||
|
return (part.get('Content-Disposition', 'inline') == 'inline'
|
||||||
|
and part.get_content_maintype() == 'text'
|
||||||
|
and part.get_content_subtype() in target_subtypes)
|
||||||
|
|
||||||
|
|
||||||
|
def pick_from_signed(part, target_subtypes):
|
||||||
|
for from_signed in part.get_payload():
|
||||||
|
if is_target(from_signed, target_subtypes):
|
||||||
|
return from_signed
|
||||||
|
|
||||||
|
|
||||||
|
def seek_target(message, target_subtypes=['plain', 'markdown']):
|
||||||
|
if message.is_multipart():
|
||||||
|
if message.get_content_type() == 'multipart/signed':
|
||||||
|
part = pick_from_signed(message, target_subtypes)
|
||||||
|
if part is not None:
|
||||||
|
return None, message, part
|
||||||
|
elif message.get_content_type() == 'multipart/mixed':
|
||||||
|
for part in message.get_payload():
|
||||||
|
if part.is_multipart():
|
||||||
|
if part.get_content_type() == 'multipart/signed':
|
||||||
|
from_signed = pick_from_signed(part, target_subtypes)
|
||||||
|
if from_signed is not None:
|
||||||
|
return message, part, from_signed
|
||||||
|
elif is_target(part, target_subtypes):
|
||||||
|
return message, part, None
|
||||||
|
else:
|
||||||
|
if is_target(message, target_subtypes):
|
||||||
|
return None, message, None
|
||||||
|
return None, None, None
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
try:
|
||||||
|
message = email.message_from_file(sys.stdin)
|
||||||
|
parent, part, from_signed = seek_target(message)
|
||||||
|
if (parent, part, from_signed) == (None, None, None):
|
||||||
|
print(message)
|
||||||
|
return
|
||||||
|
tag_attachments(message)
|
||||||
|
print(with_alternative(
|
||||||
|
*with_local_attachments(parent, part, from_signed)))
|
||||||
|
except (BrokenPipeError, KeyboardInterrupt):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
49
openbox/.config/openbox/autostart
Executable file
49
openbox/.config/openbox/autostart
Executable file
@ -0,0 +1,49 @@
|
|||||||
|
## Set keyboard layout
|
||||||
|
setxkbmap -layout es &
|
||||||
|
|
||||||
|
## Start compositor
|
||||||
|
compton -cCb --config ~/.config/compton.conf &
|
||||||
|
#
|
||||||
|
## Set background image
|
||||||
|
nitrogen --restore &
|
||||||
|
|
||||||
|
## Turn off/on System Beep
|
||||||
|
set b off &
|
||||||
|
|
||||||
|
## Xorg settings
|
||||||
|
xrdb ~/.Xresources &
|
||||||
|
|
||||||
|
## Clipboard manager
|
||||||
|
(sleep 2; anamnesis --start) &
|
||||||
|
|
||||||
|
## Start desktop visualizer (eyecandy)
|
||||||
|
(sleep 3; conky) &
|
||||||
|
|
||||||
|
## Bluelight filter
|
||||||
|
(sleep 4; redshift) &
|
||||||
|
|
||||||
|
## Bar with invisible tray
|
||||||
|
(sleep 2; stalonetray --dockapp-mode simple --kludges force_icons_size -i 15) &
|
||||||
|
(sleep 3; polybar main) &
|
||||||
|
|
||||||
|
## Urxvt daemon
|
||||||
|
urxvtd -q -f -o &
|
||||||
|
|
||||||
|
## Create musicpd temporary log
|
||||||
|
touch /tmp/mpd-log &
|
||||||
|
|
||||||
|
## KeepassXC
|
||||||
|
(sleep 2; bash -c "secret-tool lookup 'keepass' 'login' | keepassxc --pw-stdin ~/Nextcloud/Documents/IT/MDP.kbdx") &
|
||||||
|
|
||||||
|
## GPG
|
||||||
|
(sleep 3; bash -c "secret-tool lookup 'gpg' 'login' | gpg --no-tty --pinentry-mode loopback --passphrase-fd 0 -d ~/.password-store/mail/uni.gpg") &
|
||||||
|
|
||||||
|
## Nextcloud
|
||||||
|
(sleep 5; nextcloud) &
|
||||||
|
|
||||||
|
## Spacemacs daemon
|
||||||
|
(sleep 7; emacs --daemon=instance1) &
|
||||||
|
|
||||||
|
## Imap IDLE
|
||||||
|
(sleep 10; imapnotify -c ~/.config/imapnotify/gmail.js) &
|
||||||
|
(sleep 10; imapnotify -c ~/.config/imapnotify/uni.js) &
|
2
openbox/.config/openbox/environment
Executable file
2
openbox/.config/openbox/environment
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
## GNOME Keyring
|
||||||
|
eval $(/usr/local/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh)
|
103
openbox/.config/openbox/menu.xml
Executable file
103
openbox/.config/openbox/menu.xml
Executable file
@ -0,0 +1,103 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<openbox_menu>
|
||||||
|
<menu id="Office" label="Office">
|
||||||
|
<separator label="OFFICE"/>
|
||||||
|
<item label="LibreOffice Base">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>libreoffice --base</command>
|
||||||
|
</action>
|
||||||
|
</item>
|
||||||
|
<item label="LibreOffice Calc">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>libreoffice --calc</command>
|
||||||
|
</action>
|
||||||
|
</item>
|
||||||
|
<item label="LibreOffice Draw">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>libreoffice --draw</command>
|
||||||
|
</action>
|
||||||
|
</item>
|
||||||
|
<item label="LibreOffice Impress">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>libreoffice --impress</command>
|
||||||
|
</action>
|
||||||
|
</item>
|
||||||
|
<item label="LibreOffice Math">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>libreoffice --math</command>
|
||||||
|
</action>
|
||||||
|
</item>
|
||||||
|
<item label="LibreOffice Writer">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>libreoffice --writer</command>
|
||||||
|
</action>
|
||||||
|
</item>
|
||||||
|
<item label="LibreOffice">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>libreoffice</command>
|
||||||
|
</action>
|
||||||
|
</item>
|
||||||
|
</menu>
|
||||||
|
<menu id="root-menu" label="Openbox 3">
|
||||||
|
<separator label="MAIN MENU"/>
|
||||||
|
<item label="Run Program">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>rofi -show drun -config /home/coolneng/.config/rofi/config</command>
|
||||||
|
</action>
|
||||||
|
</item>
|
||||||
|
<separator/>
|
||||||
|
<item label="Terminal">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>exo-open --launch TerminalEmulator</command>
|
||||||
|
</action>
|
||||||
|
</item>
|
||||||
|
<item label="Web Browser">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>firefox</command>
|
||||||
|
</action>
|
||||||
|
</item>
|
||||||
|
<item label="File Manager">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>exo-open --launch FileManager</command>
|
||||||
|
</action>
|
||||||
|
</item>
|
||||||
|
<separator/>
|
||||||
|
<menu id="Multimedia"/>
|
||||||
|
<menu id="Network"/>
|
||||||
|
<menu id="Office"/>
|
||||||
|
<separator/>
|
||||||
|
<menu id="Preferences"/>
|
||||||
|
<separator/>
|
||||||
|
<separator/>
|
||||||
|
<item label="Change Wallpaper">
|
||||||
|
<action name="Execute">
|
||||||
|
<execute>nitrogen</execute>
|
||||||
|
</action>
|
||||||
|
</item>
|
||||||
|
<item label="Restart Openbox">
|
||||||
|
<action name="Execute">
|
||||||
|
<execute>openbox --restart</execute>
|
||||||
|
</action>
|
||||||
|
</item>
|
||||||
|
<item label="Reboot">
|
||||||
|
<action name="Execute">
|
||||||
|
<execute>shutdown -r now</execute>
|
||||||
|
</action>
|
||||||
|
</item>
|
||||||
|
<item label="Lock">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>i3lock -i ~/Pictures/Wallpapers/wallhaven-638719.png</command>
|
||||||
|
</action>
|
||||||
|
</item>
|
||||||
|
<item label="Logout">
|
||||||
|
<action name="Exit">
|
||||||
|
<execute>kill -9 -1</execute>
|
||||||
|
</action>
|
||||||
|
</item>
|
||||||
|
<item label="Shutdown">
|
||||||
|
<action name="Execute">
|
||||||
|
<execute>shutdown -p now</execute>
|
||||||
|
</action>
|
||||||
|
</item>
|
||||||
|
</menu>
|
||||||
|
</openbox_menu>
|
830
openbox/.config/openbox/rc.xml
Executable file
830
openbox/.config/openbox/rc.xml
Executable file
@ -0,0 +1,830 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<openbox_config xmlns="http://openbox.org/3.4/rc" xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||||
|
<resistance>
|
||||||
|
<strength>10</strength>
|
||||||
|
<screen_edge_strength>20</screen_edge_strength>
|
||||||
|
</resistance>
|
||||||
|
<focus>
|
||||||
|
<focusNew>yes</focusNew>
|
||||||
|
<!-- always try to focus new windows when they appear. other rules do
|
||||||
|
apply -->
|
||||||
|
<followMouse>no</followMouse>
|
||||||
|
<!-- move focus to a window when you move the mouse into it -->
|
||||||
|
<focusLast>yes</focusLast>
|
||||||
|
<!-- focus the last used window when changing desktops, instead of the one
|
||||||
|
under the mouse pointer. when followMouse is enabled -->
|
||||||
|
<underMouse>no</underMouse>
|
||||||
|
<!-- move focus under the mouse, even when the mouse is not moving -->
|
||||||
|
<focusDelay>200</focusDelay>
|
||||||
|
<!-- when followMouse is enabled, the mouse must be inside the window for
|
||||||
|
this many milliseconds (1000 = 1 sec) before moving focus to it -->
|
||||||
|
<raiseOnFocus>no</raiseOnFocus>
|
||||||
|
<!-- when followMouse is enabled, and a window is given focus by moving the
|
||||||
|
mouse into it, also raise the window -->
|
||||||
|
</focus>
|
||||||
|
<placement>
|
||||||
|
<policy>UnderMouse</policy>
|
||||||
|
<!-- 'Smart' or 'UnderMouse' -->
|
||||||
|
<center>yes</center>
|
||||||
|
<!-- whether to place windows in the center of the free area found or
|
||||||
|
the top left corner -->
|
||||||
|
<monitor>Mouse</monitor>
|
||||||
|
<!-- with Smart placement on a multi-monitor system, try to place new windows
|
||||||
|
on: 'Any' - any monitor, 'Mouse' - where the mouse is, 'Active' - where
|
||||||
|
the active window is, 'Primary' - only on the primary monitor -->
|
||||||
|
<primaryMonitor>Mouse</primaryMonitor>
|
||||||
|
<!-- The monitor where Openbox should place popup dialogs such as the
|
||||||
|
focus cycling popup, or the desktop switch popup. It can be an index
|
||||||
|
from 1, specifying a particular monitor. Or it can be one of the
|
||||||
|
following: 'Mouse' - where the mouse is, or
|
||||||
|
'Active' - where the active window is -->
|
||||||
|
</placement>
|
||||||
|
<theme>
|
||||||
|
<name>Aesthetic</name>
|
||||||
|
<titleLayout>IMC</titleLayout>
|
||||||
|
<!--
|
||||||
|
available characters are NDSLIMC, each can occur at most once.
|
||||||
|
N: window icon
|
||||||
|
L: window label (AKA title).
|
||||||
|
I: iconify
|
||||||
|
M: maximize
|
||||||
|
C: close
|
||||||
|
S: shade (roll up/down)
|
||||||
|
D: omnipresent (on all desktops).
|
||||||
|
-->
|
||||||
|
<!--
|
||||||
|
<cornerRadius>4</cornerRadius>
|
||||||
|
-->
|
||||||
|
<keepBorder>yes</keepBorder>
|
||||||
|
<animateIconify>yes</animateIconify>
|
||||||
|
<font place="ActiveWindow">
|
||||||
|
<name>Roboto Condensed, Condensed</name>
|
||||||
|
<size>9</size>
|
||||||
|
<!-- font size in points -->
|
||||||
|
<weight>Normal</weight>
|
||||||
|
<!-- 'bold' or 'normal' -->
|
||||||
|
<slant>Normal</slant>
|
||||||
|
<!-- 'italic' or 'normal' -->
|
||||||
|
</font>
|
||||||
|
<font place="InactiveWindow">
|
||||||
|
<name>Roboto Condensed, Condensed</name>
|
||||||
|
<size>9</size>
|
||||||
|
<!-- font size in points -->
|
||||||
|
<weight>Normal</weight>
|
||||||
|
<!-- 'bold' or 'normal' -->
|
||||||
|
<slant>Normal</slant>
|
||||||
|
<!-- 'italic' or 'normal' -->
|
||||||
|
</font>
|
||||||
|
<font place="MenuHeader">
|
||||||
|
<name>Roboto Condensed, Condensed</name>
|
||||||
|
<size>9</size>
|
||||||
|
<!-- font size in points -->
|
||||||
|
<weight>Normal</weight>
|
||||||
|
<!-- 'bold' or 'normal' -->
|
||||||
|
<slant>Normal</slant>
|
||||||
|
<!-- 'italic' or 'normal' -->
|
||||||
|
</font>
|
||||||
|
<font place="MenuItem">
|
||||||
|
<name>Roboto Condensed, Condensed</name>
|
||||||
|
<size>9</size>
|
||||||
|
<!-- font size in points -->
|
||||||
|
<weight>Normal</weight>
|
||||||
|
<!-- 'bold' or 'normal' -->
|
||||||
|
<slant>Normal</slant>
|
||||||
|
<!-- 'italic' or 'normal' -->
|
||||||
|
</font>
|
||||||
|
<font place="ActiveOnScreenDisplay">
|
||||||
|
<name>Roboto Condensed, Condensed</name>
|
||||||
|
<size>9</size>
|
||||||
|
<!-- font size in points -->
|
||||||
|
<weight>Normal</weight>
|
||||||
|
<!-- 'bold' or 'normal' -->
|
||||||
|
<slant>Normal</slant>
|
||||||
|
<!-- 'italic' or 'normal' -->
|
||||||
|
</font>
|
||||||
|
<font place="InactiveOnScreenDisplay">
|
||||||
|
<name>Roboto Condensed, Condensed</name>
|
||||||
|
<size>9</size>
|
||||||
|
<!-- font size in points -->
|
||||||
|
<weight>Normal</weight>
|
||||||
|
<!-- 'bold' or 'normal' -->
|
||||||
|
<slant>Normal</slant>
|
||||||
|
<!-- 'italic' or 'normal' -->
|
||||||
|
</font>
|
||||||
|
</theme>
|
||||||
|
<desktops>
|
||||||
|
<!-- this stuff is only used at startup, pagers allow you to change them
|
||||||
|
during a session
|
||||||
|
|
||||||
|
these are default values to use when other ones are not already set
|
||||||
|
by other applications, or saved in your session
|
||||||
|
|
||||||
|
use obconf if you want to change these without having to log out
|
||||||
|
and back in -->
|
||||||
|
<number>4</number>
|
||||||
|
<firstdesk>1</firstdesk>
|
||||||
|
<names>
|
||||||
|
<name>1</name>
|
||||||
|
<name>2</name>
|
||||||
|
<name>3</name>
|
||||||
|
<name>4</name>
|
||||||
|
<name>5</name>
|
||||||
|
<name>6</name>
|
||||||
|
<name>7</name>
|
||||||
|
<name>8</name>
|
||||||
|
</names>
|
||||||
|
<popupTime>0</popupTime>
|
||||||
|
<!-- The number of milliseconds to show the popup for when switching
|
||||||
|
desktops. Set this to 0 to disable the popup. -->
|
||||||
|
</desktops>
|
||||||
|
<resize>
|
||||||
|
<drawContents>yes</drawContents>
|
||||||
|
<popupShow>Nonpixel</popupShow>
|
||||||
|
<!-- 'Always', 'Never', or 'Nonpixel' (xterms and such) -->
|
||||||
|
<popupPosition>Center</popupPosition>
|
||||||
|
<!-- 'Center' or 'Top' -->
|
||||||
|
<popupFixedPosition>
|
||||||
|
<!-- these are used if popupPosition is set to 'Fixed' -->
|
||||||
|
<x>10</x>
|
||||||
|
<!-- positive number for distance from left edge, negative number for
|
||||||
|
distance from right edge, or 'Center' -->
|
||||||
|
<y>10</y>
|
||||||
|
<!-- positive number for distance from top edge, negative number for
|
||||||
|
distance from bottom edge, or 'Center' -->
|
||||||
|
</popupFixedPosition>
|
||||||
|
</resize>
|
||||||
|
<!-- You can reserve a portion of your screen where windows will not cover when
|
||||||
|
they are maximized, or when they are initially placed.
|
||||||
|
Many programs reserve space automatically, but you can use this in other
|
||||||
|
cases. -->
|
||||||
|
<margins>
|
||||||
|
<top>0</top>
|
||||||
|
<bottom>0</bottom>
|
||||||
|
<left>0</left>
|
||||||
|
<right>0</right>
|
||||||
|
</margins>
|
||||||
|
<dock>
|
||||||
|
<position>Floating</position>
|
||||||
|
<!-- (Top|Bottom)(Left|Right|)|Top|Bottom|Left|Right|Floating -->
|
||||||
|
<floatingX>0</floatingX>
|
||||||
|
<floatingY>0</floatingY>
|
||||||
|
<noStrut>no</noStrut>
|
||||||
|
<stacking>Above</stacking>
|
||||||
|
<!-- 'Above', 'Normal', or 'Below' -->
|
||||||
|
<direction>Vertical</direction>
|
||||||
|
<!-- 'Vertical' or 'Horizontal' -->
|
||||||
|
<autoHide>no</autoHide>
|
||||||
|
<hideDelay>300</hideDelay>
|
||||||
|
<!-- in milliseconds (1000 = 1 second) -->
|
||||||
|
<showDelay>300</showDelay>
|
||||||
|
<!-- in milliseconds (1000 = 1 second) -->
|
||||||
|
<moveButton>Middle</moveButton>
|
||||||
|
<!-- 'Left', 'Middle', 'Right' -->
|
||||||
|
</dock>
|
||||||
|
<keyboard>
|
||||||
|
<chainQuitKey>C-g</chainQuitKey>
|
||||||
|
<keybind key="C-A-Right">
|
||||||
|
<action name="DesktopRight"/>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-t">
|
||||||
|
<action name="UnmaximizeFull"/>
|
||||||
|
<action name="MaximizeVert"/>
|
||||||
|
<action name="MoveResizeTo">
|
||||||
|
<width>29%</width>
|
||||||
|
</action>
|
||||||
|
<action name="MoveToEdgeWest"/>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-y">
|
||||||
|
<action name="UnmaximizeFull"/>
|
||||||
|
<action name="MaximizeVert"/>
|
||||||
|
<action name="MoveResizeTo">
|
||||||
|
<width>71%</width>
|
||||||
|
</action>
|
||||||
|
<action name="MoveToEdgeEast"/>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-c">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>anamnesis -b</command>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="C-S-Right">
|
||||||
|
<action name="SendToDesktopRight"/>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="C-S-Left">
|
||||||
|
<action name="SendToDesktopPrevious"/>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="XF86AudioPlay">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>mpc toggle</command>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="XF86AudioStop">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>mpc stop</command>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="S-W-d">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>xdg-open "$(locate home media | rofi -threads 0 -width 100 -color-window "#000000, #000000, #000000" -color-normal "#000000, #b3e774, #000000, #b3e774, #000000" -color-active "#000000, #b3e774, #000000, #b3e774, #000000" -color-urgent "#000000, #b3e774, #000000, #b3e774, #000000" -dmenu -i -p "locate:")"</command>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-f">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>firefox</command>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-e">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>emacsclient -nc -s instance1</command>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="XF86AudioRaiseVolume">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>mixer vol +5</command>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="XF86AudioLowerVolume">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>mixer vol -5</command>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="XF86AudioMute">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>mixer vol mute</command>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="Menu">
|
||||||
|
<action name="ShowMenu"/>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="A-Tab">
|
||||||
|
<action name="NextWindow"/>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="C-A-Left">
|
||||||
|
<action name="DesktopLeft"/>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="XF86AudioStop">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>mpc --host=/home/coolneng/.mpd/socket stop</command>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="XF86AudioPlay">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>mpc --host=/home/coolneng/.mpd/socket toggle</command>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="XF86AudioPrev">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>mpc --host=/home/coolneng/.mpd/socket prev</command>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="XF86AudioNext">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>mpc --host=/home/coolneng/.mpd/socket next</command>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="Print">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>scrot -e 'mv $f ~/Nextcloud/Photos/Screenshots'</command>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-d">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>rofi -show drun</command>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-space">
|
||||||
|
<action name="Iconify"/>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-Up">
|
||||||
|
<action name="MaximizeFull"/>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-Down">
|
||||||
|
<action name="UnmaximizeFull"/>
|
||||||
|
<action name="MoveResizeTo">
|
||||||
|
<width>50%</width>
|
||||||
|
<height>50%</height>
|
||||||
|
</action>
|
||||||
|
<action name="MoveToCenter"/>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-Left">
|
||||||
|
<action name="UnmaximizeFull"/>
|
||||||
|
<action name="MaximizeVert"/>
|
||||||
|
<action name="MoveResizeTo">
|
||||||
|
<width>50%</width>
|
||||||
|
</action>
|
||||||
|
<action name="MoveToEdgeWest"/>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-Right">
|
||||||
|
<action name="UnmaximizeFull"/>
|
||||||
|
<action name="MaximizeVert"/>
|
||||||
|
<action name="MoveResizeTo">
|
||||||
|
<width>50%</width>
|
||||||
|
</action>
|
||||||
|
<action name="MoveToEdgeEast"/>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-Return">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>urxvtc</command>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-w">
|
||||||
|
<action name="Close"/>
|
||||||
|
</keybind>
|
||||||
|
</keyboard>
|
||||||
|
<mouse>
|
||||||
|
<dragThreshold>8</dragThreshold>
|
||||||
|
<!-- number of pixels the mouse must move before a drag begins -->
|
||||||
|
<doubleClickTime>400</doubleClickTime>
|
||||||
|
<!-- in milliseconds (1000 = 1 second) -->
|
||||||
|
<screenEdgeWarpTime>400</screenEdgeWarpTime>
|
||||||
|
<!-- Time before changing desktops when the pointer touches the edge of the
|
||||||
|
screen while moving a window, in milliseconds (1000 = 1 second).
|
||||||
|
Set this to 0 to disable warping -->
|
||||||
|
<screenEdgeWarpMouse>false</screenEdgeWarpMouse>
|
||||||
|
<!-- Set this to TRUE to move the mouse pointer across the desktop when
|
||||||
|
switching due to hitting the edge of the screen -->
|
||||||
|
<context name="Frame">
|
||||||
|
<mousebind action="Press" button="A-Left">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Click" button="A-Left">
|
||||||
|
<action name="Unshade"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Drag" button="A-Left">
|
||||||
|
<action name="Move"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Press" button="A-Right">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="Unshade"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Drag" button="A-Right">
|
||||||
|
<action name="Resize"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Press" button="A-Middle">
|
||||||
|
<action name="Lower"/>
|
||||||
|
<action name="FocusToBottom"/>
|
||||||
|
<action name="Unfocus"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Click" button="A-Up">
|
||||||
|
<action name="GoToDesktop">
|
||||||
|
<to>previous</to>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Click" button="A-Down">
|
||||||
|
<action name="GoToDesktop">
|
||||||
|
<to>next</to>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Click" button="C-A-Up">
|
||||||
|
<action name="GoToDesktop">
|
||||||
|
<to>previous</to>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Click" button="C-A-Down">
|
||||||
|
<action name="GoToDesktop">
|
||||||
|
<to>next</to>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Click" button="A-S-Up">
|
||||||
|
<action name="SendToDesktop">
|
||||||
|
<to>previous</to>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Click" button="A-S-Down">
|
||||||
|
<action name="SendToDesktop">
|
||||||
|
<to>next</to>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="Titlebar">
|
||||||
|
<mousebind action="Press" button="Left">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Drag" button="Left">
|
||||||
|
<action name="Move"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="DoubleClick" button="Left">
|
||||||
|
<action name="ToggleMaximizeFull"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Press" button="Middle">
|
||||||
|
<action name="Lower"/>
|
||||||
|
<action name="FocusToBottom"/>
|
||||||
|
<action name="Unfocus"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Click" button="Up">
|
||||||
|
<action name="if">
|
||||||
|
<shaded>no</shaded>
|
||||||
|
<then>
|
||||||
|
<action name="Shade"/>
|
||||||
|
<action name="FocusToBottom"/>
|
||||||
|
<action name="Unfocus"/>
|
||||||
|
<action name="Lower"/>
|
||||||
|
</then>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Click" button="Down">
|
||||||
|
<action name="if">
|
||||||
|
<shaded>yes</shaded>
|
||||||
|
<then>
|
||||||
|
<action name="Unshade"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
</then>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Press" button="Right">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="ShowMenu">
|
||||||
|
<menu>client-menu</menu>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="Titlebar Top Right Bottom Left TLCorner TRCorner BRCorner BLCorner">
|
||||||
|
<mousebind action="Press" button="Left">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="Unshade"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Press" button="Middle">
|
||||||
|
<action name="Lower"/>
|
||||||
|
<action name="FocusToBottom"/>
|
||||||
|
<action name="Unfocus"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Press" button="Right">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="ShowMenu">
|
||||||
|
<menu>client-menu</menu>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="Top">
|
||||||
|
<mousebind action="Press" button="Left">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="Unshade"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Drag" button="Left">
|
||||||
|
<action name="Resize">
|
||||||
|
<edge>top</edge>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="Left">
|
||||||
|
<mousebind action="Press" button="Left">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Drag" button="Left">
|
||||||
|
<action name="Resize">
|
||||||
|
<edge>left</edge>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="Right">
|
||||||
|
<mousebind action="Press" button="Left">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Drag" button="Left">
|
||||||
|
<action name="Resize">
|
||||||
|
<edge>right</edge>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="Bottom">
|
||||||
|
<mousebind action="Press" button="Left">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Drag" button="Left">
|
||||||
|
<action name="Resize">
|
||||||
|
<edge>bottom</edge>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Press" button="Middle">
|
||||||
|
<action name="Lower"/>
|
||||||
|
<action name="FocusToBottom"/>
|
||||||
|
<action name="Unfocus"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Press" button="Right">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="ShowMenu">
|
||||||
|
<menu>client-menu</menu>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="TRCorner BRCorner TLCorner BLCorner">
|
||||||
|
<mousebind action="Press" button="Left">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="Unshade"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Drag" button="Left">
|
||||||
|
<action name="Resize"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="Client">
|
||||||
|
<mousebind action="Press" button="Left">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Press" button="Middle">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Press" button="Right">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="Icon">
|
||||||
|
<mousebind action="Press" button="Left">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="Unshade"/>
|
||||||
|
<action name="ShowMenu">
|
||||||
|
<menu>client-menu</menu>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Press" button="Right">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="ShowMenu">
|
||||||
|
<menu>client-menu</menu>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="AllDesktops">
|
||||||
|
<mousebind action="Press" button="Left">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="Unshade"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Click" button="Left">
|
||||||
|
<action name="ToggleOmnipresent"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="Shade">
|
||||||
|
<mousebind action="Press" button="Left">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Click" button="Left">
|
||||||
|
<action name="ToggleShade"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="Iconify">
|
||||||
|
<mousebind action="Press" button="Left">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Click" button="Left">
|
||||||
|
<action name="Iconify"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="Maximize">
|
||||||
|
<mousebind action="Press" button="Left">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="Unshade"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Press" button="Middle">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="Unshade"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Press" button="Right">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="Unshade"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Click" button="Left">
|
||||||
|
<action name="ToggleMaximize"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Click" button="Middle">
|
||||||
|
<action name="ToggleMaximize">
|
||||||
|
<direction>vertical</direction>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Click" button="Right">
|
||||||
|
<action name="ToggleMaximize">
|
||||||
|
<direction>horizontal</direction>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="Close">
|
||||||
|
<mousebind action="Press" button="Left">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
<action name="Unshade"/>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Click" button="Left">
|
||||||
|
<action name="Close"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="Desktop">
|
||||||
|
<mousebind action="Click" button="A-Up">
|
||||||
|
<action name="GoToDesktop">
|
||||||
|
<to>previous</to>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Click" button="A-Down">
|
||||||
|
<action name="GoToDesktop">
|
||||||
|
<to>next</to>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Click" button="C-A-Up">
|
||||||
|
<action name="GoToDesktop">
|
||||||
|
<to>previous</to>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Click" button="C-A-Down">
|
||||||
|
<action name="GoToDesktop">
|
||||||
|
<to>next</to>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Press" button="Left">
|
||||||
|
<action name="Focus"/>
|
||||||
|
<action name="Raise"/>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="Root">
|
||||||
|
<!-- Menus -->
|
||||||
|
<mousebind action="Press" button="Middle">
|
||||||
|
<action name="ShowMenu">
|
||||||
|
<menu>client-list-combined-menu</menu>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Press" button="Right">
|
||||||
|
<action name="ShowMenu">
|
||||||
|
<menu>root-menu</menu>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="MoveResize">
|
||||||
|
<mousebind action="Click" button="Up">
|
||||||
|
<action name="GoToDesktop">
|
||||||
|
<to>previous</to>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Click" button="Down">
|
||||||
|
<action name="GoToDesktop">
|
||||||
|
<to>next</to>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Click" button="A-Up">
|
||||||
|
<action name="GoToDesktop">
|
||||||
|
<to>previous</to>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind action="Click" button="A-Down">
|
||||||
|
<action name="GoToDesktop">
|
||||||
|
<to>next</to>
|
||||||
|
</action>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
</mouse>
|
||||||
|
<menu>
|
||||||
|
<!-- You can specify more than one menu file in here and they are all loaded,
|
||||||
|
just don't make menu ids clash or, well, it'll be kind of pointless -->
|
||||||
|
<!-- default menu file (or custom one in $HOME/.config/openbox/) -->
|
||||||
|
<!-- system menu files on Debian systems
|
||||||
|
<file>/var/lib/openbox/debian-menu.xml</file>
|
||||||
|
<file>debian-menu.xml</file> -->
|
||||||
|
<file>menu.xml</file>
|
||||||
|
<hideDelay>200</hideDelay>
|
||||||
|
<!-- if a press-release lasts longer than this setting (in milliseconds), the
|
||||||
|
menu is hidden again -->
|
||||||
|
<middle>yes</middle>
|
||||||
|
<!-- center submenus vertically about the parent entry -->
|
||||||
|
<submenuShowDelay>100</submenuShowDelay>
|
||||||
|
<!-- time to delay before showing a submenu after hovering over the parent
|
||||||
|
entry.
|
||||||
|
if this is a negative value, then the delay is infinite and the
|
||||||
|
submenu will not be shown until it is clicked on -->
|
||||||
|
<submenuHideDelay>400</submenuHideDelay>
|
||||||
|
<!-- time to delay before hiding a submenu when selecting another
|
||||||
|
entry in parent menu
|
||||||
|
if this is a negative value, then the delay is infinite and the
|
||||||
|
submenu will not be hidden until a different submenu is opened -->
|
||||||
|
<applicationIcons>yes</applicationIcons>
|
||||||
|
<!-- controls if icons appear in the client-list-(combined-)menu -->
|
||||||
|
<manageDesktops>yes</manageDesktops>
|
||||||
|
<!-- show the manage desktops section in the client-list-(combined-)menu -->
|
||||||
|
</menu>
|
||||||
|
<applications>
|
||||||
|
<!--
|
||||||
|
# this is an example with comments through out. use these to make your
|
||||||
|
# own rules, but without the comments of course.
|
||||||
|
# you may use one or more of the name/class/role/title/type rules to specify
|
||||||
|
# windows to match
|
||||||
|
|
||||||
|
<application name="the window's _OB_APP_NAME property (see obxprop)"
|
||||||
|
class="the window's _OB_APP_CLASS property (see obxprop)"
|
||||||
|
role="the window's _OB_APP_ROLE property (see obxprop)"
|
||||||
|
title="the window's _OB_APP_TITLE property (see obxprop)"
|
||||||
|
type="the window's _OB_APP_TYPE property (see obxprob)..
|
||||||
|
(if unspecified, then it is 'dialog' for child windows)">
|
||||||
|
# you may set only one of name/class/role/title/type, or you may use more
|
||||||
|
# than one together to restrict your matches.
|
||||||
|
|
||||||
|
# the name, class, role, and title use simple wildcard matching such as those
|
||||||
|
# used by a shell. you can use * to match any characters and ? to match
|
||||||
|
# any single character.
|
||||||
|
|
||||||
|
# the type is one of: normal, dialog, splash, utility, menu, toolbar, dock,
|
||||||
|
# or desktop
|
||||||
|
|
||||||
|
# when multiple rules match a window, they will all be applied, in the
|
||||||
|
# order that they appear in this list
|
||||||
|
|
||||||
|
|
||||||
|
# each rule element can be left out or set to 'default' to specify to not
|
||||||
|
# change that attribute of the window
|
||||||
|
|
||||||
|
<decor>yes</decor>
|
||||||
|
# enable or disable window decorations
|
||||||
|
|
||||||
|
<shade>no</shade>
|
||||||
|
# make the window shaded when it appears, or not
|
||||||
|
|
||||||
|
<position force="no">
|
||||||
|
# the position is only used if both an x and y coordinate are provided
|
||||||
|
# (and not set to 'default')
|
||||||
|
# when force is "yes", then the window will be placed here even if it
|
||||||
|
# says you want it placed elsewhere. this is to override buggy
|
||||||
|
# applications who refuse to behave
|
||||||
|
<x>center</x>
|
||||||
|
# a number like 50, or 'center' to center on screen. use a negative number
|
||||||
|
# to start from the right (or bottom for <y>), ie -50 is 50 pixels from the
|
||||||
|
# right edge (or bottom).
|
||||||
|
<y>200</y>
|
||||||
|
<monitor>1</monitor>
|
||||||
|
# specifies the monitor in a xinerama setup.
|
||||||
|
# 1 is the first head, or 'mouse' for wherever the mouse is
|
||||||
|
</position>
|
||||||
|
|
||||||
|
<focus>yes</focus>
|
||||||
|
# if the window should try be given focus when it appears. if this is set
|
||||||
|
# to yes it doesn't guarantee the window will be given focus. some
|
||||||
|
# restrictions may apply, but Openbox will try to
|
||||||
|
|
||||||
|
<desktop>1</desktop>
|
||||||
|
# 1 is the first desktop, 'all' for all desktops
|
||||||
|
|
||||||
|
<layer>normal</layer>
|
||||||
|
# 'above', 'normal', or 'below'
|
||||||
|
|
||||||
|
<iconic>no</iconic>
|
||||||
|
# make the window iconified when it appears, or not
|
||||||
|
|
||||||
|
<skip_pager>no</skip_pager>
|
||||||
|
# asks to not be shown in pagers
|
||||||
|
|
||||||
|
<skip_taskbar>no</skip_taskbar>
|
||||||
|
# asks to not be shown in taskbars. window cycling actions will also
|
||||||
|
# skip past such windows
|
||||||
|
|
||||||
|
<fullscreen>yes</fullscreen>
|
||||||
|
# make the window in fullscreen mode when it appears
|
||||||
|
|
||||||
|
<maximized>true</maximized>
|
||||||
|
# 'Horizontal', 'Vertical' or boolean (yes/no)
|
||||||
|
</application>
|
||||||
|
|
||||||
|
# end of the example
|
||||||
|
-->
|
||||||
|
<!--
|
||||||
|
<application class="Gimp" name="gimp" role="gimp-toolbox" type="utility">
|
||||||
|
<maximized>vertical</maximized>
|
||||||
|
</application>
|
||||||
|
<application class="Gimp" name="gimp" role="gimp-dock" type="utility">
|
||||||
|
<maximized>vertical</maximized>
|
||||||
|
</application>
|
||||||
|
<application class="Gimp" name="gimp" role="gimp-image-window" type="normal">
|
||||||
|
<position force="no">
|
||||||
|
<x>center</x>
|
||||||
|
<y>center</y>
|
||||||
|
</position>
|
||||||
|
</application>
|
||||||
|
|
||||||
|
<application class="Gimp" name="gimp-2.8" role="gimp-toolbox" type="utility">
|
||||||
|
<maximized>vertical</maximized>
|
||||||
|
</application>
|
||||||
|
<application class="Gimp" name="gimp-2.8" role="gimp-dock" type="utility">
|
||||||
|
<maximized>vertical</maximized>
|
||||||
|
</application>
|
||||||
|
<application class="Gimp" name="gimp-2.8" role="gimp-image-window" type="normal">
|
||||||
|
<position force="no">
|
||||||
|
<x>center</x>
|
||||||
|
<y>center</y>
|
||||||
|
</position>
|
||||||
|
</application>
|
||||||
|
-->
|
||||||
|
</applications>
|
||||||
|
</openbox_config>
|
4
openbox/.themes/Aesthetic/openbox-3/bullet.xbm
Executable file
4
openbox/.themes/Aesthetic/openbox-3/bullet.xbm
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#define bullet_width 6
|
||||||
|
#define bullet_height 6
|
||||||
|
static unsigned char bullet_bits[] = {
|
||||||
|
0x06, 0x0c, 0x18, 0x18, 0x0c, 0x06 };
|
4
openbox/.themes/Aesthetic/openbox-3/close.xbm
Normal file
4
openbox/.themes/Aesthetic/openbox-3/close.xbm
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
#define close_width 6
|
||||||
|
#define close_height 6
|
||||||
|
static unsigned char close_bits[] = {
|
||||||
|
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f };
|
4
openbox/.themes/Aesthetic/openbox-3/desk.xbm
Executable file
4
openbox/.themes/Aesthetic/openbox-3/desk.xbm
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#define desk_toggled_width 8
|
||||||
|
#define desk_toggled_height 8
|
||||||
|
static unsigned char desk_toggled_bits[] = {
|
||||||
|
0xe7, 0xe7, 0xe7, 0x00, 0x00, 0xe7, 0xe7, 0xe7 };
|
4
openbox/.themes/Aesthetic/openbox-3/desk_toggled.xbm
Executable file
4
openbox/.themes/Aesthetic/openbox-3/desk_toggled.xbm
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#define desk_width 8
|
||||||
|
#define desk_height 8
|
||||||
|
static unsigned char desk_bits[] = {
|
||||||
|
0x04, 0x0e, 0x3f, 0x1e, 0x1c, 0x24, 0x40, 0x80 };
|
4
openbox/.themes/Aesthetic/openbox-3/iconify.xbm
Normal file
4
openbox/.themes/Aesthetic/openbox-3/iconify.xbm
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
#define iconify_width 6
|
||||||
|
#define iconify_height 6
|
||||||
|
static unsigned char iconify_bits[] = {
|
||||||
|
0x00, 0x00, 0x00, 0x1e, 0x00, 0x00 };
|
4
openbox/.themes/Aesthetic/openbox-3/max.xbm
Normal file
4
openbox/.themes/Aesthetic/openbox-3/max.xbm
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
#define max_width 6
|
||||||
|
#define max_height 6
|
||||||
|
static unsigned char max_bits[] = {
|
||||||
|
0x3f, 0x21, 0x21, 0x21, 0x21, 0x3f };
|
4
openbox/.themes/Aesthetic/openbox-3/max_toggled.xbm
Executable file
4
openbox/.themes/Aesthetic/openbox-3/max_toggled.xbm
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#define max_toggled_width 6
|
||||||
|
#define max_toggled_height 6
|
||||||
|
static unsigned char max_toggled_bits[] = {
|
||||||
|
0x28, 0x18, 0x38, 0x07, 0x06, 0x05 };
|
4
openbox/.themes/Aesthetic/openbox-3/shade.xbm
Executable file
4
openbox/.themes/Aesthetic/openbox-3/shade.xbm
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#define shade_width 8
|
||||||
|
#define shade_height 8
|
||||||
|
static unsigned char shade_bits[] = {
|
||||||
|
0x18, 0x3c, 0x7e, 0xff, 0xdb, 0x18, 0x18, 0x18 };
|
4
openbox/.themes/Aesthetic/openbox-3/shade_toggled.xbm
Executable file
4
openbox/.themes/Aesthetic/openbox-3/shade_toggled.xbm
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#define shade_toggled_width 8
|
||||||
|
#define shade_toggled_height 8
|
||||||
|
static unsigned char shade_toggled_bits[] = {
|
||||||
|
0x18, 0x18, 0x18, 0xdb, 0xff, 0x7e, 0x3c, 0x18 };
|
127
openbox/.themes/Aesthetic/openbox-3/themerc
Executable file
127
openbox/.themes/Aesthetic/openbox-3/themerc
Executable file
@ -0,0 +1,127 @@
|
|||||||
|
# Menu
|
||||||
|
menu.border.width: 16
|
||||||
|
menu.overlap.x: -20
|
||||||
|
menu.overlap.y: 8
|
||||||
|
|
||||||
|
menu.border.color: #181A28
|
||||||
|
|
||||||
|
menu.title.bg: flat solid
|
||||||
|
menu.title.bg.color: #181A28
|
||||||
|
menu.title.text.color: #af4c6d
|
||||||
|
menu.separator.color: #181A28
|
||||||
|
menu.items.bg: flat solid
|
||||||
|
menu.items.bg.color: #181A28
|
||||||
|
|
||||||
|
menu.items.text.color: #ffffff
|
||||||
|
menu.items.disabled.text.color: #181A28
|
||||||
|
|
||||||
|
menu.items.active.bg: flat solid
|
||||||
|
menu.items.active.bg.color: #181A28
|
||||||
|
menu.items.active.text.color: #af4c6d
|
||||||
|
|
||||||
|
# Active window
|
||||||
|
window.active.border.color: #181A28
|
||||||
|
|
||||||
|
window.active.title.bg: flat solid
|
||||||
|
window.active.title.bg.color: #181A28
|
||||||
|
window.active.title.separator.color: #181A28
|
||||||
|
window.active.text.justify: left
|
||||||
|
|
||||||
|
window.active.label.bg: parentrelative
|
||||||
|
window.active.label.text.color: #ffffff
|
||||||
|
|
||||||
|
window.active.handle.bg: flat solid
|
||||||
|
window.active.handle.bg.color: #181A28
|
||||||
|
|
||||||
|
window.active.grip.bg: flat solid
|
||||||
|
window.active.grip.bg.color: #181A28
|
||||||
|
|
||||||
|
window.active.button.unpressed.bg: flat solid
|
||||||
|
window.active.button.unpressed.bg.color: #181A28
|
||||||
|
window.active.button.unpressed.image.color: #ffffff
|
||||||
|
|
||||||
|
window.active.button.pressed.bg: flat solid
|
||||||
|
window.active.button.pressed.bg.color: #181A28
|
||||||
|
window.active.button.pressed.image.color: #ffffff
|
||||||
|
|
||||||
|
window.active.button.disabled.bg: flat solid
|
||||||
|
window.active.button.disabled.bg.color: #181A28
|
||||||
|
window.active.button.disabled.image.color: #dcdcdc
|
||||||
|
|
||||||
|
|
||||||
|
# Inactive window
|
||||||
|
window.inactive.border.color: #181A28
|
||||||
|
|
||||||
|
window.inactive.title.bg: flat solid
|
||||||
|
window.inactive.title.bg.color: #181A28
|
||||||
|
window.inactive.title.separator.color: #181A28
|
||||||
|
window.inactive.text.justify: center
|
||||||
|
|
||||||
|
window.inactive.label.bg: parentrelative
|
||||||
|
window.inactive.label.text.color: #ffffff
|
||||||
|
|
||||||
|
window.inactive.handle.bg: flat solid
|
||||||
|
window.inactive.handle.bg.color: #181A28
|
||||||
|
|
||||||
|
window.inactive.grip.bg: flat solid
|
||||||
|
window.inactive.grip.bg.color: #181A28
|
||||||
|
|
||||||
|
window.inactive.button.unpressed.bg: flat solid
|
||||||
|
window.inactive.button.unpressed.bg.color: #181A28
|
||||||
|
window.inactive.button.unpressed.image.color: #ffffff
|
||||||
|
|
||||||
|
window.inactive.button.pressed.bg: flat solid
|
||||||
|
window.inactive.button.pressed.bg.color: #181A28
|
||||||
|
window.inactive.button.pressed.image.color: #ffffff
|
||||||
|
|
||||||
|
window.inactive.button.disabled.bg: flat solid
|
||||||
|
window.inactive.button.disabled.bg.color: #181A28
|
||||||
|
window.inactive.button.disabled.image.color: #181A28
|
||||||
|
|
||||||
|
|
||||||
|
# OSD
|
||||||
|
osd.border.width: 1
|
||||||
|
osd.border.color: #181A28
|
||||||
|
|
||||||
|
osd.bg: flat solid
|
||||||
|
osd.bg.color: #fff
|
||||||
|
|
||||||
|
osd.label.bg: flat solid
|
||||||
|
osd.label.bg.color: #dedede
|
||||||
|
osd.label.text.color: #555555
|
||||||
|
|
||||||
|
osd.hilight.bg: flat solid
|
||||||
|
osd.hilight.bg.color: #af4c6d
|
||||||
|
|
||||||
|
osd.unhilight.bg: flat solid
|
||||||
|
osd.unhilight.bg.color: #888888
|
||||||
|
|
||||||
|
osd.button.unpressed.bg: flat border
|
||||||
|
osd.button.unpressed.bg.color: #f0f0f0
|
||||||
|
osd.button.unpressed.*.border.color: #b2b2b2
|
||||||
|
|
||||||
|
osd.button.pressed.bg: flat border
|
||||||
|
osd.button.pressed.bg.color: #d3d3d3
|
||||||
|
osd.button.pressed.*.border.color: #b2b2b2
|
||||||
|
|
||||||
|
osd.button.focused.bg: flat solid border
|
||||||
|
osd.button.focused.bg.color: #f0f0f0
|
||||||
|
osd.button.focused.*.border.color: #9c9c9c
|
||||||
|
|
||||||
|
osd.button.focused.box.color: #af4c6d
|
||||||
|
|
||||||
|
|
||||||
|
# Fonts
|
||||||
|
window.active.label.text.font:shadow=n
|
||||||
|
window.inactive.label.text.font:shadow=n
|
||||||
|
menu.items.font:shadow=n
|
||||||
|
menu.title.text.font:shadow=n
|
||||||
|
|
||||||
|
|
||||||
|
# Everything else
|
||||||
|
border.width: 0
|
||||||
|
#padding.width: 10
|
||||||
|
#padding.height: 5
|
||||||
|
window.handle.width: 0
|
||||||
|
window.client.padding.width: 0
|
||||||
|
window.label.text.justify: center
|
21
openbox/.themes/build.xml
Normal file
21
openbox/.themes/build.xml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<!--
|
||||||
|
|
||||||
|
This file is part of GtkSourceView
|
||||||
|
|
||||||
|
Copyright (C) 2014 Joe Collins <joe@draw.academy>
|
||||||
|
|
||||||
|
GtkSourceView is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2.1 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
GtkSourceView is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public
|
||||||
|
License along with this library; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
--><style-scheme id="build" _name="Build" version="1.0"><author>Joe Collins</author><author>Vale Collins</author><_description>Emphasis on readability.</_description><!-- Build Palette --><color name="cardinal" value="#be2e19"/><color name="grass" value="#5C944A"/><color name="nautica" value="#3B637A"/><color name="fuschia" value="#B858A0"/><color name="base" value="#444"/><color name="sand" value="#F7E2C6"/><color name="muslin" value="#f8f4ed"/><color name="cobalt" value="#373ab0"/><color name="latte" value="#DEC5A6"/><color name="brick" value="#AD5F53"/><color name="reef" value="#4C9EA8"/><color name="charcoal" value="#38312f"/><color name="mesa" value="#b5684e"/><color name="heather" value="#D1829C"/><color name="concrete" value="#AB9E8E"/><color name="plum" value="#8A536A"/><!-- Global Settings --><style name="text" foreground="base" background="muslin"/><style name="selection" foreground="base" background="latte"/><style name="cursor" foreground="charcoal"/><style name="current-line" background="sand"/><style name="line-numbers" foreground="mesa" background="charcoal"/><style name="draw-spaces" foreground="base"/><!-- Bracket Matching --><style name="bracket-match" foreground="base" background="sand" bold="true"/><style name="bracket-mismatch" foreground="cardinal" bold="true"/><!-- Right Margin --><style name="right-margin" foreground="base" background="sand"/><!-- Search Matching --><style name="search-match" foreground="plum" background="latte"/><!-- Comments --><style name="def:comment" foreground="concrete"/><style name="def:shebang" foreground="reef" bold="true"/><style name="def:doc-comment-element" italic="true"/><!-- Constants --><style name="def:constant" foreground="plum"/><style name="def:string" foreground="grass"/><style name="def:special-char" foreground="heather"/><style name="def:special-constant" foreground="heather"/><style name="def:floating-point" foreground="heather"/><!-- Identifiers --><style name="def:identifier" foreground="brick"/><!-- Statements --><style name="def:statement" foreground="nautica"/><!-- Types --><style name="def:type" foreground="reef"/><!-- Others --><style name="def:preprocessor" foreground="fuschia"/><style name="def:error" foreground="cardinal" bold="true"/><style name="def:warning" foreground="brick"/><style name="def:note" background="heather" bold="true"/><style name="def:underlined" italic="true" underline="true"/><!-- Language specific --><style name="diff:added-line" foreground="grass"/><style name="diff:removed-line" foreground="brick"/><style name="diff:changed-line" foreground="plum"/><style name="diff:diff-file" foreground="nautica"/><style name="diff:location" foreground="fuschia"/><style name="diff:special-case" foreground="reef"/><style name="latex:display-math" foreground="fuschia"/><style name="latex:command" foreground="nautica" bold="true"/><style name="latex:include" use-style="def:preprocessor"/></style-scheme>
|
813
pandoc/.pandoc/templates/eisvogel.latex
Normal file
813
pandoc/.pandoc/templates/eisvogel.latex
Normal file
@ -0,0 +1,813 @@
|
|||||||
|
%%
|
||||||
|
% Copyright (c) 2018, Pascal Wagler;
|
||||||
|
% Copyright (c) 2014--2018, John MacFarlane
|
||||||
|
%
|
||||||
|
% All rights reserved.
|
||||||
|
%
|
||||||
|
% Redistribution and use in source and binary forms, with or without
|
||||||
|
% modification, are permitted provided that the following conditions
|
||||||
|
% are met:
|
||||||
|
%
|
||||||
|
% - Redistributions of source code must retain the above copyright
|
||||||
|
% notice, this list of conditions and the following disclaimer.
|
||||||
|
%
|
||||||
|
% - Redistributions in binary form must reproduce the above copyright
|
||||||
|
% notice, this list of conditions and the following disclaimer in the
|
||||||
|
% documentation and/or other materials provided with the distribution.
|
||||||
|
%
|
||||||
|
% - Neither the name of John MacFarlane nor the names of other
|
||||||
|
% contributors may be used to endorse or promote products derived
|
||||||
|
% from this software without specific prior written permission.
|
||||||
|
%
|
||||||
|
% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
% "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
% LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
% FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
% COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
% INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
% BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
% LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
% CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
% LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
% ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
% POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
%%
|
||||||
|
|
||||||
|
%%
|
||||||
|
% For usage information and examples visit the GitHub page of this template:
|
||||||
|
% https://github.com/Wandmalfarbe/pandoc-latex-template
|
||||||
|
%%
|
||||||
|
|
||||||
|
\PassOptionsToPackage{unicode=true}{hyperref} % options for packages loaded elsewhere
|
||||||
|
\PassOptionsToPackage{hyphens}{url}
|
||||||
|
\PassOptionsToPackage{dvipsnames,svgnames*,table}{xcolor}
|
||||||
|
$if(dir)$$if(latex-dir-rtl)$
|
||||||
|
\PassOptionsToPackage{RTLdocument}{bidi}
|
||||||
|
$endif$$endif$%
|
||||||
|
\documentclass[$if(fontsize)$$fontsize$,$endif$$if(lang)$$babel-lang$,$endif$$if(papersize)$$papersize$paper,$else$a4paper,$endif$$if(beamer)$ignorenonframetext,$if(handout)$handout,$endif$$if(aspectratio)$aspectratio=$aspectratio$,$endif$$endif$$for(classoption)$$classoption$$sep$,$endfor$,tablecaptionabove]{$if(book)$scrbook$else$scrartcl$endif$}
|
||||||
|
$if(beamer)$
|
||||||
|
$if(background-image)$
|
||||||
|
\usebackgroundtemplate{%
|
||||||
|
\includegraphics[width=\paperwidth]{$background-image$}%
|
||||||
|
}
|
||||||
|
$endif$
|
||||||
|
\usepackage{pgfpages}
|
||||||
|
\setbeamertemplate{caption}[numbered]
|
||||||
|
\setbeamertemplate{caption label separator}{: }
|
||||||
|
\setbeamercolor{caption name}{fg=normal text.fg}
|
||||||
|
\beamertemplatenavigationsymbols$if(navigation)$$navigation$$else$empty$endif$
|
||||||
|
$for(beameroption)$
|
||||||
|
\setbeameroption{$beameroption$}
|
||||||
|
$endfor$
|
||||||
|
% Prevent slide breaks in the middle of a paragraph:
|
||||||
|
\widowpenalties 1 10000
|
||||||
|
\raggedbottom
|
||||||
|
$if(section-titles)$
|
||||||
|
\setbeamertemplate{part page}{
|
||||||
|
\centering
|
||||||
|
\begin{beamercolorbox}[sep=16pt,center]{part title}
|
||||||
|
\usebeamerfont{part title}\insertpart\par
|
||||||
|
\end{beamercolorbox}
|
||||||
|
}
|
||||||
|
\setbeamertemplate{section page}{
|
||||||
|
\centering
|
||||||
|
\begin{beamercolorbox}[sep=12pt,center]{part title}
|
||||||
|
\usebeamerfont{section title}\insertsection\par
|
||||||
|
\end{beamercolorbox}
|
||||||
|
}
|
||||||
|
\setbeamertemplate{subsection page}{
|
||||||
|
\centering
|
||||||
|
\begin{beamercolorbox}[sep=8pt,center]{part title}
|
||||||
|
\usebeamerfont{subsection title}\insertsubsection\par
|
||||||
|
\end{beamercolorbox}
|
||||||
|
}
|
||||||
|
\AtBeginPart{
|
||||||
|
\frame{\partpage}
|
||||||
|
}
|
||||||
|
\AtBeginSection{
|
||||||
|
\ifbibliography
|
||||||
|
\else
|
||||||
|
\frame{\sectionpage}
|
||||||
|
\fi
|
||||||
|
}
|
||||||
|
\AtBeginSubsection{
|
||||||
|
\frame{\subsectionpage}
|
||||||
|
}
|
||||||
|
$endif$
|
||||||
|
$endif$
|
||||||
|
$if(beamerarticle)$
|
||||||
|
\usepackage{beamerarticle} % needs to be loaded first
|
||||||
|
$endif$
|
||||||
|
$if(fontfamily)$
|
||||||
|
\usepackage[$for(fontfamilyoptions)$$fontfamilyoptions$$sep$,$endfor$]{$fontfamily$}
|
||||||
|
$else$
|
||||||
|
\usepackage{lmodern}
|
||||||
|
$endif$
|
||||||
|
$if(linestretch)$
|
||||||
|
\usepackage{setspace}
|
||||||
|
\setstretch{$linestretch$}
|
||||||
|
$else$
|
||||||
|
\usepackage{setspace}
|
||||||
|
\setstretch{1.2}
|
||||||
|
$endif$
|
||||||
|
\usepackage{amssymb,amsmath}
|
||||||
|
\usepackage{ifxetex,ifluatex}
|
||||||
|
\usepackage{fixltx2e} % provides \textsubscript
|
||||||
|
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
|
||||||
|
\usepackage[$if(fontenc)$$fontenc$$else$T1$endif$]{fontenc}
|
||||||
|
\usepackage[utf8]{inputenc}
|
||||||
|
\usepackage{textcomp} % provides euro and other symbols
|
||||||
|
\else % if luatex or xelatex
|
||||||
|
$if(mathspec)$
|
||||||
|
\ifxetex
|
||||||
|
\usepackage{mathspec}
|
||||||
|
\else
|
||||||
|
\usepackage{unicode-math}
|
||||||
|
\fi
|
||||||
|
$else$
|
||||||
|
\usepackage{unicode-math}
|
||||||
|
$endif$
|
||||||
|
\defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase}
|
||||||
|
$for(fontfamilies)$
|
||||||
|
\newfontfamily{$fontfamilies.name$}[$fontfamilies.options$]{$fontfamilies.font$}
|
||||||
|
$endfor$
|
||||||
|
$if(mainfont)$
|
||||||
|
\setmainfont[$for(mainfontoptions)$$mainfontoptions$$sep$,$endfor$]{$mainfont$}
|
||||||
|
$endif$
|
||||||
|
$if(romanfont)$
|
||||||
|
\setromanfont[$for(romanfontoptions)$$romanfontoptions$$sep$,$endfor$]{$romanfont$}
|
||||||
|
$endif$
|
||||||
|
$if(sansfont)$
|
||||||
|
\setsansfont[$for(sansfontoptions)$$sansfontoptions$$sep$,$endfor$]{$sansfont$}
|
||||||
|
$endif$
|
||||||
|
$if(monofont)$
|
||||||
|
\setmonofont[Mapping=tex-ansi$if(monofontoptions)$,$for(monofontoptions)$$monofontoptions$$sep$,$endfor$$endif$]{$monofont$}
|
||||||
|
$endif$
|
||||||
|
$if(mathfont)$
|
||||||
|
$if(mathspec)$
|
||||||
|
\ifxetex
|
||||||
|
\setmathfont(Digits,Latin,Greek)[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$}
|
||||||
|
\else
|
||||||
|
\setmathfont[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$}
|
||||||
|
\fi
|
||||||
|
$else$
|
||||||
|
\setmathfont[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$}
|
||||||
|
$endif$
|
||||||
|
$endif$
|
||||||
|
$if(CJKmainfont)$
|
||||||
|
\ifxetex
|
||||||
|
\usepackage{xeCJK}
|
||||||
|
\setCJKmainfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$}
|
||||||
|
\fi
|
||||||
|
$endif$
|
||||||
|
$if(luatexjapresetoptions)$
|
||||||
|
\ifluatex
|
||||||
|
\usepackage[$for(luatexjapresetoptions)$$luatexjapresetoptions$$sep$,$endfor$]{luatexja-preset}
|
||||||
|
\fi
|
||||||
|
$endif$
|
||||||
|
$if(CJKmainfont)$
|
||||||
|
\ifluatex
|
||||||
|
\usepackage[$for(luatexjafontspecoptions)$$luatexjafontspecoptions$$sep$,$endfor$]{luatexja-fontspec}
|
||||||
|
\setmainjfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$}
|
||||||
|
\fi
|
||||||
|
$endif$
|
||||||
|
\fi
|
||||||
|
$if(beamer)$
|
||||||
|
$if(theme)$
|
||||||
|
\usetheme[$for(themeoptions)$$themeoptions$$sep$,$endfor$]{$theme$}
|
||||||
|
$endif$
|
||||||
|
$if(colortheme)$
|
||||||
|
\usecolortheme{$colortheme$}
|
||||||
|
$endif$
|
||||||
|
$if(fonttheme)$
|
||||||
|
\usefonttheme{$fonttheme$}
|
||||||
|
$endif$
|
||||||
|
$if(mainfont)$
|
||||||
|
\usefonttheme{serif} % use mainfont rather than sansfont for slide text
|
||||||
|
$endif$
|
||||||
|
$if(innertheme)$
|
||||||
|
\useinnertheme{$innertheme$}
|
||||||
|
$endif$
|
||||||
|
$if(outertheme)$
|
||||||
|
\useoutertheme{$outertheme$}
|
||||||
|
$endif$
|
||||||
|
$endif$
|
||||||
|
% use upquote if available, for straight quotes in verbatim environments
|
||||||
|
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
|
||||||
|
% use microtype if available
|
||||||
|
\IfFileExists{microtype.sty}{%
|
||||||
|
\usepackage[$for(microtypeoptions)$$microtypeoptions$$sep$,$endfor$]{microtype}
|
||||||
|
\UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
|
||||||
|
}{}
|
||||||
|
$if(indent)$
|
||||||
|
$else$
|
||||||
|
\IfFileExists{parskip.sty}{%
|
||||||
|
\usepackage{parskip}
|
||||||
|
}{% else
|
||||||
|
\setlength{\parindent}{0pt}
|
||||||
|
\setlength{\parskip}{6pt plus 2pt minus 1pt}
|
||||||
|
}
|
||||||
|
$endif$
|
||||||
|
$if(verbatim-in-note)$
|
||||||
|
\usepackage{fancyvrb}
|
||||||
|
$endif$
|
||||||
|
$if(colorlinks)$
|
||||||
|
\usepackage{xcolor}
|
||||||
|
\definecolor{default-linkcolor}{HTML}{A50000}
|
||||||
|
\definecolor{default-filecolor}{HTML}{A50000}
|
||||||
|
\definecolor{default-citecolor}{HTML}{4077C0}
|
||||||
|
\definecolor{default-urlcolor}{HTML}{4077C0}
|
||||||
|
$endif$
|
||||||
|
\usepackage{hyperref}
|
||||||
|
\hypersetup{
|
||||||
|
$if(title-meta)$
|
||||||
|
pdftitle={$title-meta$},
|
||||||
|
$endif$
|
||||||
|
$if(author-meta)$
|
||||||
|
pdfauthor={$author-meta$},
|
||||||
|
$endif$
|
||||||
|
$if(subject)$
|
||||||
|
pdfsubject={$subject$},
|
||||||
|
$endif$
|
||||||
|
$if(keywords)$
|
||||||
|
pdfkeywords={$for(keywords)$$keywords$$sep$, $endfor$},
|
||||||
|
$endif$
|
||||||
|
$if(colorlinks)$
|
||||||
|
colorlinks=true,
|
||||||
|
linkcolor=$if(linkcolor)$$linkcolor$$else$default-linkcolor$endif$,
|
||||||
|
filecolor=$if(filecolor)$$filecolor$$else$default-filecolor$endif$,
|
||||||
|
citecolor=$if(citecolor)$$citecolor$$else$default-citecolor$endif$,
|
||||||
|
urlcolor=$if(urlcolor)$$urlcolor$$else$default-urlcolor$endif$,
|
||||||
|
$else$
|
||||||
|
pdfborder={0 0 0},
|
||||||
|
$endif$
|
||||||
|
breaklinks=true}
|
||||||
|
\urlstyle{same} % don't use monospace font for urls
|
||||||
|
$if(verbatim-in-note)$
|
||||||
|
\VerbatimFootnotes % allows verbatim text in footnotes
|
||||||
|
$endif$
|
||||||
|
$if(geometry)$
|
||||||
|
\usepackage[margin=2.5cm,includehead=true,includefoot=true,centering,$for(geometry)$$geometry$$sep$,$endfor$]{geometry}
|
||||||
|
$else$
|
||||||
|
\usepackage[margin=2.5cm,includehead=true,includefoot=true,centering]{geometry}
|
||||||
|
$endif$
|
||||||
|
$if(logo)$
|
||||||
|
\usepackage[export]{adjustbox}
|
||||||
|
\usepackage{graphicx}
|
||||||
|
$endif$
|
||||||
|
$if(beamer)$
|
||||||
|
\newif\ifbibliography
|
||||||
|
$endif$
|
||||||
|
$if(listings)$
|
||||||
|
\usepackage{listings}
|
||||||
|
\newcommand{\passthrough}[1]{#1}
|
||||||
|
$endif$
|
||||||
|
$if(listings-no-page-break)$
|
||||||
|
\usepackage{etoolbox}
|
||||||
|
\BeforeBeginEnvironment{lstlisting}{\par\noindent\begin{minipage}{\linewidth}}
|
||||||
|
\AfterEndEnvironment{lstlisting}{\end{minipage}\par\addvspace{\topskip}}
|
||||||
|
$endif$
|
||||||
|
$if(lhs)$
|
||||||
|
\lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{}
|
||||||
|
$endif$
|
||||||
|
$if(highlighting-macros)$
|
||||||
|
$highlighting-macros$
|
||||||
|
$endif$
|
||||||
|
$if(tables)$
|
||||||
|
\usepackage{longtable,booktabs}
|
||||||
|
$if(beamer)$
|
||||||
|
\usepackage{caption}
|
||||||
|
% These lines are needed to make table captions work with longtable:
|
||||||
|
\makeatletter
|
||||||
|
\def\fnum@table{\tablename~\thetable}
|
||||||
|
\makeatother
|
||||||
|
$else$
|
||||||
|
% Fix footnotes in tables (requires footnote package)
|
||||||
|
\IfFileExists{footnote.sty}{\usepackage{footnote}\makesavenoteenv{longtable}}{}
|
||||||
|
$endif$
|
||||||
|
$endif$
|
||||||
|
$if(graphics)$
|
||||||
|
\usepackage{graphicx,grffile}
|
||||||
|
\makeatletter
|
||||||
|
\def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi}
|
||||||
|
\def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi}
|
||||||
|
\makeatother
|
||||||
|
% Scale images if necessary, so that they will not overflow the page
|
||||||
|
% margins by default, and it is still possible to overwrite the defaults
|
||||||
|
% using explicit options in \includegraphics[width, height, ...]{}
|
||||||
|
\setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio}
|
||||||
|
$endif$
|
||||||
|
$if(links-as-notes)$
|
||||||
|
% Make links footnotes instead of hotlinks:
|
||||||
|
\DeclareRobustCommand{\href}[2]{#2\footnote{\url{#1}}}
|
||||||
|
$endif$
|
||||||
|
$if(strikeout)$
|
||||||
|
\usepackage[normalem]{ulem}
|
||||||
|
% avoid problems with \sout in headers with hyperref:
|
||||||
|
\pdfstringdefDisableCommands{\renewcommand{\sout}{}}
|
||||||
|
$endif$
|
||||||
|
\setlength{\emergencystretch}{3em} % prevent overfull lines
|
||||||
|
\providecommand{\tightlist}{%
|
||||||
|
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
|
||||||
|
$if(numbersections)$
|
||||||
|
\setcounter{secnumdepth}{$if(secnumdepth)$$secnumdepth$$else$5$endif$}
|
||||||
|
$else$
|
||||||
|
\setcounter{secnumdepth}{0}
|
||||||
|
$endif$
|
||||||
|
$if(beamer)$
|
||||||
|
$else$
|
||||||
|
$if(subparagraph)$
|
||||||
|
$else$
|
||||||
|
% Redefines (sub)paragraphs to behave more like sections
|
||||||
|
\ifx\paragraph\undefined\else
|
||||||
|
\let\oldparagraph\paragraph
|
||||||
|
\renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}}
|
||||||
|
\fi
|
||||||
|
\ifx\subparagraph\undefined\else
|
||||||
|
\let\oldsubparagraph\subparagraph
|
||||||
|
\renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}}
|
||||||
|
\fi
|
||||||
|
$endif$
|
||||||
|
$endif$
|
||||||
|
$if(pagestyle)$
|
||||||
|
\pagestyle{$pagestyle$}
|
||||||
|
$endif$
|
||||||
|
|
||||||
|
% Make use of float-package and set default placement for figures to H
|
||||||
|
\usepackage{float}
|
||||||
|
\floatplacement{figure}{H}
|
||||||
|
|
||||||
|
$for(header-includes)$
|
||||||
|
$header-includes$
|
||||||
|
$endfor$
|
||||||
|
$if(lang)$
|
||||||
|
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
|
||||||
|
\usepackage[shorthands=off,$for(babel-otherlangs)$$babel-otherlangs$,$endfor$main=$babel-lang$]{babel}
|
||||||
|
$if(babel-newcommands)$
|
||||||
|
$babel-newcommands$
|
||||||
|
$endif$
|
||||||
|
\else
|
||||||
|
$if(mainfont)$
|
||||||
|
$else$
|
||||||
|
% See issue https://github.com/reutenauer/polyglossia/issues/127
|
||||||
|
\renewcommand*\familydefault{\sfdefault}
|
||||||
|
$endif$
|
||||||
|
% load polyglossia as late as possible as it *could* call bidi if RTL lang (e.g. Hebrew or Arabic)
|
||||||
|
\usepackage{polyglossia}
|
||||||
|
\setmainlanguage[$polyglossia-lang.options$]{$polyglossia-lang.name$}
|
||||||
|
$for(polyglossia-otherlangs)$
|
||||||
|
\setotherlanguage[$polyglossia-otherlangs.options$]{$polyglossia-otherlangs.name$}
|
||||||
|
$endfor$
|
||||||
|
\fi
|
||||||
|
$endif$
|
||||||
|
$if(dir)$
|
||||||
|
\ifxetex
|
||||||
|
% load bidi as late as possible as it modifies e.g. graphicx
|
||||||
|
\usepackage{bidi}
|
||||||
|
\fi
|
||||||
|
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
|
||||||
|
\TeXXeTstate=1
|
||||||
|
\newcommand{\RL}[1]{\beginR #1\endR}
|
||||||
|
\newcommand{\LR}[1]{\beginL #1\endL}
|
||||||
|
\newenvironment{RTL}{\beginR}{\endR}
|
||||||
|
\newenvironment{LTR}{\beginL}{\endL}
|
||||||
|
\fi
|
||||||
|
$endif$
|
||||||
|
$if(natbib)$
|
||||||
|
\usepackage[$natbiboptions$]{natbib}
|
||||||
|
\bibliographystyle{$if(biblio-style)$$biblio-style$$else$plainnat$endif$}
|
||||||
|
$endif$
|
||||||
|
$if(biblatex)$
|
||||||
|
\usepackage[$if(biblio-style)$style=$biblio-style$,$endif$$for(biblatexoptions)$$biblatexoptions$$sep$,$endfor$]{biblatex}
|
||||||
|
$for(bibliography)$
|
||||||
|
\addbibresource{$bibliography$}
|
||||||
|
$endfor$
|
||||||
|
$endif$
|
||||||
|
|
||||||
|
$if(title)$
|
||||||
|
\title{$title$$if(thanks)$\thanks{$thanks$}$endif$}
|
||||||
|
$endif$
|
||||||
|
$if(subtitle)$
|
||||||
|
\providecommand{\subtitle}[1]{}
|
||||||
|
\subtitle{$subtitle$}
|
||||||
|
$endif$
|
||||||
|
$if(author)$
|
||||||
|
\author{$for(author)$$author$$sep$ \and $endfor$}
|
||||||
|
$endif$
|
||||||
|
$if(institute)$
|
||||||
|
\providecommand{\institute}[1]{}
|
||||||
|
\institute{$for(institute)$$institute$$sep$ \and $endfor$}
|
||||||
|
$endif$
|
||||||
|
\date{$date$}
|
||||||
|
$if(beamer)$
|
||||||
|
$if(titlegraphic)$
|
||||||
|
\titlegraphic{\includegraphics{$titlegraphic$}}
|
||||||
|
$endif$
|
||||||
|
$if(logo)$
|
||||||
|
\logo{\includegraphics{$logo$}}
|
||||||
|
$endif$
|
||||||
|
$endif$
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%%
|
||||||
|
%% added
|
||||||
|
%%
|
||||||
|
|
||||||
|
%
|
||||||
|
% No language specified? take American English.
|
||||||
|
%
|
||||||
|
$if(lang)$$else$
|
||||||
|
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
|
||||||
|
\usepackage[shorthands=off,$for(babel-otherlangs)$$babel-otherlangs$,$endfor$main=english]{babel}
|
||||||
|
$if(babel-newcommands)$
|
||||||
|
$babel-newcommands$
|
||||||
|
$endif$
|
||||||
|
\else
|
||||||
|
$if(mainfont)$
|
||||||
|
$else$
|
||||||
|
% See issue https://github.com/reutenauer/polyglossia/issues/127
|
||||||
|
\renewcommand*\familydefault{\sfdefault}
|
||||||
|
$endif$
|
||||||
|
% load polyglossia as late as possible as it *could* call bidi if RTL lang (e.g. Hebrew or Arabic)
|
||||||
|
\usepackage{polyglossia}
|
||||||
|
\setmainlanguage[]{english}
|
||||||
|
$for(polyglossia-otherlangs)$
|
||||||
|
\setotherlanguage[$polyglossia-otherlangs.options$]{$polyglossia-otherlangs.name$}
|
||||||
|
$endfor$
|
||||||
|
\fi
|
||||||
|
$endif$
|
||||||
|
|
||||||
|
%
|
||||||
|
% colors
|
||||||
|
%
|
||||||
|
\usepackage[]{xcolor}
|
||||||
|
|
||||||
|
%
|
||||||
|
% listing colors
|
||||||
|
%
|
||||||
|
\definecolor{listing-background}{HTML}{F7F7F7}
|
||||||
|
\definecolor{listing-rule}{HTML}{B3B2B3}
|
||||||
|
\definecolor{listing-numbers}{HTML}{B3B2B3}
|
||||||
|
\definecolor{listing-text-color}{HTML}{000000}
|
||||||
|
\definecolor{listing-keyword}{HTML}{435489}
|
||||||
|
\definecolor{listing-identifier}{HTML}{435489}
|
||||||
|
\definecolor{listing-string}{HTML}{00999A}
|
||||||
|
\definecolor{listing-comment}{HTML}{8E8E8E}
|
||||||
|
\definecolor{listing-javadoc-comment}{HTML}{006CA9}
|
||||||
|
|
||||||
|
%\definecolor{listing-background}{rgb}{0.97,0.97,0.97}
|
||||||
|
%\definecolor{listing-rule}{HTML}{B3B2B3}
|
||||||
|
%\definecolor{listing-numbers}{HTML}{B3B2B3}
|
||||||
|
%\definecolor{listing-text-color}{HTML}{000000}
|
||||||
|
%\definecolor{listing-keyword}{HTML}{D8006B}
|
||||||
|
%\definecolor{listing-identifier}{HTML}{000000}
|
||||||
|
%\definecolor{listing-string}{HTML}{006CA9}
|
||||||
|
%\definecolor{listing-comment}{rgb}{0.25,0.5,0.35}
|
||||||
|
%\definecolor{listing-javadoc-comment}{HTML}{006CA9}
|
||||||
|
|
||||||
|
%
|
||||||
|
% for the background color of the title page
|
||||||
|
%
|
||||||
|
$if(titlepage)$
|
||||||
|
\usepackage{pagecolor}
|
||||||
|
\usepackage{afterpage}
|
||||||
|
$endif$
|
||||||
|
|
||||||
|
%
|
||||||
|
% TOC depth and
|
||||||
|
% section numbering depth
|
||||||
|
%
|
||||||
|
\setcounter{tocdepth}{3}
|
||||||
|
$if(numbersections)$
|
||||||
|
\setcounter{secnumdepth}{3}
|
||||||
|
$endif$
|
||||||
|
|
||||||
|
%
|
||||||
|
% break urls
|
||||||
|
%
|
||||||
|
\PassOptionsToPackage{hyphens}{url}
|
||||||
|
|
||||||
|
%
|
||||||
|
% When using babel or polyglossia with biblatex, loading csquotes is recommended
|
||||||
|
% to ensure that quoted texts are typeset according to the rules of your main language.
|
||||||
|
%
|
||||||
|
\usepackage{csquotes}
|
||||||
|
|
||||||
|
%
|
||||||
|
% captions
|
||||||
|
%
|
||||||
|
\definecolor{caption-color}{HTML}{777777}
|
||||||
|
\usepackage[font={stretch=1.2}, textfont={color=caption-color}, position=top, skip=4mm, labelfont=bf, singlelinecheck=false, justification=$if(caption-justification)$$caption-justification$$else$raggedright$endif$]{caption}
|
||||||
|
\setcapindent{0em}
|
||||||
|
\captionsetup[longtable]{position=above}
|
||||||
|
|
||||||
|
%
|
||||||
|
% blockquote
|
||||||
|
%
|
||||||
|
\definecolor{blockquote-border}{RGB}{221,221,221}
|
||||||
|
\definecolor{blockquote-text}{RGB}{119,119,119}
|
||||||
|
\usepackage{mdframed}
|
||||||
|
\newmdenv[rightline=false,bottomline=false,topline=false,linewidth=3pt,linecolor=blockquote-border,skipabove=\parskip]{customblockquote}
|
||||||
|
\renewenvironment{quote}{\begin{customblockquote}\list{}{\rightmargin=0em\leftmargin=0em}%
|
||||||
|
\item\relax\color{blockquote-text}\ignorespaces}{\unskip\unskip\endlist\end{customblockquote}}
|
||||||
|
|
||||||
|
%
|
||||||
|
% Source Sans Pro as the default font family
|
||||||
|
% Source Code Pro for monospace text
|
||||||
|
%
|
||||||
|
% 'default' option sets the default
|
||||||
|
% font family to Source Sans Pro, not \sfdefault.
|
||||||
|
%
|
||||||
|
$if(mainfont)$
|
||||||
|
$else$
|
||||||
|
\usepackage[default]{sourcesanspro}
|
||||||
|
\usepackage{sourcecodepro}
|
||||||
|
$endif$
|
||||||
|
|
||||||
|
%
|
||||||
|
% heading color
|
||||||
|
%
|
||||||
|
\definecolor{heading-color}{RGB}{40,40,40}
|
||||||
|
\addtokomafont{section}{\color{heading-color}}
|
||||||
|
% When using the classes report, scrreprt, book,
|
||||||
|
% scrbook or memoir, uncomment the following line.
|
||||||
|
%\addtokomafont{chapter}{\color{heading-color}}
|
||||||
|
|
||||||
|
%
|
||||||
|
% variables for title and author
|
||||||
|
%
|
||||||
|
\usepackage{titling}
|
||||||
|
\title{$title$}
|
||||||
|
\author{$for(author)$$author$$sep$, $endfor$}
|
||||||
|
|
||||||
|
%
|
||||||
|
% tables
|
||||||
|
%
|
||||||
|
$if(tables)$
|
||||||
|
|
||||||
|
\definecolor{table-row-color}{HTML}{F5F5F5}
|
||||||
|
\definecolor{table-rule-color}{HTML}{999999}
|
||||||
|
|
||||||
|
%\arrayrulecolor{black!40}
|
||||||
|
\arrayrulecolor{table-rule-color} % color of \toprule, \midrule, \bottomrule
|
||||||
|
\setlength\heavyrulewidth{0.3ex} % thickness of \toprule, \bottomrule
|
||||||
|
\renewcommand{\arraystretch}{1.3} % spacing (padding)
|
||||||
|
|
||||||
|
% Reset rownum counter so that each table
|
||||||
|
% starts with the same row colors.
|
||||||
|
% https://tex.stackexchange.com/questions/170637/restarting-rowcolors
|
||||||
|
\let\oldlongtable\longtable
|
||||||
|
\let\endoldlongtable\endlongtable
|
||||||
|
\renewenvironment{longtable}{
|
||||||
|
\rowcolors{3}{}{table-row-color!100} % row color
|
||||||
|
\oldlongtable} {
|
||||||
|
\endoldlongtable
|
||||||
|
\global\rownum=0\relax}
|
||||||
|
|
||||||
|
% Unfortunately the colored cells extend beyond the edge of the
|
||||||
|
% table because pandoc uses @-expressions (@{}) like so:
|
||||||
|
%
|
||||||
|
% \begin{longtable}[]{@{}ll@{}}
|
||||||
|
% \end{longtable}
|
||||||
|
%
|
||||||
|
% https://en.wikibooks.org/wiki/LaTeX/Tables#.40-expressions
|
||||||
|
$endif$
|
||||||
|
|
||||||
|
%
|
||||||
|
% remove paragraph indention
|
||||||
|
%
|
||||||
|
\setlength{\parindent}{0pt}
|
||||||
|
\setlength{\parskip}{6pt plus 2pt minus 1pt}
|
||||||
|
\setlength{\emergencystretch}{3em} % prevent overfull lines
|
||||||
|
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Listings
|
||||||
|
%
|
||||||
|
%
|
||||||
|
|
||||||
|
$if(listings)$
|
||||||
|
\lstdefinestyle{eisvogel_listing_style}{
|
||||||
|
language = java,
|
||||||
|
$if(listings-disable-line-numbers)$
|
||||||
|
xleftmargin = 0.6em,
|
||||||
|
framexleftmargin = 0.4em,
|
||||||
|
$else$
|
||||||
|
numbers = left,
|
||||||
|
xleftmargin = 2.7em,
|
||||||
|
framexleftmargin = 2.5em,
|
||||||
|
$endif$
|
||||||
|
backgroundcolor = \color{listing-background},
|
||||||
|
basicstyle = \color{listing-text-color}\small\ttfamily{}\linespread{1.15}, % print whole listing small
|
||||||
|
breaklines = true,
|
||||||
|
frame = single,
|
||||||
|
framesep = 0.6mm,
|
||||||
|
rulecolor = \color{listing-rule},
|
||||||
|
frameround = ffff,
|
||||||
|
tabsize = 4,
|
||||||
|
numberstyle = \color{listing-numbers},
|
||||||
|
aboveskip = 1.0em,
|
||||||
|
belowcaptionskip = 1.0em,
|
||||||
|
keywordstyle = \color{listing-keyword}\bfseries,
|
||||||
|
classoffset = 0,
|
||||||
|
sensitive = true,
|
||||||
|
identifierstyle = \color{listing-identifier},
|
||||||
|
commentstyle = \color{listing-comment},
|
||||||
|
morecomment = [s][\color{listing-javadoc-comment}]{/**}{*/},
|
||||||
|
stringstyle = \color{listing-string},
|
||||||
|
showstringspaces = false,
|
||||||
|
escapeinside = {/*@}{@*/}, % Allow LaTeX inside these special comments
|
||||||
|
literate =
|
||||||
|
{á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1
|
||||||
|
{Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1
|
||||||
|
{à}{{\`a}}1 {è}{{\'e}}1 {ì}{{\`i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1
|
||||||
|
{À}{{\`A}}1 {È}{{\'E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1
|
||||||
|
{ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
|
||||||
|
{Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
|
||||||
|
{â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1
|
||||||
|
{Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1
|
||||||
|
{œ}{{\oe}}1 {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1
|
||||||
|
{ç}{{\c c}}1 {Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1
|
||||||
|
{€}{{\EUR}}1 {£}{{\pounds}}1 {«}{{\guillemotleft}}1
|
||||||
|
{»}{{\guillemotright}}1 {ñ}{{\~n}}1 {Ñ}{{\~N}}1 {¿}{{?`}}1
|
||||||
|
{…}{{\ldots}}1 {≥}{{>=}}1 {≤}{{<=}}1 {„}{{\glqq}}1 {“}{{\grqq}}1
|
||||||
|
{”}{{''}}1
|
||||||
|
}
|
||||||
|
\lstset{style=eisvogel_listing_style}
|
||||||
|
|
||||||
|
\lstdefinelanguage{XML}{
|
||||||
|
morestring = [b]",
|
||||||
|
moredelim = [s][\bfseries\color{listing-keyword}]{<}{\ },
|
||||||
|
moredelim = [s][\bfseries\color{listing-keyword}]{</}{>},
|
||||||
|
moredelim = [l][\bfseries\color{listing-keyword}]{/>},
|
||||||
|
moredelim = [l][\bfseries\color{listing-keyword}]{>},
|
||||||
|
morecomment = [s]{<?}{?>},
|
||||||
|
morecomment = [s]{<!--}{-->},
|
||||||
|
commentstyle = \color{listing-comment},
|
||||||
|
stringstyle = \color{listing-string},
|
||||||
|
identifierstyle = \color{listing-identifier}
|
||||||
|
}
|
||||||
|
$endif$
|
||||||
|
|
||||||
|
%
|
||||||
|
% header and footer
|
||||||
|
%
|
||||||
|
$if(disable-header-and-footer)$
|
||||||
|
$else$
|
||||||
|
\usepackage{fancyhdr}
|
||||||
|
\pagestyle{fancy}
|
||||||
|
\fancyhead{}
|
||||||
|
\fancyfoot{}
|
||||||
|
\lhead[$if(header-right)$$header-right$$else$$date$$endif$]{$if(header-left)$$header-left$$else$$title$$endif$}
|
||||||
|
\chead[$if(header-center)$$header-center$$else$$endif$]{$if(header-center)$$header-center$$else$$endif$}
|
||||||
|
\rhead[$if(header-left)$$header-left$$else$$title$$endif$]{$if(header-right)$$header-right$$else$$date$$endif$}
|
||||||
|
\lfoot[$if(footer-right)$$footer-right$$else$\thepage$endif$]{$if(footer-left)$$footer-left$$else$$for(author)$$author$$sep$, $endfor$$endif$}
|
||||||
|
\cfoot[$if(footer-center)$$footer-center$$else$$endif$]{$if(footer-center)$$footer-center$$else$$endif$}
|
||||||
|
\rfoot[$if(footer-left)$$footer-left$$else$$for(author)$$author$$sep$, $endfor$$endif$]{$if(footer-right)$$footer-right$$else$\thepage$endif$}
|
||||||
|
\renewcommand{\headrulewidth}{0.4pt}
|
||||||
|
\renewcommand{\footrulewidth}{0.4pt}
|
||||||
|
$endif$
|
||||||
|
|
||||||
|
%%
|
||||||
|
%% end added
|
||||||
|
%%
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
%%
|
||||||
|
%% begin titlepage
|
||||||
|
%%
|
||||||
|
|
||||||
|
$if(titlepage)$
|
||||||
|
\begin{titlepage}
|
||||||
|
\newgeometry{left=6cm}
|
||||||
|
$if(titlepage-color)$
|
||||||
|
\definecolor{titlepage-color}{HTML}{$titlepage-color$}
|
||||||
|
\newpagecolor{titlepage-color}\afterpage{\restorepagecolor}
|
||||||
|
$endif$
|
||||||
|
\newcommand{\colorRule}[3][black]{\textcolor[HTML]{#1}{\rule{#2}{#3}}}
|
||||||
|
\begin{flushleft}
|
||||||
|
\noindent
|
||||||
|
\\[-1em]
|
||||||
|
\color[HTML]{$if(titlepage-text-color)$$titlepage-text-color$$else$5F5F5F$endif$}
|
||||||
|
\makebox[0pt][l]{\colorRule[$if(titlepage-rule-color)$$titlepage-rule-color$$else$435488$endif$]{1.3\textwidth}{$if(titlepage-rule-height)$$titlepage-rule-height$$else$4$endif$pt}}
|
||||||
|
\par
|
||||||
|
\noindent
|
||||||
|
|
||||||
|
{ \setstretch{1.4}
|
||||||
|
\vfill
|
||||||
|
\noindent {\huge \textbf{\textsf{$title$}}}
|
||||||
|
$if(subtitle)$
|
||||||
|
\vskip 1em
|
||||||
|
{\Large \textsf{$subtitle$}}
|
||||||
|
$endif$
|
||||||
|
\vskip 2em
|
||||||
|
\noindent
|
||||||
|
{\Large \textsf{$for(author)$$author$$sep$, $endfor$}
|
||||||
|
\vfill
|
||||||
|
}
|
||||||
|
|
||||||
|
$if(logo)$
|
||||||
|
\noindent
|
||||||
|
\includegraphics[width=$if(logo-width)$$logo-width$$else$100$endif$pt, left]{$logo$}
|
||||||
|
$endif$
|
||||||
|
|
||||||
|
\textsf{$date$}}
|
||||||
|
\end{flushleft}
|
||||||
|
\end{titlepage}
|
||||||
|
\restoregeometry
|
||||||
|
$endif$
|
||||||
|
|
||||||
|
%%
|
||||||
|
%% end titlepage
|
||||||
|
%%
|
||||||
|
|
||||||
|
$if(title)$
|
||||||
|
$if(beamer)$
|
||||||
|
\frame{\titlepage}
|
||||||
|
$endif$
|
||||||
|
$if(abstract)$
|
||||||
|
\begin{abstract}
|
||||||
|
$abstract$
|
||||||
|
\end{abstract}
|
||||||
|
$endif$
|
||||||
|
$endif$
|
||||||
|
|
||||||
|
$for(include-before)$
|
||||||
|
$include-before$
|
||||||
|
|
||||||
|
$endfor$
|
||||||
|
$if(toc)$
|
||||||
|
$if(toc-title)$
|
||||||
|
\renewcommand*\contentsname{$toc-title$}
|
||||||
|
$endif$
|
||||||
|
$if(beamer)$
|
||||||
|
\begin{frame}
|
||||||
|
$if(toc-title)$
|
||||||
|
\frametitle{$toc-title$}
|
||||||
|
$endif$
|
||||||
|
\tableofcontents[hideallsubsections]
|
||||||
|
\end{frame}
|
||||||
|
$if(toc-own-page)$
|
||||||
|
\newpage
|
||||||
|
$endif$
|
||||||
|
$else$
|
||||||
|
{
|
||||||
|
$if(colorlinks)$
|
||||||
|
\hypersetup{linkcolor=$if(toccolor)$$toccolor$$else$$endif$}
|
||||||
|
$endif$
|
||||||
|
\setcounter{tocdepth}{$toc-depth$}
|
||||||
|
\tableofcontents
|
||||||
|
$if(toc-own-page)$
|
||||||
|
\newpage
|
||||||
|
$endif$
|
||||||
|
}
|
||||||
|
$endif$
|
||||||
|
$endif$
|
||||||
|
$if(lot)$
|
||||||
|
\listoftables
|
||||||
|
$endif$
|
||||||
|
$if(lof)$
|
||||||
|
\listoffigures
|
||||||
|
$endif$
|
||||||
|
$body$
|
||||||
|
|
||||||
|
$if(natbib)$
|
||||||
|
$if(bibliography)$
|
||||||
|
$if(biblio-title)$
|
||||||
|
$if(book-class)$
|
||||||
|
\renewcommand\bibname{$biblio-title$}
|
||||||
|
$else$
|
||||||
|
\renewcommand\refname{$biblio-title$}
|
||||||
|
$endif$
|
||||||
|
$endif$
|
||||||
|
$if(beamer)$
|
||||||
|
\begin{frame}[allowframebreaks]{$biblio-title$}
|
||||||
|
\bibliographytrue
|
||||||
|
$endif$
|
||||||
|
\bibliography{$for(bibliography)$$bibliography$$sep$,$endfor$}
|
||||||
|
$if(beamer)$
|
||||||
|
\end{frame}
|
||||||
|
$endif$
|
||||||
|
|
||||||
|
$endif$
|
||||||
|
$endif$
|
||||||
|
$if(biblatex)$
|
||||||
|
$if(beamer)$
|
||||||
|
\begin{frame}[allowframebreaks]{$biblio-title$}
|
||||||
|
\bibliographytrue
|
||||||
|
\printbibliography[heading=none]
|
||||||
|
\end{frame}
|
||||||
|
$else$
|
||||||
|
\printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$
|
||||||
|
$endif$
|
||||||
|
|
||||||
|
$endif$
|
||||||
|
$for(include-after)$
|
||||||
|
$include-after$
|
||||||
|
|
||||||
|
$endfor$
|
||||||
|
\end{document}
|
598
pandoc/.pandoc/templates/email.html
Normal file
598
pandoc/.pandoc/templates/email.html
Normal file
@ -0,0 +1,598 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="ProgId" content="Word.Document">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
$for(author-meta)$
|
||||||
|
<meta name="author" content="$author-meta$" />
|
||||||
|
$endfor$
|
||||||
|
$if(date-meta)$
|
||||||
|
<meta name="date" content="$date-meta$" />
|
||||||
|
$endif$
|
||||||
|
$if(keywords)$
|
||||||
|
<meta name="keywords" content="$for(keywords)$$keywords$$sep$, $endfor$" />
|
||||||
|
$endif$
|
||||||
|
<title>$if(title-prefix)$$title-prefix$ – $endif$$pagetitle$</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, table, td, a {
|
||||||
|
-webkit-text-size-adjust: 100%;
|
||||||
|
-ms-text-size-adjust: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table, td {
|
||||||
|
mso-table-lspace: 0pt;
|
||||||
|
mso-table-rspace: 0pt;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
-ms-interpolation-mode: bicubic;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
border: 0;
|
||||||
|
height: auto;
|
||||||
|
line-height: 100%;
|
||||||
|
outline: none;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
height: 100% !important;
|
||||||
|
margin: 0 !important;
|
||||||
|
padding: 0 !important;
|
||||||
|
width: 100% !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
figure {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
article, aside, details, figcaption, figure,footer, header, hgroup, menu, nav, section {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
a[x-apple-data-detectors] {
|
||||||
|
color: inherit !important;
|
||||||
|
text-decoration: none !important;
|
||||||
|
font-size: inherit !important;
|
||||||
|
font-family: inherit !important;
|
||||||
|
font-weight: inherit !important;
|
||||||
|
line-height: inherit !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
div[style*="margin: 16px 0;"] {
|
||||||
|
margin: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
table,td,div,a {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
-ms-interpolation-mode: bicubic;
|
||||||
|
max-width: 100%;
|
||||||
|
display: inline-block;
|
||||||
|
padding-top: 7px;
|
||||||
|
}
|
||||||
|
|
||||||
|
body, .body {
|
||||||
|
font-family: Georgia, "Times New Roman", Times, serif;
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 1.2;
|
||||||
|
height: 100% !important;
|
||||||
|
width: 100% !important;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-ms-text-size-adjust: 100%;
|
||||||
|
-webkit-text-size-adjust: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table {
|
||||||
|
border-collapse: separate !important;
|
||||||
|
mso-table-lspace: 0pt;
|
||||||
|
mso-table-rspace: 0pt;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table td {
|
||||||
|
font-family: Georgia, "Times New Roman", Times, serif;
|
||||||
|
font-size: 14px;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ExternalClass {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ExternalClass,.ExternalClass p,.ExternalClass span,.ExternalClass font,.ExternalClass td,.ExternalClass div {
|
||||||
|
line-height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
strong, b {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ajT {
|
||||||
|
height: none;
|
||||||
|
padding-top: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
background-color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.body {
|
||||||
|
background-color: #ffffff;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
display: block;
|
||||||
|
Margin: 0 auto !important;
|
||||||
|
max-width: 800px;
|
||||||
|
padding: 10px;
|
||||||
|
width: 100% !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
display: block;
|
||||||
|
margin: 0 auto;
|
||||||
|
max-width: 800px;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main {
|
||||||
|
background: #ffffff;
|
||||||
|
border: none;
|
||||||
|
border-radius: 4px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wrapper {
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-block {
|
||||||
|
padding: 0 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
margin-top: 0px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer {
|
||||||
|
clear: both;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer * {
|
||||||
|
color: #7F7F7F;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer td {
|
||||||
|
padding: 20px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1,h2,h3,h4,h5,h6 {
|
||||||
|
color: #222222 !important;
|
||||||
|
font-family: "Roboto", "Helvetica Neue", "Segoe UI", Helvetica, Arial, sans-serif;
|
||||||
|
font-weight: bold;
|
||||||
|
line-height: 1.2;
|
||||||
|
margin: 0;
|
||||||
|
margin-bottom: 7px;
|
||||||
|
margin-top: 10.5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1, h2 {
|
||||||
|
margin-bottom: 10.5px;
|
||||||
|
margin-top: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 22.4px;
|
||||||
|
text-transform: capitalize;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 19.6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-size: 16.8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
font-size: 15.4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h5 {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h6 {
|
||||||
|
font-size: 12.6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
p,ul,ol {
|
||||||
|
font-family: Georgia, "Times New Roman", Times, serif;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: normal;
|
||||||
|
margin: 0;
|
||||||
|
padding-top: 7px;
|
||||||
|
color: #111111;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul, ol {
|
||||||
|
margin: 0;
|
||||||
|
margin-bottom: 7.5px;
|
||||||
|
padding-left: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul li, ol li {
|
||||||
|
list-style-position: outside;
|
||||||
|
margin-left: 5px;
|
||||||
|
margin-bottom: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
li > ul, li > ol {
|
||||||
|
margin-top: 7.5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #348eda;
|
||||||
|
text-decoration: none;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre > a, code > a {
|
||||||
|
color: none;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
code,pre,.word-wrap {
|
||||||
|
word-break: break-word;
|
||||||
|
word-wrap: break-word;
|
||||||
|
-webkit-hyphens: auto;
|
||||||
|
-moz-hyphens: auto;
|
||||||
|
hyphens: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre, code {
|
||||||
|
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||||
|
font-size: 11.9px;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
display: block;
|
||||||
|
width: 96%;
|
||||||
|
margin: 1em 0;
|
||||||
|
margin-bottom: 9px;
|
||||||
|
background: #f8f8f8;
|
||||||
|
padding: 1%;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
p > code {
|
||||||
|
color: #111111;
|
||||||
|
background: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
padding: 0 7px 0 7px;
|
||||||
|
border-left: 2px solid #cccccc;
|
||||||
|
border-top: 4.2px solid transparent;
|
||||||
|
font-style: italic;
|
||||||
|
margin: 0 0 7px 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote p {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
mark {
|
||||||
|
background: #ff0;
|
||||||
|
}
|
||||||
|
|
||||||
|
dl dt {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
dl dd {
|
||||||
|
margin-left: 28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.et-btn {
|
||||||
|
width: 100%;
|
||||||
|
font-family: "Roboto", "Helvetica Neue", "Segoe UI", Helvetica, Arial, sans-serif;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.et-btn table {
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.et-btn table td {
|
||||||
|
background-color: #ffffff;
|
||||||
|
border-radius: 4px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.et-btn a {
|
||||||
|
background-color: #ffffff;
|
||||||
|
border: solid 1px #348eda;
|
||||||
|
border-radius: 4px;
|
||||||
|
color: #348eda;
|
||||||
|
cursor: pointer;
|
||||||
|
display: inline-block;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 0;
|
||||||
|
padding: 8px 18px;
|
||||||
|
text-decoration: none;
|
||||||
|
text-transform: capitalize;
|
||||||
|
font-family: "Roboto", "Helvetica Neue", "Segoe UI", Helvetica, Arial, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.et-btn-primary table td {
|
||||||
|
background-color: #348eda;
|
||||||
|
}
|
||||||
|
|
||||||
|
.et-btn-primary a {
|
||||||
|
background-color: #348eda;
|
||||||
|
border-color: #348eda;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.et-btn-secondary table td {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.et-btn-secondary a {
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: #348eda;
|
||||||
|
color: #348eda;
|
||||||
|
}
|
||||||
|
|
||||||
|
.et-notice {
|
||||||
|
border-collapse: separate;
|
||||||
|
}
|
||||||
|
|
||||||
|
.et-notice-spacer {
|
||||||
|
padding: 10px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.et-notice td {
|
||||||
|
line-height: 1.2;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: normal;
|
||||||
|
font-family: "Roboto", "Helvetica Neue", "Segoe UI", Helvetica, Arial, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.et-notice td p {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.et-notice-info td {
|
||||||
|
background: #f0f6fb;
|
||||||
|
border: 1px solid #b7d3ed;
|
||||||
|
border-radius: 4px;
|
||||||
|
color: #2c6eac;
|
||||||
|
padding: 6px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.et-notice-success td {
|
||||||
|
background: #e1f2bd;
|
||||||
|
border: 1px solid #c6e682;
|
||||||
|
border-radius: 4px;
|
||||||
|
color: #61821a;
|
||||||
|
padding: 6px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.et-notice-warning td {
|
||||||
|
background: #f7eed0;
|
||||||
|
border: 1px solid #edd993;
|
||||||
|
border-radius: 4px;
|
||||||
|
color: #9a7d1a;
|
||||||
|
padding: 6px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.et-notice-danger td {
|
||||||
|
background: #f5d5d5;
|
||||||
|
border: 1px solid #e89b9b;
|
||||||
|
border-radius: 4px;
|
||||||
|
color: #952222;
|
||||||
|
padding: 6px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.et-notice-lg td {
|
||||||
|
font-size: 16.8px;
|
||||||
|
line-height: 1.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.divider {
|
||||||
|
border-collapse: separate;
|
||||||
|
}
|
||||||
|
|
||||||
|
.divider-spacer {
|
||||||
|
padding: 14px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.divider td {
|
||||||
|
border-top: 1px solid #ccc;
|
||||||
|
line-height: 0;
|
||||||
|
font-size: 0;
|
||||||
|
height: 1px;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
margin: 28px 0;
|
||||||
|
border: none;
|
||||||
|
border-top: 1px solid #cccccc;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.last {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.first {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.align-center {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.align-right {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.align-left {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.clear {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mt0 {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mb0 {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.preheader {
|
||||||
|
color: transparent;
|
||||||
|
display: none;
|
||||||
|
height: 0;
|
||||||
|
max-height: 0;
|
||||||
|
max-width: 0;
|
||||||
|
opacity: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
mso-hide: all;
|
||||||
|
visibility: hidden;
|
||||||
|
width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width: 840px) {
|
||||||
|
table[class=body] {
|
||||||
|
font-size: 12px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
table[class=body] p,table[class=body] ul,table[class=body] ol {
|
||||||
|
font-size: 12px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
table[class=body] .et-btn {
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table[class=body] h1 {
|
||||||
|
font-size: 18.2px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
table[class=body] h2 {
|
||||||
|
font-size: 16.8px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
table[class=body] h3 {
|
||||||
|
font-size: 15.4px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
table[class=body] h4 {
|
||||||
|
font-size: 14.7px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
table[class=body] h5 {
|
||||||
|
font-size: 12.6px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
table[class=body] h6 {
|
||||||
|
font-size: 11.9px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
table[class=body] h1, table[class=body] h2 {
|
||||||
|
margin-bottom: 14px !important;
|
||||||
|
margin-top: 14px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
table[class=body] .container, table[class=body] .content {
|
||||||
|
width: 100% !important;
|
||||||
|
max-width: 100% !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
table[class=body] .content,table[class=body] .wrapper {
|
||||||
|
padding: 10px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
table[class=body] .container {
|
||||||
|
padding: 0 !important;
|
||||||
|
width: 100% !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
table[class=body] .btn table,table[class=body] .btn a {
|
||||||
|
width: 100% !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
$if(quotes)$
|
||||||
|
<style type="text/css">q { quotes: "“" "”" "‘" "’"; }</style>
|
||||||
|
$endif$
|
||||||
|
$if(highlighting-css)$
|
||||||
|
<style type="text/css">
|
||||||
|
$highlighting-css$
|
||||||
|
</style>
|
||||||
|
$endif$
|
||||||
|
$for(css)$
|
||||||
|
<link rel="stylesheet" href="$css$" type="text/css" />
|
||||||
|
$endfor$
|
||||||
|
$if(math)$
|
||||||
|
$math$
|
||||||
|
$endif$
|
||||||
|
$for(header-includes)$
|
||||||
|
$header-includes$
|
||||||
|
$endfor$
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
$for(include-before)$
|
||||||
|
$include-before$
|
||||||
|
$endfor$
|
||||||
|
$if(title)$
|
||||||
|
<div id="$idprefix$header">
|
||||||
|
<h1 class="title">$title$</h1>
|
||||||
|
$if(subtitle)$
|
||||||
|
<h1 class="subtitle">$subtitle$</h1>
|
||||||
|
$endif$
|
||||||
|
$for(author)$
|
||||||
|
<h2 class="author">$author$</h2>
|
||||||
|
$endfor$
|
||||||
|
$if(date)$
|
||||||
|
<h3 class="date">$date$</h3>
|
||||||
|
$endif$
|
||||||
|
</div>
|
||||||
|
$endif$
|
||||||
|
$if(toc)$
|
||||||
|
<div id="$idprefix$TOC">
|
||||||
|
$toc$
|
||||||
|
</div>
|
||||||
|
$endif$
|
||||||
|
$body$
|
||||||
|
$for(include-after)$
|
||||||
|
$include-after$
|
||||||
|
$endfor$
|
||||||
|
</body>
|
||||||
|
</html>
|
26
polybar/.config/polybar/battery.sh
Executable file
26
polybar/.config/polybar/battery.sh
Executable file
@ -0,0 +1,26 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
color8="#88C0D0"
|
||||||
|
|
||||||
|
icon(){
|
||||||
|
printf "%s\\n" "%{F${color8}}${1}%{F}"
|
||||||
|
}
|
||||||
|
|
||||||
|
icon2() {
|
||||||
|
printf "%s\\n" "%{F${color11:-#F0F0F0}}${1}%{F}"
|
||||||
|
}
|
||||||
|
|
||||||
|
status=$(acpiconf -i 0 | grep State | cut -c 10-)
|
||||||
|
capacity=$(acpiconf -i 0 | grep % | cut -f2 | cut -c -4 | sed s/%//)
|
||||||
|
|
||||||
|
if [ "$status" == "charging" ]; then
|
||||||
|
printf "%s\\n" "$(icon "") ${capacity}%"
|
||||||
|
elif [ "$status" == "high" ]; then
|
||||||
|
printf "%s\\n" "$(icon "") ${capacity}%"
|
||||||
|
elif (("$capacity" <= "20")); then
|
||||||
|
printf "%s\\n" "$(icon2 "") ${capacity}%"
|
||||||
|
elif (("$capacity" <= "60")); then
|
||||||
|
printf "%s\\n" "$(icon "") ${capacity}%"
|
||||||
|
elif (("$capacity" <= "100")); then
|
||||||
|
printf "%s\\n" "$(icon "") ${capacity}%"
|
||||||
|
fi
|
121
polybar/.config/polybar/config
Normal file
121
polybar/.config/polybar/config
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
[colors]
|
||||||
|
foreground-alt = #D8DEE9
|
||||||
|
icon = #88C0D0
|
||||||
|
|
||||||
|
[bar/main]
|
||||||
|
monitor = eDP-1
|
||||||
|
height = 20
|
||||||
|
width = 100%
|
||||||
|
|
||||||
|
background = #211B29
|
||||||
|
foreground = ${colors.foreground-alt}
|
||||||
|
underline-color = #00f
|
||||||
|
underline-size = 1
|
||||||
|
overline-color = #f00
|
||||||
|
|
||||||
|
spacing = 2
|
||||||
|
padding-right = 2
|
||||||
|
module-margin-right = 2
|
||||||
|
module-margin-left = 2
|
||||||
|
|
||||||
|
;override-redirect = true
|
||||||
|
|
||||||
|
font-0 = lime:size=7;0
|
||||||
|
font-1 = Siji:size=10;0
|
||||||
|
|
||||||
|
modules-left = workspaces
|
||||||
|
modules-center = date
|
||||||
|
modules-right = mpd wifi vol bat
|
||||||
|
|
||||||
|
[module/title]
|
||||||
|
type = internal/xwindow
|
||||||
|
label = %title%
|
||||||
|
label-maxlen = 50
|
||||||
|
|
||||||
|
[module/mail]
|
||||||
|
type = custom/script
|
||||||
|
format-prefix =" "
|
||||||
|
exec = python3 ~/.scripts/mail
|
||||||
|
interval = 100
|
||||||
|
format-foreground = ${colors.foreground-alt}
|
||||||
|
|
||||||
|
[module/mpd]
|
||||||
|
type = internal/mpd
|
||||||
|
host = /home/coolneng/.mpd/socket
|
||||||
|
|
||||||
|
format-online = <icon-play> <icon-pause> <label-song>
|
||||||
|
format-offline = <label-offline>
|
||||||
|
label-song = %title%
|
||||||
|
label-offline =
|
||||||
|
icon-play =
|
||||||
|
icon-pause =
|
||||||
|
icon-play-foreground = ${colors.icon}
|
||||||
|
icon-pause-foreground = ${colors.icon}
|
||||||
|
|
||||||
|
interval = 2
|
||||||
|
|
||||||
|
[module/date]
|
||||||
|
type = internal/date
|
||||||
|
|
||||||
|
; Seconds to sleep between updates
|
||||||
|
interval = 1.0
|
||||||
|
|
||||||
|
; See "man date" for details on how to format the date string
|
||||||
|
; NOTE: if you want to use syntax tags here you need to use %%{...}
|
||||||
|
date = %a %d %b
|
||||||
|
|
||||||
|
; Optional time format
|
||||||
|
time = %H:%M
|
||||||
|
|
||||||
|
; if `date-alt` or `time-alt` is defined, clicking
|
||||||
|
; the module will toggle between formats
|
||||||
|
;date-alt = %A, %d %B %Y
|
||||||
|
;time-alt = %H:%M:%S
|
||||||
|
|
||||||
|
; Available tags:
|
||||||
|
; <label> (default)
|
||||||
|
format = <label>
|
||||||
|
|
||||||
|
; Available tokens:
|
||||||
|
; %date%
|
||||||
|
; %time%
|
||||||
|
; Default: %date%
|
||||||
|
label = %date% %time%
|
||||||
|
format-foreground = ${colors.foreground-alt}
|
||||||
|
|
||||||
|
[module/workspaces]
|
||||||
|
type = internal/xworkspaces
|
||||||
|
pin-workspaces = false
|
||||||
|
enable-click = false
|
||||||
|
enable-scroll = false
|
||||||
|
format-padding = 0
|
||||||
|
;icon-0 = 1
|
||||||
|
;icon-1 = 2
|
||||||
|
;icon-2 = 3
|
||||||
|
;icon-3 = 4
|
||||||
|
;icon-default =
|
||||||
|
format = <label-state>
|
||||||
|
; active
|
||||||
|
label-active = %name%
|
||||||
|
label-active-padding = 1
|
||||||
|
label-active-foreground = ${colors.icon}
|
||||||
|
label-active-underline = ${colors.icon}
|
||||||
|
; empty
|
||||||
|
label-empty = %name%
|
||||||
|
label-empty-padding = 1
|
||||||
|
label-empty-foreground = ${colors.foreground-alt}
|
||||||
|
|
||||||
|
[module/vol]
|
||||||
|
type = custom/script
|
||||||
|
exec = ~/.config/polybar/volume.sh
|
||||||
|
interval = 2
|
||||||
|
|
||||||
|
[module/bat]
|
||||||
|
type = custom/script
|
||||||
|
exec = ~/.config/polybar/battery.sh
|
||||||
|
interval = 2
|
||||||
|
|
||||||
|
[module/wifi]
|
||||||
|
type = custom/script
|
||||||
|
exec = ~/.config/polybar/wifi.sh
|
||||||
|
interval = 2
|
18
polybar/.config/polybar/volume.sh
Executable file
18
polybar/.config/polybar/volume.sh
Executable file
@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
color8="#88C0D0"
|
||||||
|
|
||||||
|
icon(){
|
||||||
|
printf "%s\\n" "%{F${color8}}${1}%{F}"
|
||||||
|
}
|
||||||
|
|
||||||
|
volume="$(mixer vol | cut -c 36- | cut -c -3)"
|
||||||
|
|
||||||
|
case "$volume" in
|
||||||
|
0|[0-9]) vol_icon=" " ;;
|
||||||
|
1?|2?|3?) vol_icon="" ;;
|
||||||
|
4?|5?|6?) vol_icon="" ;;
|
||||||
|
*) vol_icon="" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
printf "%s\\n" "$(icon "$vol_icon") ${volume}%"
|
11
polybar/.config/polybar/wifi.sh
Executable file
11
polybar/.config/polybar/wifi.sh
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
color8="#88C0D0"
|
||||||
|
icon(){
|
||||||
|
printf "%s\\n" "%{F${color8}}${1}%{F}"
|
||||||
|
}
|
||||||
|
|
||||||
|
wifi="$(echo -e $(wpa_cli status | grep ssid | awk 'NR==2{print $1}' | cut -c 6-))"
|
||||||
|
wifi_icon=""
|
||||||
|
|
||||||
|
printf "%s\\n" "$(icon "$wifi_icon") ${wifi}"
|
105
tmux/.tmux.conf
Normal file
105
tmux/.tmux.conf
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
# Set prefix key to C-x
|
||||||
|
unbind C-b
|
||||||
|
set -g prefix C-x
|
||||||
|
bind C-x send-prefix
|
||||||
|
|
||||||
|
## set the default TERM
|
||||||
|
set -g default-terminal "screen-256color"
|
||||||
|
set-option -ga terminal-overrides ",screen-256color:Tc"
|
||||||
|
|
||||||
|
## set terminal bell
|
||||||
|
set -g bell-action any
|
||||||
|
|
||||||
|
### update the TERM variable of terminal emulator when creating a new session or attaching a existing session
|
||||||
|
set -g update-environment 'DISPLAY SSH_ASKPASS SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY TERM'
|
||||||
|
|
||||||
|
# i3 split bindings
|
||||||
|
bind g split-window -h
|
||||||
|
bind v split-window -v
|
||||||
|
unbind '"'
|
||||||
|
unbind %
|
||||||
|
unbind m
|
||||||
|
|
||||||
|
# vim split navigation
|
||||||
|
bind h select-pane -L
|
||||||
|
bind j select-pane -D
|
||||||
|
bind k select-pane -U
|
||||||
|
bind l select-pane -R
|
||||||
|
|
||||||
|
# equalize splits with x
|
||||||
|
unbind space
|
||||||
|
bind x select-layout even-horizontal
|
||||||
|
|
||||||
|
# window switching
|
||||||
|
unbind n
|
||||||
|
unbind c
|
||||||
|
bind c new-window
|
||||||
|
unbind ,
|
||||||
|
unbind .
|
||||||
|
bind , previous-window
|
||||||
|
bind . next-window
|
||||||
|
bind-key n command-prompt "rename-window '%%'"
|
||||||
|
|
||||||
|
# change kill window bind
|
||||||
|
unbind &
|
||||||
|
bind k killp
|
||||||
|
|
||||||
|
# force a reload of the config file
|
||||||
|
unbind r
|
||||||
|
bind r source-file ~/.tmux.conf
|
||||||
|
|
||||||
|
#set -g default-shell /usr/local/bin/fish
|
||||||
|
#set -g default-command '/usr/local/bin/fish'
|
||||||
|
set -g status on
|
||||||
|
set -g pane-base-index 1
|
||||||
|
set -g base-index 1
|
||||||
|
set -g set-titles on
|
||||||
|
set -g aggressive-resize on
|
||||||
|
set-option -g set-titles-string '#{pane_current_command}'
|
||||||
|
set-option -g history-limit 30000
|
||||||
|
set-option -g visual-activity on
|
||||||
|
set-option -g status-position bottom
|
||||||
|
set-option -g renumber-windows on
|
||||||
|
set-window-option -g monitor-activity off
|
||||||
|
set-option -g allow-rename off
|
||||||
|
|
||||||
|
# copy mode
|
||||||
|
unbind [
|
||||||
|
bind Escape copy-mode
|
||||||
|
bind-key -T copy-mode-vi 'v' send -X begin-selection # Begin selection in copy mode.
|
||||||
|
bind-key -T copy-mode-vi 'C-v' send -X rectangle-toggle # Begin selection in copy mode.
|
||||||
|
bind-key -T copy-mode-vi 'y' send -X copy-selection # Yank selection in copy mode.
|
||||||
|
|
||||||
|
|
||||||
|
set -g mouse on
|
||||||
|
bind -T root WheelUpPane if-shell -F -t = "#{alternate_on}" "send-keys -M" "select-pane -t =; copy-mode -e; send-keys -M"
|
||||||
|
bind -T root WheelDownPane if-shell -F -t = "#{alternate_on}" "send-keys -M" "select-pane -t =; send-keys -M"
|
||||||
|
|
||||||
|
# Split
|
||||||
|
set-option -g pane-active-border-fg colour234
|
||||||
|
set-option -g pane-active-border-bg default
|
||||||
|
set-option -g pane-border-fg colour234
|
||||||
|
set-option -g pane-border-bg default
|
||||||
|
|
||||||
|
set -g status-left '#[fg=white,bg=magenta] #S #[fg=default,bg=default]'
|
||||||
|
set -g status-right '#{prefix_highlight} #[fg=white,bg=magenta] %b %d %Y #[fg=white,bg=blue] %R '
|
||||||
|
set -g status-right-length 100
|
||||||
|
set -g status-bg default
|
||||||
|
setw -g window-status-format '#[fg=cyan,bg=black] #I #[fg=cyan,bg=black] #W '
|
||||||
|
setw -g window-status-current-format '#[fg=white,bg=blue] #I #[fg=white,bg=magenta] #W '
|
||||||
|
|
||||||
|
# List of plugins
|
||||||
|
set -g @plugin 'tmux-plugins/tpm'
|
||||||
|
set -g @plugin 'tmux-plugins/tmux-sensible'
|
||||||
|
set -g @plugin 'tmux-plugins/tmux-yank'
|
||||||
|
set -g @plugin 'tmux-plugins/tmux-sessionist'
|
||||||
|
set -g @plugin 'tmux-plugins/tmux-resurrect'
|
||||||
|
set -g @plugin 'tmux-plugins/tmux-continuum'
|
||||||
|
|
||||||
|
# Plugin configuration
|
||||||
|
set -g @resurrect-processes ':all:'
|
||||||
|
set -g @resurrect-capture-pane-contents 'on'
|
||||||
|
set -g @continuum-restore 'on'
|
||||||
|
set -g @continuum-save-interval '15'
|
||||||
|
|
||||||
|
run '~/.tmux/plugins/tpm/tpm'
|
1
tmux/.tmux/plugins/tmux-continuum
Submodule
1
tmux/.tmux/plugins/tmux-continuum
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 90f4a00c41de094864dd4e29231253bcd80d4409
|
1
tmux/.tmux/plugins/tmux-resurrect
Submodule
1
tmux/.tmux/plugins/tmux-resurrect
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 9dc3f8c639cb8b1d868002a037b7edbf39f3dd12
|
1
tmux/.tmux/plugins/tmux-sensible
Submodule
1
tmux/.tmux/plugins/tmux-sensible
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit e91b178ff832b7bcbbf4d99d9f467f63fd1b76b5
|
1
tmux/.tmux/plugins/tmux-yank
Submodule
1
tmux/.tmux/plugins/tmux-yank
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit c6a73eba6bfcde51edf57e1cc5fa12c4c7bd98d9
|
1
tmux/.tmux/plugins/tpm
Submodule
1
tmux/.tmux/plugins/tpm
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 95f78336c3972f3e6648b7b3db754f2224320a5e
|
72
vdirsyncer/.config/vdirsyncer/config
Normal file
72
vdirsyncer/.config/vdirsyncer/config
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
# An example configuration for vdirsyncer.
|
||||||
|
#
|
||||||
|
# Move it to ~/.vdirsyncer/config or ~/.config/vdirsyncer/config and edit it.
|
||||||
|
# Run `vdirsyncer --help` for CLI usage.
|
||||||
|
#
|
||||||
|
# Optional parameters are commented out.
|
||||||
|
# This file doesn't document all available parameters, see
|
||||||
|
# http://vdirsyncer.pimutils.org/ for the rest of them.
|
||||||
|
|
||||||
|
[general]
|
||||||
|
# A folder where vdirsyncer can store some metadata about each pair.
|
||||||
|
status_path = "~/.vdirsyncer/status/"
|
||||||
|
|
||||||
|
# CARDDAV
|
||||||
|
[pair bob_contacts]
|
||||||
|
# A `[pair <name>]` block defines two storages `a` and `b` that should be
|
||||||
|
# synchronized. The definition of these storages follows in `[storage <name>]`
|
||||||
|
# blocks. This is similar to accounts in OfflineIMAP.
|
||||||
|
a = "bob_contacts_local"
|
||||||
|
b = "bob_contacts_remote"
|
||||||
|
|
||||||
|
# Synchronize all collections that can be found.
|
||||||
|
# You need to run `vdirsyncer discover` if new calendars/addressbooks are added
|
||||||
|
# on the server.
|
||||||
|
|
||||||
|
collections = ["from a", "from b"]
|
||||||
|
|
||||||
|
# Synchronize the "display name" property into a local file (~/.contacts/displayname).
|
||||||
|
metadata = ["displayname"]
|
||||||
|
|
||||||
|
# To resolve a conflict the following values are possible:
|
||||||
|
# `null` - abort when collisions occur (default)
|
||||||
|
# `"a wins"` - assume a's items to be more up-to-date
|
||||||
|
# `"b wins"` - assume b's items to be more up-to-date
|
||||||
|
#conflict_resolution = null
|
||||||
|
|
||||||
|
[storage bob_contacts_local]
|
||||||
|
# A storage references actual data on a remote server or on the local disk.
|
||||||
|
# Similar to repositories in OfflineIMAP.
|
||||||
|
type = "filesystem"
|
||||||
|
path = "~/.contacts/"
|
||||||
|
fileext = ".vcf"
|
||||||
|
|
||||||
|
[storage bob_contacts_remote]
|
||||||
|
type = "carddav"
|
||||||
|
url = "https://coolneng.dedyn.io/remote.php/dav/"
|
||||||
|
username = "coolneng"
|
||||||
|
# The password can also be fetched from the system password storage, netrc or a
|
||||||
|
# custom command. See http://vdirsyncer.pimutils.org/en/stable/keyring.html
|
||||||
|
password = "8codk-a3Yts-jpwTM-CNaYj-cTQpc"
|
||||||
|
verify_fingerprint = "DF:6C:D1:78:71:41:5A:17:4A:CE:2B:4B:6B:20:D5:F2:A2:AE:8D:EC:FD:AF:11:42:71:29:1C:46:C9:DB:20:C7"
|
||||||
|
|
||||||
|
# CALDAV
|
||||||
|
[pair bob_calendar]
|
||||||
|
a = "bob_calendar_local"
|
||||||
|
b = "bob_calendar_remote"
|
||||||
|
collections = ["from a", "from b"]
|
||||||
|
|
||||||
|
# Calendars also have a color property
|
||||||
|
metadata = ["displayname", "color"]
|
||||||
|
|
||||||
|
[storage bob_calendar_local]
|
||||||
|
type = "filesystem"
|
||||||
|
path = "~/.calendars/"
|
||||||
|
fileext = ".ics"
|
||||||
|
|
||||||
|
[storage bob_calendar_remote]
|
||||||
|
type = "caldav"
|
||||||
|
url = "https://coolneng.dedyn.io/remote.php/dav/"
|
||||||
|
username = "coolneng"
|
||||||
|
password = "8codk-a3Yts-jpwTM-CNaYj-cTQpc"
|
||||||
|
verify_fingerprint = "DF:6C:D1:78:71:41:5A:17:4A:CE:2B:4B:6B:20:D5:F2:A2:AE:8D:EC:FD:AF:11:42:71:29:1C:46:C9:DB:20:C7"
|
1
vim/.vim/.vim
Symbolic link
1
vim/.vim/.vim
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
/home/coolneng/.vim
|
264
vim/.vim/autoload/pathogen.vim
Normal file
264
vim/.vim/autoload/pathogen.vim
Normal file
@ -0,0 +1,264 @@
|
|||||||
|
" pathogen.vim - path option manipulation
|
||||||
|
" Maintainer: Tim Pope <http://tpo.pe/>
|
||||||
|
" Version: 2.4
|
||||||
|
|
||||||
|
" Install in ~/.vim/autoload (or ~\vimfiles\autoload).
|
||||||
|
"
|
||||||
|
" For management of individually installed plugins in ~/.vim/bundle (or
|
||||||
|
" ~\vimfiles\bundle), adding `execute pathogen#infect()` to the top of your
|
||||||
|
" .vimrc is the only other setup necessary.
|
||||||
|
"
|
||||||
|
" The API is documented inline below.
|
||||||
|
|
||||||
|
if exists("g:loaded_pathogen") || &cp
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let g:loaded_pathogen = 1
|
||||||
|
|
||||||
|
" Point of entry for basic default usage. Give a relative path to invoke
|
||||||
|
" pathogen#interpose() or an absolute path to invoke pathogen#surround().
|
||||||
|
" Curly braces are expanded with pathogen#expand(): "bundle/{}" finds all
|
||||||
|
" subdirectories inside "bundle" inside all directories in the runtime path.
|
||||||
|
" If no arguments are given, defaults "bundle/{}", and also "pack/{}/start/{}"
|
||||||
|
" on versions of Vim without native package support.
|
||||||
|
function! pathogen#infect(...) abort
|
||||||
|
if a:0
|
||||||
|
let paths = filter(reverse(copy(a:000)), 'type(v:val) == type("")')
|
||||||
|
else
|
||||||
|
let paths = ['bundle/{}', 'pack/{}/start/{}']
|
||||||
|
endif
|
||||||
|
if has('packages')
|
||||||
|
call filter(paths, 'v:val !~# "^pack/[^/]*/start/[^/]*$"')
|
||||||
|
endif
|
||||||
|
let static = '^\%([$~\\/]\|\w:[\\/]\)[^{}*]*$'
|
||||||
|
for path in filter(copy(paths), 'v:val =~# static')
|
||||||
|
call pathogen#surround(path)
|
||||||
|
endfor
|
||||||
|
for path in filter(copy(paths), 'v:val !~# static')
|
||||||
|
if path =~# '^\%([$~\\/]\|\w:[\\/]\)'
|
||||||
|
call pathogen#surround(path)
|
||||||
|
else
|
||||||
|
call pathogen#interpose(path)
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
call pathogen#cycle_filetype()
|
||||||
|
if pathogen#is_disabled($MYVIMRC)
|
||||||
|
return 'finish'
|
||||||
|
endif
|
||||||
|
return ''
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Split a path into a list.
|
||||||
|
function! pathogen#split(path) abort
|
||||||
|
if type(a:path) == type([]) | return a:path | endif
|
||||||
|
if empty(a:path) | return [] | endif
|
||||||
|
let split = split(a:path,'\\\@<!\%(\\\\\)*\zs,')
|
||||||
|
return map(split,'substitute(v:val,''\\\([\\,]\)'',''\1'',"g")')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Convert a list to a path.
|
||||||
|
function! pathogen#join(...) abort
|
||||||
|
if type(a:1) == type(1) && a:1
|
||||||
|
let i = 1
|
||||||
|
let space = ' '
|
||||||
|
else
|
||||||
|
let i = 0
|
||||||
|
let space = ''
|
||||||
|
endif
|
||||||
|
let path = ""
|
||||||
|
while i < a:0
|
||||||
|
if type(a:000[i]) == type([])
|
||||||
|
let list = a:000[i]
|
||||||
|
let j = 0
|
||||||
|
while j < len(list)
|
||||||
|
let escaped = substitute(list[j],'[,'.space.']\|\\[\,'.space.']\@=','\\&','g')
|
||||||
|
let path .= ',' . escaped
|
||||||
|
let j += 1
|
||||||
|
endwhile
|
||||||
|
else
|
||||||
|
let path .= "," . a:000[i]
|
||||||
|
endif
|
||||||
|
let i += 1
|
||||||
|
endwhile
|
||||||
|
return substitute(path,'^,','','')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Convert a list to a path with escaped spaces for 'path', 'tag', etc.
|
||||||
|
function! pathogen#legacyjoin(...) abort
|
||||||
|
return call('pathogen#join',[1] + a:000)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Turn filetype detection off and back on again if it was already enabled.
|
||||||
|
function! pathogen#cycle_filetype() abort
|
||||||
|
if exists('g:did_load_filetypes')
|
||||||
|
filetype off
|
||||||
|
filetype on
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Check if a bundle is disabled. A bundle is considered disabled if its
|
||||||
|
" basename or full name is included in the list g:pathogen_blacklist or the
|
||||||
|
" comma delimited environment variable $VIMBLACKLIST.
|
||||||
|
function! pathogen#is_disabled(path) abort
|
||||||
|
if a:path =~# '\~$'
|
||||||
|
return 1
|
||||||
|
endif
|
||||||
|
let sep = pathogen#slash()
|
||||||
|
let blacklist = get(g:, 'pathogen_blacklist', get(g:, 'pathogen_disabled', [])) + pathogen#split($VIMBLACKLIST)
|
||||||
|
if !empty(blacklist)
|
||||||
|
call map(blacklist, 'substitute(v:val, "[\\/]$", "", "")')
|
||||||
|
endif
|
||||||
|
return index(blacklist, fnamemodify(a:path, ':t')) != -1 || index(blacklist, a:path) != -1
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Prepend the given directory to the runtime path and append its corresponding
|
||||||
|
" after directory. Curly braces are expanded with pathogen#expand().
|
||||||
|
function! pathogen#surround(path) abort
|
||||||
|
let sep = pathogen#slash()
|
||||||
|
let rtp = pathogen#split(&rtp)
|
||||||
|
let path = fnamemodify(a:path, ':s?[\\/]\=$??')
|
||||||
|
let before = filter(pathogen#expand(path), '!pathogen#is_disabled(v:val)')
|
||||||
|
let after = filter(reverse(pathogen#expand(path, sep.'after')), '!pathogen#is_disabled(v:val[0:-7])')
|
||||||
|
call filter(rtp, 'index(before + after, v:val) == -1')
|
||||||
|
let &rtp = pathogen#join(before, rtp, after)
|
||||||
|
return &rtp
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" For each directory in the runtime path, add a second entry with the given
|
||||||
|
" argument appended. Curly braces are expanded with pathogen#expand().
|
||||||
|
function! pathogen#interpose(name) abort
|
||||||
|
let sep = pathogen#slash()
|
||||||
|
let name = a:name
|
||||||
|
if has_key(s:done_bundles, name)
|
||||||
|
return ""
|
||||||
|
endif
|
||||||
|
let s:done_bundles[name] = 1
|
||||||
|
let list = []
|
||||||
|
for dir in pathogen#split(&rtp)
|
||||||
|
if dir =~# '\<after$'
|
||||||
|
let list += reverse(filter(pathogen#expand(dir[0:-6].name, sep.'after'), '!pathogen#is_disabled(v:val[0:-7])')) + [dir]
|
||||||
|
else
|
||||||
|
let list += [dir] + filter(pathogen#expand(dir.sep.name), '!pathogen#is_disabled(v:val)')
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
let &rtp = pathogen#join(pathogen#uniq(list))
|
||||||
|
return 1
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
let s:done_bundles = {}
|
||||||
|
|
||||||
|
" Invoke :helptags on all non-$VIM doc directories in runtimepath.
|
||||||
|
function! pathogen#helptags() abort
|
||||||
|
let sep = pathogen#slash()
|
||||||
|
for glob in pathogen#split(&rtp)
|
||||||
|
for dir in map(split(glob(glob), "\n"), 'v:val.sep."/doc/".sep')
|
||||||
|
if (dir)[0 : strlen($VIMRUNTIME)] !=# $VIMRUNTIME.sep && filewritable(dir) == 2 && !empty(split(glob(dir.'*.txt'))) && (!filereadable(dir.'tags') || filewritable(dir.'tags'))
|
||||||
|
silent! execute 'helptags' pathogen#fnameescape(dir)
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
endfor
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
command! -bar Helptags :call pathogen#helptags()
|
||||||
|
|
||||||
|
" Execute the given command. This is basically a backdoor for --remote-expr.
|
||||||
|
function! pathogen#execute(...) abort
|
||||||
|
for command in a:000
|
||||||
|
execute command
|
||||||
|
endfor
|
||||||
|
return ''
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Section: Unofficial
|
||||||
|
|
||||||
|
function! pathogen#is_absolute(path) abort
|
||||||
|
return a:path =~# (has('win32') ? '^\%([\\/]\|\w:\)[\\/]\|^[~$]' : '^[/~$]')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Given a string, returns all possible permutations of comma delimited braced
|
||||||
|
" alternatives of that string. pathogen#expand('/{a,b}/{c,d}') yields
|
||||||
|
" ['/a/c', '/a/d', '/b/c', '/b/d']. Empty braces are treated as a wildcard
|
||||||
|
" and globbed. Actual globs are preserved.
|
||||||
|
function! pathogen#expand(pattern, ...) abort
|
||||||
|
let after = a:0 ? a:1 : ''
|
||||||
|
let pattern = substitute(a:pattern, '^[~$][^\/]*', '\=expand(submatch(0))', '')
|
||||||
|
if pattern =~# '{[^{}]\+}'
|
||||||
|
let [pre, pat, post] = split(substitute(pattern, '\(.\{-\}\){\([^{}]\+\)}\(.*\)', "\\1\001\\2\001\\3", ''), "\001", 1)
|
||||||
|
let found = map(split(pat, ',', 1), 'pre.v:val.post')
|
||||||
|
let results = []
|
||||||
|
for pattern in found
|
||||||
|
call extend(results, pathogen#expand(pattern))
|
||||||
|
endfor
|
||||||
|
elseif pattern =~# '{}'
|
||||||
|
let pat = matchstr(pattern, '^.*{}[^*]*\%($\|[\\/]\)')
|
||||||
|
let post = pattern[strlen(pat) : -1]
|
||||||
|
let results = map(split(glob(substitute(pat, '{}', '*', 'g')), "\n"), 'v:val.post')
|
||||||
|
else
|
||||||
|
let results = [pattern]
|
||||||
|
endif
|
||||||
|
let vf = pathogen#slash() . 'vimfiles'
|
||||||
|
call map(results, 'v:val =~# "\\*" ? v:val.after : isdirectory(v:val.vf.after) ? v:val.vf.after : isdirectory(v:val.after) ? v:val.after : ""')
|
||||||
|
return filter(results, '!empty(v:val)')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" \ on Windows unless shellslash is set, / everywhere else.
|
||||||
|
function! pathogen#slash() abort
|
||||||
|
return !exists("+shellslash") || &shellslash ? '/' : '\'
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! pathogen#separator() abort
|
||||||
|
return pathogen#slash()
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Convenience wrapper around glob() which returns a list.
|
||||||
|
function! pathogen#glob(pattern) abort
|
||||||
|
let files = split(glob(a:pattern),"\n")
|
||||||
|
return map(files,'substitute(v:val,"[".pathogen#slash()."/]$","","")')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Like pathogen#glob(), only limit the results to directories.
|
||||||
|
function! pathogen#glob_directories(pattern) abort
|
||||||
|
return filter(pathogen#glob(a:pattern),'isdirectory(v:val)')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Remove duplicates from a list.
|
||||||
|
function! pathogen#uniq(list) abort
|
||||||
|
let i = 0
|
||||||
|
let seen = {}
|
||||||
|
while i < len(a:list)
|
||||||
|
if (a:list[i] ==# '' && exists('empty')) || has_key(seen,a:list[i])
|
||||||
|
call remove(a:list,i)
|
||||||
|
elseif a:list[i] ==# ''
|
||||||
|
let i += 1
|
||||||
|
let empty = 1
|
||||||
|
else
|
||||||
|
let seen[a:list[i]] = 1
|
||||||
|
let i += 1
|
||||||
|
endif
|
||||||
|
endwhile
|
||||||
|
return a:list
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Backport of fnameescape().
|
||||||
|
function! pathogen#fnameescape(string) abort
|
||||||
|
if exists('*fnameescape')
|
||||||
|
return fnameescape(a:string)
|
||||||
|
elseif a:string ==# '-'
|
||||||
|
return '\-'
|
||||||
|
else
|
||||||
|
return substitute(escape(a:string," \t\n*?[{`$\\%#'\"|!<"),'^[+>]','\\&','')
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Like findfile(), but hardcoded to use the runtimepath.
|
||||||
|
function! pathogen#runtime_findfile(file,count) abort
|
||||||
|
let rtp = pathogen#join(1,pathogen#split(&rtp))
|
||||||
|
let file = findfile(a:file,rtp,a:count)
|
||||||
|
if file ==# ''
|
||||||
|
return ''
|
||||||
|
else
|
||||||
|
return fnamemodify(file,':p')
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" vim:set et sw=2 foldmethod=expr foldexpr=getline(v\:lnum)=~'^\"\ Section\:'?'>1'\:getline(v\:lnum)=~#'^fu'?'a1'\:getline(v\:lnum)=~#'^endf'?'s1'\:'=':
|
1
vim/.vim/bundle/goyo
Submodule
1
vim/.vim/bundle/goyo
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 057fe68e442e7d4ffa45a3c992389e19e64abc7c
|
1
vim/.vim/bundle/vim-markdown
Submodule
1
vim/.vim/bundle/vim-markdown
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 691d961a643064ee1feddba8371ff12e44678f5a
|
1
vim/.vim/bundle/vim-mucomplete
Submodule
1
vim/.vim/bundle/vim-mucomplete
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit a1cba9c85b830eaef6e806d267f1f08dcb64cf87
|
1
vim/.vim/bundle/vim-surround
Submodule
1
vim/.vim/bundle/vim-surround
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 597068870b8f093a8b2d11536c62ff31222ee8d0
|
362
vim/.vim/colors/synthwave.vim
Normal file
362
vim/.vim/colors/synthwave.vim
Normal file
@ -0,0 +1,362 @@
|
|||||||
|
" synthwave.vim -- Vim color scheme.
|
||||||
|
" Author: Dean Thomson
|
||||||
|
" Webpage: https://fsociety.info
|
||||||
|
" Description: A colorscheme
|
||||||
|
|
||||||
|
hi clear
|
||||||
|
|
||||||
|
set background=dark
|
||||||
|
|
||||||
|
if exists("syntax_on")
|
||||||
|
syntax reset
|
||||||
|
endif
|
||||||
|
|
||||||
|
let colors_name = "synthwave"
|
||||||
|
|
||||||
|
" highlight groups {{{
|
||||||
|
|
||||||
|
if &t_Co >= 256 || has("gui_running")
|
||||||
|
hi Normal ctermbg=0 ctermfg=7 cterm=NONE guibg=#312e39 guifg=#c0a79a gui=NONE
|
||||||
|
set background=dark
|
||||||
|
hi NonText ctermbg=NONE ctermfg=0 cterm=NONE guibg=NONE guifg=#33303b gui=NONE
|
||||||
|
hi Comment ctermbg=NONE ctermfg=8 cterm=NONE guibg=NONE guifg=#4f4b58 gui=NONE
|
||||||
|
hi Constant ctermbg=NONE ctermfg=3 cterm=NONE guibg=NONE guifg=#71949a gui=NONE
|
||||||
|
hi Error ctermbg=1 ctermfg=7 cterm=NONE guibg=#87404f guifg=#c0a79a gui=NONE
|
||||||
|
hi Identifier ctermbg=NONE ctermfg=1 cterm=NONE guibg=NONE guifg=#87404f gui=NONE
|
||||||
|
hi Ignore ctermbg=8 ctermfg=0 cterm=NONE guibg=#4f4b58 guifg=#33303b gui=NONE
|
||||||
|
hi PreProc ctermbg=NONE ctermfg=3 cterm=NONE guibg=NONE guifg=#71949a gui=NONE
|
||||||
|
hi Special ctermbg=NONE ctermfg=6 cterm=NONE guibg=NONE guifg=#554757 gui=NONE
|
||||||
|
hi Statement ctermbg=NONE ctermfg=1 cterm=NONE guibg=NONE guifg=#87404f gui=NONE
|
||||||
|
hi String ctermbg=NONE ctermfg=2 cterm=NONE guibg=NONE guifg=#4c9882 gui=NONE
|
||||||
|
hi Number ctermbg=NONE ctermfg=3 cterm=NONE guibg=NONE guifg=#71949a gui=NONE
|
||||||
|
hi Todo ctermbg=8 ctermfg=3 cterm=NONE guibg=#4f4b58 guifg=#71949a gui=NONE
|
||||||
|
hi Type ctermbg=NONE ctermfg=3 cterm=NONE guibg=NONE guifg=#71949a gui=NONE
|
||||||
|
hi Underlined ctermbg=NONE ctermfg=1 cterm=underline guibg=NONE guifg=#87404f gui=underline
|
||||||
|
hi StatusLine ctermbg=7 ctermfg=0 cterm=NONE guibg=#c0a79a guifg=#33303b gui=NONE
|
||||||
|
hi StatusLineNC ctermbg=NONE ctermfg=NONE cterm=NONE guibg=NONE guifg=NONE gui=NONE
|
||||||
|
hi TabLine ctermbg=NONE ctermfg=8 cterm=NONE guibg=NONE guifg=#4f4b58 gui=NONE
|
||||||
|
hi TabLineFill ctermbg=NONE ctermfg=8 cterm=NONE guibg=NONE guifg=#4f4b58 gui=NONE
|
||||||
|
hi TabLineSel ctermbg=4 ctermfg=0 cterm=NONE guibg=#615772 guifg=#33303b gui=NONE
|
||||||
|
hi TermCursorNC ctermbg=3 ctermfg=0 cterm=NONE guibg=#71949a guifg=#33303b gui=NONE
|
||||||
|
hi VertSplit ctermbg=NONE ctermfg=NONE cterm=NONE guibg=NONE guifg=NONE gui=NONE
|
||||||
|
hi Title ctermbg=NONE ctermfg=4 cterm=NONE guibg=NONE guifg=#615772 gui=NONE
|
||||||
|
hi CursorLine ctermbg=NONE ctermfg=8 cterm=NONE guibg=NONE guifg=#4f4b58 gui=NONE
|
||||||
|
hi LineNr ctermbg=NONE ctermfg=8 cterm=NONE guibg=NONE guifg=#4f4b58 gui=NONE
|
||||||
|
hi CursorLineNr ctermbg=NONE ctermfg=8 cterm=NONE guibg=NONE guifg=#4f4b58 gui=NONE
|
||||||
|
hi helpLeadBlank ctermbg=NONE ctermfg=7 cterm=NONE guibg=NONE guifg=#c0a79a gui=NONE
|
||||||
|
hi helpNormal ctermbg=NONE ctermfg=7 cterm=NONE guibg=NONE guifg=#c0a79a gui=NONE
|
||||||
|
hi Visual ctermbg=8 ctermfg=0 cterm=NONE guibg=#4f4b58 guifg=#33303b gui=NONE
|
||||||
|
hi VisualNOS ctermbg=NONE ctermfg=1 cterm=NONE guibg=NONE guifg=#87404f gui=NONE
|
||||||
|
hi Pmenu ctermbg=8 ctermfg=7 cterm=NONE guibg=#4f4b58 guifg=#c0a79a gui=NONE
|
||||||
|
hi PmenuSbar ctermbg=6 ctermfg=7 cterm=NONE guibg=#554757 guifg=#c0a79a gui=NONE
|
||||||
|
hi PmenuSel ctermbg=4 ctermfg=0 cterm=NONE guibg=#615772 guifg=#33303b gui=NONE
|
||||||
|
hi PmenuThumb ctermbg=8 ctermfg=8 cterm=NONE guibg=#4f4b58 guifg=#70838c gui=NONE
|
||||||
|
hi FoldColumn ctermbg=NONE ctermfg=7 cterm=NONE guibg=NONE guifg=#c0a79a gui=NONE
|
||||||
|
hi Folded ctermbg=NONE ctermfg=8 cterm=NONE guibg=NONE guifg=#4f4b58 gui=NONE
|
||||||
|
hi WildMenu ctermbg=2 ctermfg=0 cterm=NONE guibg=#4c9882 guifg=#33303b gui=NONE
|
||||||
|
hi SpecialKey ctermbg=NONE ctermfg=8 cterm=NONE guibg=NONE guifg=#4f4b58 gui=NONE
|
||||||
|
hi DiffAdd ctermbg=NONE ctermfg=2 cterm=NONE guibg=NONE guifg=#4c9882 gui=NONE
|
||||||
|
hi DiffChange ctermbg=NONE ctermfg=8 cterm=NONE guibg=NONE guifg=#4f4b58 gui=NONE
|
||||||
|
hi DiffDelete ctermbg=NONE ctermfg=1 cterm=NONE guibg=NONE guifg=#87404f gui=NONE
|
||||||
|
hi DiffText ctermbg=NONE ctermfg=4 cterm=NONE guibg=NONE guifg=#615772 gui=NONE
|
||||||
|
hi IncSearch ctermbg=3 ctermfg=0 cterm=NONE guibg=#71949a guifg=#33303b gui=NONE
|
||||||
|
hi Search ctermbg=3 ctermfg=0 cterm=NONE guibg=#71949a guifg=#33303b gui=NONE
|
||||||
|
hi Directory ctermbg=NONE ctermfg=4 cterm=NONE guibg=NONE guifg=#615772 gui=NONE
|
||||||
|
hi MatchParen ctermbg=8 ctermfg=0 cterm=NONE guibg=#4f4b58 guifg=#33303b gui=NONE
|
||||||
|
hi ColorColumn ctermbg=4 ctermfg=4 cterm=NONE guibg=#615772 guifg=#7c9fa6 gui=NONE
|
||||||
|
hi signColumn ctermbg=NONE ctermfg=4 cterm=NONE guibg=NONE guifg=#615772 gui=NONE
|
||||||
|
hi ErrorMsg ctermbg=NONE ctermfg=8 cterm=NONE guibg=NONE guifg=#4f4b58 gui=NONE
|
||||||
|
hi ModeMsg ctermbg=NONE ctermfg=2 cterm=NONE guibg=NONE guifg=#4c9882 gui=NONE
|
||||||
|
hi MoreMsg ctermbg=NONE ctermfg=2 cterm=NONE guibg=NONE guifg=#4c9882 gui=NONE
|
||||||
|
hi Question ctermbg=NONE ctermfg=4 cterm=NONE guibg=NONE guifg=#615772 gui=NONE
|
||||||
|
hi WarningMsg ctermbg=1 ctermfg=0 cterm=NONE guibg=#87404f guifg=#33303b gui=NONE
|
||||||
|
hi Cursor ctermbg=NONE ctermfg=8 cterm=NONE guibg=NONE guifg=#4f4b58 gui=NONE
|
||||||
|
hi Structure ctermbg=NONE ctermfg=5 cterm=NONE guibg=NONE guifg=#783e57 gui=NONE
|
||||||
|
hi CursorColumn ctermbg=8 ctermfg=7 cterm=NONE guibg=#4f4b58 guifg=#c0a79a gui=NONE
|
||||||
|
hi ModeMsg ctermbg=NONE ctermfg=7 cterm=NONE guibg=NONE guifg=#c0a79a gui=NONE
|
||||||
|
hi SpellBad ctermbg=NONE ctermfg=1 cterm=underline guibg=NONE guifg=#87404f gui=underline guisp=#99736e
|
||||||
|
hi SpellCap ctermbg=NONE ctermfg=4 cterm=underline guibg=NONE guifg=#615772 gui=underline guisp=#7c9fa6
|
||||||
|
hi SpellLocal ctermbg=NONE ctermfg=5 cterm=underline guibg=NONE guifg=#783e57 gui=underline guisp=#BF9C86
|
||||||
|
hi SpellRare ctermbg=NONE ctermfg=6 cterm=underline guibg=NONE guifg=#554757 gui=underline guisp=#99BFBA
|
||||||
|
hi Boolean ctermbg=NONE ctermfg=5 cterm=NONE guibg=NONE guifg=#783e57 gui=NONE
|
||||||
|
hi Character ctermbg=NONE ctermfg=1 cterm=NONE guibg=NONE guifg=#87404f gui=NONE
|
||||||
|
hi Conditional ctermbg=NONE ctermfg=5 cterm=NONE guibg=NONE guifg=#783e57 gui=NONE
|
||||||
|
hi Define ctermbg=NONE ctermfg=5 cterm=NONE guibg=NONE guifg=#783e57 gui=NONE
|
||||||
|
hi Delimiter ctermbg=NONE ctermfg=5 cterm=NONE guibg=NONE guifg=#783e57 gui=NONE
|
||||||
|
hi Float ctermbg=NONE ctermfg=5 cterm=NONE guibg=NONE guifg=#783e57 gui=NONE
|
||||||
|
hi Include ctermbg=NONE ctermfg=4 cterm=NONE guibg=NONE guifg=#615772 gui=NONE
|
||||||
|
hi Keyword ctermbg=NONE ctermfg=5 cterm=NONE guibg=NONE guifg=#783e57 gui=NONE
|
||||||
|
hi Label ctermbg=NONE ctermfg=3 cterm=NONE guibg=NONE guifg=#71949a gui=NONE
|
||||||
|
hi Operator ctermbg=NONE ctermfg=7 cterm=NONE guibg=NONE guifg=#c0a79a gui=NONE
|
||||||
|
hi Repeat ctermbg=NONE ctermfg=3 cterm=NONE guibg=NONE guifg=#71949a gui=NONE
|
||||||
|
hi SpecialChar ctermbg=NONE ctermfg=5 cterm=NONE guibg=NONE guifg=#783e57 gui=NONE
|
||||||
|
hi Tag ctermbg=NONE ctermfg=3 cterm=NONE guibg=NONE guifg=#71949a gui=NONE
|
||||||
|
hi Typedef ctermbg=NONE ctermfg=3 cterm=NONE guibg=NONE guifg=#71949a gui=NONE
|
||||||
|
hi vimUserCommand ctermbg=NONE ctermfg=1 cterm=BOLD guibg=NONE guifg=#87404f gui=BOLD
|
||||||
|
hi link vimMap vimUserCommand
|
||||||
|
hi link vimLet vimUserCommand
|
||||||
|
hi link vimCommand vimUserCommand
|
||||||
|
hi link vimFTCmd vimUserCommand
|
||||||
|
hi link vimAutoCmd vimUserCommand
|
||||||
|
hi link vimNotFunc vimUserCommand
|
||||||
|
hi vimNotation ctermbg=NONE ctermfg=4 cterm=NONE guibg=NONE guifg=#615772 gui=NONE
|
||||||
|
hi vimMapModKey ctermbg=NONE ctermfg=4 cterm=NONE guibg=NONE guifg=#615772 gui=NONE
|
||||||
|
hi vimBracket ctermbg=NONE ctermfg=7 cterm=NONE guibg=NONE guifg=#c0a79a gui=NONE
|
||||||
|
hi vimCommentString ctermbg=NONE ctermfg=8 cterm=NONE guibg=NONE guifg=#4f4b58 gui=NONE
|
||||||
|
hi htmlLink ctermbg=NONE ctermfg=1 cterm=underline guibg=NONE guifg=#87404f gui=underline
|
||||||
|
hi htmlBold ctermbg=NONE ctermfg=3 cterm=NONE guibg=NONE guifg=#71949a gui=NONE
|
||||||
|
hi htmlItalic ctermbg=NONE ctermfg=5 cterm=NONE guibg=NONE guifg=#783e57 gui=NONE
|
||||||
|
hi htmlEndTag ctermbg=NONE ctermfg=7 cterm=NONE guibg=NONE guifg=#c0a79a gui=NONE
|
||||||
|
hi htmlTag ctermbg=NONE ctermfg=7 cterm=NONE guibg=NONE guifg=#c0a79a gui=NONE
|
||||||
|
hi htmlTagName ctermbg=NONE ctermfg=1 cterm=BOLD guibg=NONE guifg=#87404f gui=BOLD
|
||||||
|
hi htmlH1 ctermbg=NONE ctermfg=7 cterm=BOLD guibg=NONE guifg=#c0a79a gui=BOLD
|
||||||
|
hi link htmlH2 htmlH1
|
||||||
|
hi link htmlH3 htmlH1
|
||||||
|
hi link htmlH4 htmlH1
|
||||||
|
hi link htmlH5 htmlH1
|
||||||
|
hi link htmlH6 htmlH1
|
||||||
|
hi cssMultiColumnAttr ctermbg=NONE ctermfg=2 cterm=NONE guibg=NONE guifg=#4c9882 gui=NONE
|
||||||
|
hi link cssFontAttr cssMultiColumnAttr
|
||||||
|
hi link cssFlexibleBoxAttr cssMultiColumnAttr
|
||||||
|
hi cssBraces ctermbg=NONE ctermfg=7 cterm=NONE guibg=NONE guifg=#c0a79a gui=NONE
|
||||||
|
hi link cssAttrComma cssBraces
|
||||||
|
hi cssValueLength ctermbg=NONE ctermfg=7 cterm=NONE guibg=NONE guifg=#c0a79a gui=NONE
|
||||||
|
hi cssUnitDecorators ctermbg=NONE ctermfg=7 cterm=NONE guibg=NONE guifg=#c0a79a gui=NONE
|
||||||
|
hi cssValueNumber ctermbg=NONE ctermfg=7 cterm=NONE guibg=NONE guifg=#c0a79a gui=NONE
|
||||||
|
hi link cssValueLength cssValueNumber
|
||||||
|
hi cssNoise ctermbg=NONE ctermfg=8 cterm=NONE guibg=NONE guifg=#4f4b58 gui=NONE
|
||||||
|
hi cssTagName ctermbg=NONE ctermfg=1 cterm=NONE guibg=NONE guifg=#87404f gui=NONE
|
||||||
|
hi cssFunctionName ctermbg=NONE ctermfg=4 cterm=NONE guibg=NONE guifg=#615772 gui=NONE
|
||||||
|
hi scssSelectorChar ctermbg=NONE ctermfg=7 cterm=NONE guibg=NONE guifg=#c0a79a gui=NONE
|
||||||
|
hi scssAttribute ctermbg=NONE ctermfg=7 cterm=NONE guibg=NONE guifg=#c0a79a gui=NONE
|
||||||
|
hi link scssDefinition cssNoise
|
||||||
|
hi sassidChar ctermbg=NONE ctermfg=1 cterm=NONE guibg=NONE guifg=#87404f gui=NONE
|
||||||
|
hi sassClassChar ctermbg=NONE ctermfg=5 cterm=NONE guibg=NONE guifg=#783e57 gui=NONE
|
||||||
|
hi sassInclude ctermbg=NONE ctermfg=5 cterm=NONE guibg=NONE guifg=#783e57 gui=NONE
|
||||||
|
hi sassMixing ctermbg=NONE ctermfg=5 cterm=NONE guibg=NONE guifg=#783e57 gui=NONE
|
||||||
|
hi sassMixinName ctermbg=NONE ctermfg=4 cterm=NONE guibg=NONE guifg=#615772 gui=NONE
|
||||||
|
hi javaScript ctermbg=NONE ctermfg=7 cterm=NONE guibg=NONE guifg=#c0a79a gui=NONE
|
||||||
|
hi javaScriptBraces ctermbg=NONE ctermfg=7 cterm=NONE guibg=NONE guifg=#c0a79a gui=NONE
|
||||||
|
hi javaScriptNumber ctermbg=NONE ctermfg=5 cterm=NONE guibg=NONE guifg=#783e57 gui=NONE
|
||||||
|
hi markdownAutomaticLink ctermbg=NONE ctermfg=1 cterm=underline guibg=NONE guifg=#87404f gui=underline
|
||||||
|
hi link markdownUrl markdownAutomaticLink
|
||||||
|
hi markdownError ctermbg=NONE ctermfg=7 cterm=NONE guibg=NONE guifg=#c0a79a gui=NONE
|
||||||
|
hi markdownCode ctermbg=NONE ctermfg=3 cterm=NONE guibg=NONE guifg=#71949a gui=NONE
|
||||||
|
hi markdownCodeBlock ctermbg=NONE ctermfg=3 cterm=NONE guibg=NONE guifg=#71949a gui=NONE
|
||||||
|
hi markdownCodeDelimiter ctermbg=NONE ctermfg=5 cterm=NONE guibg=NONE guifg=#783e57 gui=NONE
|
||||||
|
hi xdefaultsValue ctermbg=NONE ctermfg=7 cterm=NONE guibg=NONE guifg=#c0a79a gui=NONE
|
||||||
|
hi rubyInclude ctermbg=NONE ctermfg=4 cterm=NONE guibg=NONE guifg=#615772 gui=NONE
|
||||||
|
hi rubyDefine ctermbg=NONE ctermfg=5 cterm=NONE guibg=NONE guifg=#783e57 gui=NONE
|
||||||
|
hi rubyFunction ctermbg=NONE ctermfg=4 cterm=NONE guibg=NONE guifg=#615772 gui=NONE
|
||||||
|
hi rubyStringDelimiter ctermbg=NONE ctermfg=2 cterm=NONE guibg=NONE guifg=#4c9882 gui=NONE
|
||||||
|
hi rubyInteger ctermbg=NONE ctermfg=3 cterm=NONE guibg=NONE guifg=#71949a gui=NONE
|
||||||
|
hi rubyAttribute ctermbg=NONE ctermfg=4 cterm=NONE guibg=NONE guifg=#615772 gui=NONE
|
||||||
|
hi rubyConstant ctermbg=NONE ctermfg=3 cterm=NONE guibg=NONE guifg=#71949a gui=NONE
|
||||||
|
hi rubyInterpolation ctermbg=NONE ctermfg=2 cterm=NONE guibg=NONE guifg=#4c9882 gui=NONE
|
||||||
|
hi rubyInterpolationDelimiter ctermbg=NONE ctermfg=3 cterm=NONE guibg=NONE guifg=#71949a gui=NONE
|
||||||
|
hi rubyRegexp ctermbg=NONE ctermfg=6 cterm=NONE guibg=NONE guifg=#554757 gui=NONE
|
||||||
|
hi rubySymbol ctermbg=NONE ctermfg=2 cterm=NONE guibg=NONE guifg=#4c9882 gui=NONE
|
||||||
|
hi rubyTodo ctermbg=NONE ctermfg=8 cterm=NONE guibg=NONE guifg=#4f4b58 gui=NONE
|
||||||
|
hi rubyRegexpAnchor ctermbg=NONE ctermfg=7 cterm=NONE guibg=NONE guifg=#c0a79a gui=NONE
|
||||||
|
hi link rubyRegexpQuantifier rubyRegexpAnchor
|
||||||
|
hi pythonOperator ctermbg=NONE ctermfg=5 cterm=NONE guibg=NONE guifg=#783e57 gui=NONE
|
||||||
|
hi pythonFunction ctermbg=NONE ctermfg=4 cterm=NONE guibg=NONE guifg=#615772 gui=NONE
|
||||||
|
hi pythonRepeat ctermbg=NONE ctermfg=5 cterm=NONE guibg=NONE guifg=#783e57 gui=NONE
|
||||||
|
hi pythonStatement ctermbg=NONE ctermfg=1 cterm=Bold guibg=NONE guifg=#87404f gui=Bold
|
||||||
|
hi pythonBuiltIn ctermbg=NONE ctermfg=4 cterm=NONE guibg=NONE guifg=#615772 gui=NONE
|
||||||
|
hi phpMemberSelector ctermbg=NONE ctermfg=7 cterm=NONE guibg=NONE guifg=#c0a79a gui=NONE
|
||||||
|
hi phpComparison ctermbg=NONE ctermfg=7 cterm=NONE guibg=NONE guifg=#c0a79a gui=NONE
|
||||||
|
hi phpParent ctermbg=NONE ctermfg=7 cterm=NONE guibg=NONE guifg=#c0a79a gui=NONE
|
||||||
|
hi cOperator ctermbg=NONE ctermfg=6 cterm=NONE guibg=NONE guifg=#554757 gui=NONE
|
||||||
|
hi cPreCondit ctermbg=NONE ctermfg=5 cterm=NONE guibg=NONE guifg=#783e57 gui=NONE
|
||||||
|
hi SignifySignAdd ctermbg=NONE ctermfg=2 cterm=NONE guibg=NONE guifg=#4c9882 gui=NONE
|
||||||
|
hi SignifySignChange ctermbg=NONE ctermfg=4 cterm=NONE guibg=NONE guifg=#615772 gui=NONE
|
||||||
|
hi SignifySignDelete ctermbg=NONE ctermfg=1 cterm=NONE guibg=NONE guifg=#87404f gui=NONE
|
||||||
|
hi NERDTreeDirSlash ctermbg=NONE ctermfg=4 cterm=NONE guibg=NONE guifg=#615772 gui=NONE
|
||||||
|
hi NERDTreeExecFile ctermbg=NONE ctermfg=7 cterm=NONE guibg=NONE guifg=#c0a79a gui=NONE
|
||||||
|
elseif &t_Co == 8 || $TERM !~# '^linux' || &t_Co == 16
|
||||||
|
set t_Co=16
|
||||||
|
hi Normal ctermbg=black ctermfg=white cterm=NONE
|
||||||
|
set background=dark
|
||||||
|
hi NonText ctermbg=NONE ctermfg=black cterm=NONE
|
||||||
|
hi Comment ctermbg=NONE ctermfg=gray cterm=NONE
|
||||||
|
hi Constant ctermbg=NONE ctermfg=yellow cterm=NONE
|
||||||
|
hi Error ctermbg=red ctermfg=white cterm=NONE
|
||||||
|
hi Identifier ctermbg=NONE ctermfg=red cterm=NONE
|
||||||
|
hi Ignore ctermbg=gray ctermfg=black cterm=NONE
|
||||||
|
hi PreProc ctermbg=NONE ctermfg=yellow cterm=NONE
|
||||||
|
hi Special ctermbg=NONE ctermfg=cyan cterm=NONE
|
||||||
|
hi Statement ctermbg=NONE ctermfg=red cterm=NONE
|
||||||
|
hi String ctermbg=NONE ctermfg=green cterm=NONE
|
||||||
|
hi Number ctermbg=NONE ctermfg=yellow cterm=NONE
|
||||||
|
hi Todo ctermbg=gray ctermfg=yellow cterm=NONE
|
||||||
|
hi Type ctermbg=NONE ctermfg=yellow cterm=NONE
|
||||||
|
hi Underlined ctermbg=NONE ctermfg=red cterm=underline
|
||||||
|
hi StatusLine ctermbg=white ctermfg=black cterm=NONE
|
||||||
|
hi StatusLineNC ctermbg=NONE ctermfg=NONE cterm=NONE
|
||||||
|
hi TabLine ctermbg=NONE ctermfg=gray cterm=NONE
|
||||||
|
hi TabLineFill ctermbg=NONE ctermfg=gray cterm=NONE
|
||||||
|
hi TabLineSel ctermbg=blue ctermfg=black cterm=NONE
|
||||||
|
hi TermCursorNC ctermbg=yellow ctermfg=black cterm=NONE
|
||||||
|
hi VertSplit ctermbg=NONE ctermfg=NONE cterm=NONE
|
||||||
|
hi Title ctermbg=NONE ctermfg=blue cterm=NONE
|
||||||
|
hi CursorLine ctermbg=NONE ctermfg=gray cterm=NONE
|
||||||
|
hi LineNr ctermbg=NONE ctermfg=gray cterm=NONE
|
||||||
|
hi CursorLineNr ctermbg=NONE ctermfg=gray cterm=NONE
|
||||||
|
hi helpLeadBlank ctermbg=NONE ctermfg=white cterm=NONE
|
||||||
|
hi helpNormal ctermbg=NONE ctermfg=white cterm=NONE
|
||||||
|
hi Visual ctermbg=gray ctermfg=black cterm=NONE
|
||||||
|
hi VisualNOS ctermbg=NONE ctermfg=red cterm=NONE
|
||||||
|
hi Pmenu ctermbg=gray ctermfg=white cterm=NONE
|
||||||
|
hi PmenuSbar ctermbg=cyan ctermfg=white cterm=NONE
|
||||||
|
hi PmenuSel ctermbg=blue ctermfg=black cterm=NONE
|
||||||
|
hi PmenuThumb ctermbg=gray ctermfg=gray cterm=NONE
|
||||||
|
hi FoldColumn ctermbg=NONE ctermfg=white cterm=NONE
|
||||||
|
hi Folded ctermbg=NONE ctermfg=gray cterm=NONE
|
||||||
|
hi WildMenu ctermbg=green ctermfg=black cterm=NONE
|
||||||
|
hi SpecialKey ctermbg=NONE ctermfg=gray cterm=NONE
|
||||||
|
hi DiffAdd ctermbg=NONE ctermfg=green cterm=NONE
|
||||||
|
hi DiffChange ctermbg=NONE ctermfg=gray cterm=NONE
|
||||||
|
hi DiffDelete ctermbg=NONE ctermfg=red cterm=NONE
|
||||||
|
hi DiffText ctermbg=NONE ctermfg=blue cterm=NONE
|
||||||
|
hi IncSearch ctermbg=yellow ctermfg=black cterm=NONE
|
||||||
|
hi Search ctermbg=yellow ctermfg=black cterm=NONE
|
||||||
|
hi Directory ctermbg=NONE ctermfg=blue cterm=NONE
|
||||||
|
hi MatchParen ctermbg=gray ctermfg=black cterm=NONE
|
||||||
|
hi ColorColumn ctermbg=blue ctermfg=blue cterm=NONE
|
||||||
|
hi signColumn ctermbg=NONE ctermfg=blue cterm=NONE
|
||||||
|
hi ErrorMsg ctermbg=NONE ctermfg=gray cterm=NONE
|
||||||
|
hi ModeMsg ctermbg=NONE ctermfg=green cterm=NONE
|
||||||
|
hi MoreMsg ctermbg=NONE ctermfg=green cterm=NONE
|
||||||
|
hi Question ctermbg=NONE ctermfg=blue cterm=NONE
|
||||||
|
hi WarningMsg ctermbg=red ctermfg=black cterm=NONE
|
||||||
|
hi Cursor ctermbg=NONE ctermfg=gray cterm=NONE
|
||||||
|
hi Structure ctermbg=NONE ctermfg=orange cterm=NONE
|
||||||
|
hi CursorColumn ctermbg=gray ctermfg=white cterm=NONE
|
||||||
|
hi ModeMsg ctermbg=NONE ctermfg=white cterm=NONE
|
||||||
|
hi SpellBad ctermbg=NONE ctermfg=red cterm=underline
|
||||||
|
hi SpellCap ctermbg=NONE ctermfg=blue cterm=underline
|
||||||
|
hi SpellLocal ctermbg=NONE ctermfg=orange cterm=underline
|
||||||
|
hi SpellRare ctermbg=NONE ctermfg=cyan cterm=underline
|
||||||
|
hi Boolean ctermbg=NONE ctermfg=orange cterm=NONE
|
||||||
|
hi Character ctermbg=NONE ctermfg=red cterm=NONE
|
||||||
|
hi Conditional ctermbg=NONE ctermfg=orange cterm=NONE
|
||||||
|
hi Define ctermbg=NONE ctermfg=orange cterm=NONE
|
||||||
|
hi Delimiter ctermbg=NONE ctermfg=orange cterm=NONE
|
||||||
|
hi Float ctermbg=NONE ctermfg=orange cterm=NONE
|
||||||
|
hi Include ctermbg=NONE ctermfg=blue cterm=NONE
|
||||||
|
hi Keyword ctermbg=NONE ctermfg=orange cterm=NONE
|
||||||
|
hi Label ctermbg=NONE ctermfg=yellow cterm=NONE
|
||||||
|
hi Operator ctermbg=NONE ctermfg=white cterm=NONE
|
||||||
|
hi Repeat ctermbg=NONE ctermfg=yellow cterm=NONE
|
||||||
|
hi SpecialChar ctermbg=NONE ctermfg=orange cterm=NONE
|
||||||
|
hi Tag ctermbg=NONE ctermfg=yellow cterm=NONE
|
||||||
|
hi Typedef ctermbg=NONE ctermfg=yellow cterm=NONE
|
||||||
|
hi vimUserCommand ctermbg=NONE ctermfg=red cterm=BOLD
|
||||||
|
hi link vimMap vimUserCommand
|
||||||
|
hi link vimLet vimUserCommand
|
||||||
|
hi link vimCommand vimUserCommand
|
||||||
|
hi link vimFTCmd vimUserCommand
|
||||||
|
hi link vimAutoCmd vimUserCommand
|
||||||
|
hi link vimNotFunc vimUserCommand
|
||||||
|
hi vimNotation ctermbg=NONE ctermfg=blue cterm=NONE
|
||||||
|
hi vimMapModKey ctermbg=NONE ctermfg=blue cterm=NONE
|
||||||
|
hi vimBracket ctermbg=NONE ctermfg=white cterm=NONE
|
||||||
|
hi vimCommentString ctermbg=NONE ctermfg=gray cterm=NONE
|
||||||
|
hi htmlLink ctermbg=NONE ctermfg=red cterm=underline
|
||||||
|
hi htmlBold ctermbg=NONE ctermfg=yellow cterm=NONE
|
||||||
|
hi htmlItalic ctermbg=NONE ctermfg=orange cterm=NONE
|
||||||
|
hi htmlEndTag ctermbg=NONE ctermfg=white cterm=NONE
|
||||||
|
hi htmlTag ctermbg=NONE ctermfg=white cterm=NONE
|
||||||
|
hi htmlTagName ctermbg=NONE ctermfg=red cterm=BOLD
|
||||||
|
hi htmlH1 ctermbg=NONE ctermfg=white cterm=BOLD
|
||||||
|
hi link htmlH2 htmlH1
|
||||||
|
hi link htmlH3 htmlH1
|
||||||
|
hi link htmlH4 htmlH1
|
||||||
|
hi link htmlH5 htmlH1
|
||||||
|
hi link htmlH6 htmlH1
|
||||||
|
hi cssMultiColumnAttr ctermbg=NONE ctermfg=green cterm=NONE
|
||||||
|
hi link cssFontAttr cssMultiColumnAttr
|
||||||
|
hi link cssFlexibleBoxAttr cssMultiColumnAttr
|
||||||
|
hi cssBraces ctermbg=NONE ctermfg=white cterm=NONE
|
||||||
|
hi link cssAttrComma cssBraces
|
||||||
|
hi cssValueLength ctermbg=NONE ctermfg=white cterm=NONE
|
||||||
|
hi cssUnitDecorators ctermbg=NONE ctermfg=white cterm=NONE
|
||||||
|
hi cssValueNumber ctermbg=NONE ctermfg=white cterm=NONE
|
||||||
|
hi link cssValueLength cssValueNumber
|
||||||
|
hi cssNoise ctermbg=NONE ctermfg=gray cterm=NONE
|
||||||
|
hi cssTagName ctermbg=NONE ctermfg=red cterm=NONE
|
||||||
|
hi cssFunctionName ctermbg=NONE ctermfg=blue cterm=NONE
|
||||||
|
hi scssSelectorChar ctermbg=NONE ctermfg=white cterm=NONE
|
||||||
|
hi scssAttribute ctermbg=NONE ctermfg=white cterm=NONE
|
||||||
|
hi link scssDefinition cssNoise
|
||||||
|
hi sassidChar ctermbg=NONE ctermfg=red cterm=NONE
|
||||||
|
hi sassClassChar ctermbg=NONE ctermfg=orange cterm=NONE
|
||||||
|
hi sassInclude ctermbg=NONE ctermfg=orange cterm=NONE
|
||||||
|
hi sassMixing ctermbg=NONE ctermfg=orange cterm=NONE
|
||||||
|
hi sassMixinName ctermbg=NONE ctermfg=blue cterm=NONE
|
||||||
|
hi javaScript ctermbg=NONE ctermfg=white cterm=NONE
|
||||||
|
hi javaScriptBraces ctermbg=NONE ctermfg=white cterm=NONE
|
||||||
|
hi javaScriptNumber ctermbg=NONE ctermfg=orange cterm=NONE
|
||||||
|
hi markdownAutomaticLink ctermbg=NONE ctermfg=red cterm=underline
|
||||||
|
hi link markdownUrl markdownAutomaticLink
|
||||||
|
hi markdownError ctermbg=NONE ctermfg=white cterm=NONE
|
||||||
|
hi markdownCode ctermbg=NONE ctermfg=yellow cterm=NONE
|
||||||
|
hi markdownCodeBlock ctermbg=NONE ctermfg=yellow cterm=NONE
|
||||||
|
hi markdownCodeDelimiter ctermbg=NONE ctermfg=orange cterm=NONE
|
||||||
|
hi xdefaultsValue ctermbg=NONE ctermfg=white cterm=NONE
|
||||||
|
hi rubyInclude ctermbg=NONE ctermfg=blue cterm=NONE
|
||||||
|
hi rubyDefine ctermbg=NONE ctermfg=orange cterm=NONE
|
||||||
|
hi rubyFunction ctermbg=NONE ctermfg=blue cterm=NONE
|
||||||
|
hi rubyStringDelimiter ctermbg=NONE ctermfg=green cterm=NONE
|
||||||
|
hi rubyInteger ctermbg=NONE ctermfg=yellow cterm=NONE
|
||||||
|
hi rubyAttribute ctermbg=NONE ctermfg=blue cterm=NONE
|
||||||
|
hi rubyConstant ctermbg=NONE ctermfg=yellow cterm=NONE
|
||||||
|
hi rubyInterpolation ctermbg=NONE ctermfg=green cterm=NONE
|
||||||
|
hi rubyInterpolationDelimiter ctermbg=NONE ctermfg=yellow cterm=NONE
|
||||||
|
hi rubyRegexp ctermbg=NONE ctermfg=cyan cterm=NONE
|
||||||
|
hi rubySymbol ctermbg=NONE ctermfg=green cterm=NONE
|
||||||
|
hi rubyTodo ctermbg=NONE ctermfg=gray cterm=NONE
|
||||||
|
hi rubyRegexpAnchor ctermbg=NONE ctermfg=white cterm=NONE
|
||||||
|
hi link rubyRegexpQuantifier rubyRegexpAnchor
|
||||||
|
hi pythonOperator ctermbg=NONE ctermfg=orange cterm=NONE
|
||||||
|
hi pythonFunction ctermbg=NONE ctermfg=blue cterm=NONE
|
||||||
|
hi pythonRepeat ctermbg=NONE ctermfg=orange cterm=NONE
|
||||||
|
hi pythonStatement ctermbg=NONE ctermfg=red cterm=Bold
|
||||||
|
hi pythonBuiltIn ctermbg=NONE ctermfg=blue cterm=NONE
|
||||||
|
hi phpMemberSelector ctermbg=NONE ctermfg=white cterm=NONE
|
||||||
|
hi phpComparison ctermbg=NONE ctermfg=white cterm=NONE
|
||||||
|
hi phpParent ctermbg=NONE ctermfg=white cterm=NONE
|
||||||
|
hi cOperator ctermbg=NONE ctermfg=cyan cterm=NONE
|
||||||
|
hi cPreCondit ctermbg=NONE ctermfg=orange cterm=NONE
|
||||||
|
hi SignifySignAdd ctermbg=NONE ctermfg=green cterm=NONE
|
||||||
|
hi SignifySignChange ctermbg=NONE ctermfg=blue cterm=NONE
|
||||||
|
hi SignifySignDelete ctermbg=NONE ctermfg=red cterm=NONE
|
||||||
|
hi NERDTreeDirSlash ctermbg=NONE ctermfg=blue cterm=NONE
|
||||||
|
hi NERDTreeExecFile ctermbg=NONE ctermfg=white cterm=NONE
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
" }}}v
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
" Neovim Terminal Mode Colors.
|
||||||
|
let g:terminal_color_0 = "\#312e39"
|
||||||
|
let g:terminal_color_1 = "\#87404f"
|
||||||
|
let g:terminal_color_2 = "\#4c9882"
|
||||||
|
let g:terminal_color_3 = "\#71949a"
|
||||||
|
let g:terminal_color_4 = "\#615772"
|
||||||
|
let g:terminal_color_5 = "\#783e57"
|
||||||
|
let g:terminal_color_6 = "\#554757"
|
||||||
|
let g:terminal_color_7 = "\#554757"
|
||||||
|
let g:terminal_color_8 = "\#33303b"
|
||||||
|
let g:terminal_color_9 = "\#87404f"
|
||||||
|
let g:terminal_color_10 = "\#87404f"
|
||||||
|
let g:terminal_color_11 = "\#71949a"
|
||||||
|
let g:terminal_color_12 = "\#71949a"
|
||||||
|
let g:terminal_color_13 = "\#783e57"
|
||||||
|
let g:terminal_color_14 = "\#554757"
|
||||||
|
let g:terminal_color_15 = "\#c0a79a"
|
||||||
|
|
||||||
|
" }}}
|
56
vim/.vimrc
Normal file
56
vim/.vimrc
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
""Basic stuff
|
||||||
|
execute pathogen#infect()
|
||||||
|
syntax on
|
||||||
|
filetype plugin indent on
|
||||||
|
set number
|
||||||
|
""Colors
|
||||||
|
colorscheme synthwave
|
||||||
|
set t_Co=256
|
||||||
|
""Misc
|
||||||
|
set clipboard=unnamedplus
|
||||||
|
set nofoldenable
|
||||||
|
""MuComplete
|
||||||
|
set completeopt+=menuone
|
||||||
|
set completeopt+=noinsert
|
||||||
|
set shortmess+=c
|
||||||
|
set hlsearch
|
||||||
|
set incsearch
|
||||||
|
set ignorecase
|
||||||
|
set smartcase
|
||||||
|
let g:mucomplete#enable_auto_at_startup = 1
|
||||||
|
let g:mucomplete#completion_delay = 1
|
||||||
|
""Keybindings
|
||||||
|
set pastetoggle=<F2>
|
||||||
|
map <Space> :noh<CR>
|
||||||
|
"" Mail
|
||||||
|
au FileType mail
|
||||||
|
\ if expand('%p') =~ '^/tmp/neomutt-' |
|
||||||
|
\ set ft=markdown |
|
||||||
|
\ endif
|
||||||
|
"" Markdown
|
||||||
|
au FileType markdown Goyo 80
|
||||||
|
let g:markdown_fenced_languages = ['cpp', 'python', 'java']
|
||||||
|
let g:vim_markdown_math=1
|
||||||
|
"" Pandoc
|
||||||
|
autocmd FileType markdown nnoremap <silent> <F3> :<c-u>!pandoc %:p:S -o %:p:r:S.pdf --from markdown --template eisvogel --listings &<cr>
|
||||||
|
autocmd FileType markdown nnoremap <silent> <F4> :<c-u>!pandoc %:p:S -o %:p:r:S.pdf -t beamer -V theme:metropolis --listings &<cr>
|
||||||
|
autocmd FileType markdown nnoremap <silent> <F5> :<c-u>!zathura %:p:r:S.pdf &<cr>
|
||||||
|
""Quitting whether Goyo is active or not
|
||||||
|
function! g:Goyo_before()
|
||||||
|
let b:quitting = 0
|
||||||
|
let b:quitting_bang = 0
|
||||||
|
autocmd QuitPre <buffer> let b:quitting = 1
|
||||||
|
cabbrev <buffer> q! let b:quitting_bang = 1 <bar> q!
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! g:Goyo_after()
|
||||||
|
if b:quitting && len(filter(range(1, bufnr('$')), 'buflisted(v:val)')) == 1
|
||||||
|
if b:quitting_bang
|
||||||
|
qa!
|
||||||
|
else
|
||||||
|
qa
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
let g:goyo_callbacks = [function('g:Goyo_before'), function('g:Goyo_after')]
|
48
weechat/.weechat/alias.conf
Normal file
48
weechat/.weechat/alias.conf
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
#
|
||||||
|
# weechat -- alias.conf
|
||||||
|
#
|
||||||
|
# WARNING: It is NOT recommended to edit this file by hand,
|
||||||
|
# especially if WeeChat is running.
|
||||||
|
#
|
||||||
|
# Use /set or similar command to change settings in WeeChat.
|
||||||
|
#
|
||||||
|
# For more info, see: https://weechat.org/doc/quickstart
|
||||||
|
#
|
||||||
|
|
||||||
|
[cmd]
|
||||||
|
AAWAY = "allserv /away"
|
||||||
|
AME = "allchan /me"
|
||||||
|
AMSG = "allchan /msg *"
|
||||||
|
ANICK = "allserv /nick"
|
||||||
|
BEEP = "print -beep"
|
||||||
|
BYE = "quit"
|
||||||
|
C = "buffer clear"
|
||||||
|
CHAT = "dcc chat"
|
||||||
|
CL = "buffer clear"
|
||||||
|
CLOSE = "buffer close"
|
||||||
|
EXIT = "quit"
|
||||||
|
IG = "ignore"
|
||||||
|
J = "join"
|
||||||
|
K = "kick"
|
||||||
|
KB = "kickban"
|
||||||
|
LEAVE = "part"
|
||||||
|
M = "msg"
|
||||||
|
MSGBUF = "command -buffer $1 * /input send $2-"
|
||||||
|
MUB = "unban *"
|
||||||
|
N = "names"
|
||||||
|
Q = "query"
|
||||||
|
REDRAW = "window refresh"
|
||||||
|
SAY = "msg *"
|
||||||
|
SIGNOFF = "quit"
|
||||||
|
T = "topic"
|
||||||
|
UB = "unban"
|
||||||
|
UMODE = "mode $nick"
|
||||||
|
V = "command core version"
|
||||||
|
W = "who"
|
||||||
|
WC = "window merge"
|
||||||
|
WI = "whois"
|
||||||
|
WII = "whois $1 $1"
|
||||||
|
WW = "whowas"
|
||||||
|
|
||||||
|
[completion]
|
||||||
|
MSGBUF = "%(buffers_plugins_names)"
|
33
weechat/.weechat/aspell.conf
Normal file
33
weechat/.weechat/aspell.conf
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
#
|
||||||
|
# weechat -- aspell.conf
|
||||||
|
#
|
||||||
|
# WARNING: It is NOT recommended to edit this file by hand,
|
||||||
|
# especially if WeeChat is running.
|
||||||
|
#
|
||||||
|
# Use /set or similar command to change settings in WeeChat.
|
||||||
|
#
|
||||||
|
# For more info, see: https://weechat.org/doc/quickstart
|
||||||
|
#
|
||||||
|
|
||||||
|
[color]
|
||||||
|
misspelled = lightred
|
||||||
|
suggestion = default
|
||||||
|
suggestion_delimiter_dict = cyan
|
||||||
|
suggestion_delimiter_word = cyan
|
||||||
|
|
||||||
|
[check]
|
||||||
|
commands = "ame,amsg,away,command,cycle,kick,kickban,me,msg,notice,part,query,quit,topic"
|
||||||
|
default_dict = ""
|
||||||
|
during_search = off
|
||||||
|
enabled = off
|
||||||
|
real_time = off
|
||||||
|
suggestions = -1
|
||||||
|
word_min_length = 2
|
||||||
|
|
||||||
|
[dict]
|
||||||
|
|
||||||
|
[look]
|
||||||
|
suggestion_delimiter_dict = " / "
|
||||||
|
suggestion_delimiter_word = ","
|
||||||
|
|
||||||
|
[option]
|
22
weechat/.weechat/autosort.conf
Normal file
22
weechat/.weechat/autosort.conf
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
#
|
||||||
|
# weechat -- autosort.conf
|
||||||
|
#
|
||||||
|
# WARNING: It is NOT recommended to edit this file by hand,
|
||||||
|
# especially if WeeChat is running.
|
||||||
|
#
|
||||||
|
# Use /set or similar command to change settings in WeeChat.
|
||||||
|
#
|
||||||
|
# For more info, see: https://weechat.org/doc/quickstart
|
||||||
|
#
|
||||||
|
|
||||||
|
[sorting]
|
||||||
|
case_sensitive = off
|
||||||
|
replacements = ""
|
||||||
|
rules = ""
|
||||||
|
signal_delay = 5
|
||||||
|
signals = "buffer_opened buffer_merged buffer_unmerged buffer_renamed"
|
||||||
|
sort_on_config_change = on
|
||||||
|
|
||||||
|
[v3]
|
||||||
|
helpers = "{"core_first": "${if:${buffer.full_name}!=core.weechat}", "irc_raw_last": "${if:${buffer.full_name}==irc.irc_raw}", "irc_last": "${if:${buffer.plugin.name}==irc}", "hashless_name": "${info:autosort_replace,#,,${buffer.name}}", "irc_first": "${if:${buffer.plugin.name}!=irc}", "irc_raw_first": "${if:${buffer.full_name}!=irc.irc_raw}"}"
|
||||||
|
rules = "["${core_first}", "${irc_last}", "${buffer.plugin.name}", "${irc_raw_first}", "${if:${plugin}==irc?${server}}", "${if:${plugin}==irc?${info:autosort_order,${type},server,*,channel,private}}", "${if:${plugin}==irc?${hashless_name}}", "${buffer.full_name}", "irc.server.*.&* = 0", "irc.server.*.#* = 1", "irc.server.*.\\*status = 2"]"
|
39
weechat/.weechat/buflist.conf
Normal file
39
weechat/.weechat/buflist.conf
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
#
|
||||||
|
# weechat -- buflist.conf
|
||||||
|
#
|
||||||
|
# WARNING: It is NOT recommended to edit this file by hand,
|
||||||
|
# especially if WeeChat is running.
|
||||||
|
#
|
||||||
|
# Use /set or similar command to change settings in WeeChat.
|
||||||
|
#
|
||||||
|
# For more info, see: https://weechat.org/doc/quickstart
|
||||||
|
#
|
||||||
|
|
||||||
|
[look]
|
||||||
|
add_newline = on
|
||||||
|
auto_scroll = 50
|
||||||
|
display_conditions = "${buffer.hidden}==0"
|
||||||
|
enabled = on
|
||||||
|
mouse_jump_visited_buffer = off
|
||||||
|
mouse_move_buffer = on
|
||||||
|
mouse_wheel = on
|
||||||
|
nick_prefix = off
|
||||||
|
nick_prefix_empty = on
|
||||||
|
signals_refresh = ""
|
||||||
|
sort = "number,-active"
|
||||||
|
|
||||||
|
[format]
|
||||||
|
buffer = "${format_number}${indent}${format_nick_prefix}${color_hotlist}${format_name}"
|
||||||
|
buffer_current = "${color:,0}${format_buffer}"
|
||||||
|
hotlist = " ${color:green}(${hotlist}${color:green})"
|
||||||
|
hotlist_highlight = "${color:magenta}"
|
||||||
|
hotlist_low = "${color:white}"
|
||||||
|
hotlist_message = "${color:7}"
|
||||||
|
hotlist_none = "${color:default}"
|
||||||
|
hotlist_private = "${color:green}"
|
||||||
|
hotlist_separator = "${color:default},"
|
||||||
|
indent = " "
|
||||||
|
lag = " ${color:green}[${color:brown}${lag}${color:green}]"
|
||||||
|
name = "${name}"
|
||||||
|
nick_prefix = "${color_nick_prefix}${nick_prefix}"
|
||||||
|
number = "${color:green}${number}${if:${number_displayed}?.: }"
|
18
weechat/.weechat/charset.conf
Normal file
18
weechat/.weechat/charset.conf
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#
|
||||||
|
# weechat -- charset.conf
|
||||||
|
#
|
||||||
|
# WARNING: It is NOT recommended to edit this file by hand,
|
||||||
|
# especially if WeeChat is running.
|
||||||
|
#
|
||||||
|
# Use /set or similar command to change settings in WeeChat.
|
||||||
|
#
|
||||||
|
# For more info, see: https://weechat.org/doc/quickstart
|
||||||
|
#
|
||||||
|
|
||||||
|
[default]
|
||||||
|
decode = "iso-8859-1"
|
||||||
|
encode = ""
|
||||||
|
|
||||||
|
[decode]
|
||||||
|
|
||||||
|
[encode]
|
20
weechat/.weechat/colorize_nicks.conf
Normal file
20
weechat/.weechat/colorize_nicks.conf
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#
|
||||||
|
# weechat -- colorize_nicks.conf
|
||||||
|
#
|
||||||
|
# WARNING: It is NOT recommended to edit this file by hand,
|
||||||
|
# especially if WeeChat is running.
|
||||||
|
#
|
||||||
|
# Use /set or similar command to change settings in WeeChat.
|
||||||
|
#
|
||||||
|
# For more info, see: https://weechat.org/doc/quickstart
|
||||||
|
#
|
||||||
|
|
||||||
|
[look]
|
||||||
|
blacklist_channels = ""
|
||||||
|
blacklist_nicks = "so,root"
|
||||||
|
colorize_input = off
|
||||||
|
greedy_matching = on
|
||||||
|
ignore_nicks_in_urls = off
|
||||||
|
ignore_tags = ""
|
||||||
|
match_limit = 20
|
||||||
|
min_nick_length = 2
|
19
weechat/.weechat/exec.conf
Normal file
19
weechat/.weechat/exec.conf
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
#
|
||||||
|
# weechat -- exec.conf
|
||||||
|
#
|
||||||
|
# WARNING: It is NOT recommended to edit this file by hand,
|
||||||
|
# especially if WeeChat is running.
|
||||||
|
#
|
||||||
|
# Use /set or similar command to change settings in WeeChat.
|
||||||
|
#
|
||||||
|
# For more info, see: https://weechat.org/doc/quickstart
|
||||||
|
#
|
||||||
|
|
||||||
|
[command]
|
||||||
|
default_options = ""
|
||||||
|
purge_delay = 0
|
||||||
|
shell = "sh"
|
||||||
|
|
||||||
|
[color]
|
||||||
|
flag_finished = lightred
|
||||||
|
flag_running = lightgreen
|
14
weechat/.weechat/fifo.conf
Normal file
14
weechat/.weechat/fifo.conf
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#
|
||||||
|
# weechat -- fifo.conf
|
||||||
|
#
|
||||||
|
# WARNING: It is NOT recommended to edit this file by hand,
|
||||||
|
# especially if WeeChat is running.
|
||||||
|
#
|
||||||
|
# Use /set or similar command to change settings in WeeChat.
|
||||||
|
#
|
||||||
|
# For more info, see: https://weechat.org/doc/quickstart
|
||||||
|
#
|
||||||
|
|
||||||
|
[file]
|
||||||
|
enabled = on
|
||||||
|
path = "%h/weechat_fifo"
|
95
weechat/.weechat/fset.conf
Normal file
95
weechat/.weechat/fset.conf
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
#
|
||||||
|
# weechat -- fset.conf
|
||||||
|
#
|
||||||
|
# WARNING: It is NOT recommended to edit this file by hand,
|
||||||
|
# especially if WeeChat is running.
|
||||||
|
#
|
||||||
|
# Use /set or similar command to change settings in WeeChat.
|
||||||
|
#
|
||||||
|
# For more info, see: https://weechat.org/doc/quickstart
|
||||||
|
#
|
||||||
|
|
||||||
|
[look]
|
||||||
|
auto_unmark = off
|
||||||
|
condition_catch_set = "${count} >= 1"
|
||||||
|
export_help_default = on
|
||||||
|
format_number = 1
|
||||||
|
marked_string = "*"
|
||||||
|
scroll_horizontal = 10
|
||||||
|
show_plugins_desc = off
|
||||||
|
sort = "~name"
|
||||||
|
unmarked_string = " "
|
||||||
|
use_color_value = off
|
||||||
|
use_keys = on
|
||||||
|
use_mute = off
|
||||||
|
|
||||||
|
[format]
|
||||||
|
export_help = "# ${description2}"
|
||||||
|
export_option = "/set ${name} ${quoted_value}"
|
||||||
|
export_option_null = "/unset ${name}"
|
||||||
|
option1 = ""
|
||||||
|
option2 = "${marked} ${name} ${type} ${value2}${newline} ${empty_name} ${_default_value}${color:darkgray} -- ${min}..${max}${newline} ${empty_name} ${description}"
|
||||||
|
|
||||||
|
[color]
|
||||||
|
default_value = default
|
||||||
|
default_value_selected = white
|
||||||
|
description = default
|
||||||
|
description_selected = white
|
||||||
|
file = default
|
||||||
|
file_changed = brown
|
||||||
|
file_changed_selected = yellow
|
||||||
|
file_selected = white
|
||||||
|
help_default_value = white
|
||||||
|
help_description = default
|
||||||
|
help_name = white
|
||||||
|
help_quotes = darkgray
|
||||||
|
help_values = default
|
||||||
|
index = cyan
|
||||||
|
index_selected = lightcyan
|
||||||
|
line_marked_bg1 = default
|
||||||
|
line_marked_bg2 = default
|
||||||
|
line_selected_bg1 = blue
|
||||||
|
line_selected_bg2 = red
|
||||||
|
marked = brown
|
||||||
|
marked_selected = yellow
|
||||||
|
max = default
|
||||||
|
max_selected = white
|
||||||
|
min = default
|
||||||
|
min_selected = white
|
||||||
|
name = default
|
||||||
|
name_changed = brown
|
||||||
|
name_changed_selected = yellow
|
||||||
|
name_selected = white
|
||||||
|
option = default
|
||||||
|
option_changed = brown
|
||||||
|
option_changed_selected = yellow
|
||||||
|
option_selected = white
|
||||||
|
parent_name = default
|
||||||
|
parent_name_selected = white
|
||||||
|
parent_value = cyan
|
||||||
|
parent_value_selected = lightcyan
|
||||||
|
quotes = darkgray
|
||||||
|
quotes_changed = default
|
||||||
|
quotes_changed_selected = white
|
||||||
|
quotes_selected = default
|
||||||
|
section = default
|
||||||
|
section_changed = brown
|
||||||
|
section_changed_selected = yellow
|
||||||
|
section_selected = white
|
||||||
|
string_values = default
|
||||||
|
string_values_selected = white
|
||||||
|
title_count_options = cyan
|
||||||
|
title_current_option = lightcyan
|
||||||
|
title_filter = yellow
|
||||||
|
title_marked_options = lightgreen
|
||||||
|
title_sort = white
|
||||||
|
type = green
|
||||||
|
type_selected = lightgreen
|
||||||
|
unmarked = default
|
||||||
|
unmarked_selected = white
|
||||||
|
value = cyan
|
||||||
|
value_changed = brown
|
||||||
|
value_changed_selected = yellow
|
||||||
|
value_selected = lightcyan
|
||||||
|
value_undef = magenta
|
||||||
|
value_undef_selected = lightmagenta
|
236
weechat/.weechat/irc.conf
Normal file
236
weechat/.weechat/irc.conf
Normal file
@ -0,0 +1,236 @@
|
|||||||
|
#
|
||||||
|
# weechat -- irc.conf
|
||||||
|
#
|
||||||
|
# WARNING: It is NOT recommended to edit this file by hand,
|
||||||
|
# especially if WeeChat is running.
|
||||||
|
#
|
||||||
|
# Use /set or similar command to change settings in WeeChat.
|
||||||
|
#
|
||||||
|
# For more info, see: https://weechat.org/doc/quickstart
|
||||||
|
#
|
||||||
|
|
||||||
|
[look]
|
||||||
|
buffer_open_before_autojoin = on
|
||||||
|
buffer_open_before_join = off
|
||||||
|
buffer_switch_autojoin = on
|
||||||
|
buffer_switch_join = on
|
||||||
|
color_nicks_in_names = off
|
||||||
|
color_nicks_in_nicklist = off
|
||||||
|
color_nicks_in_server_messages = on
|
||||||
|
color_pv_nick_like_channel = on
|
||||||
|
ctcp_time_format = "%a, %d %b %Y %T %z"
|
||||||
|
display_away = local
|
||||||
|
display_ctcp_blocked = on
|
||||||
|
display_ctcp_reply = on
|
||||||
|
display_ctcp_unknown = on
|
||||||
|
display_host_join = on
|
||||||
|
display_host_join_local = on
|
||||||
|
display_host_quit = on
|
||||||
|
display_join_message = "329,332,333,366"
|
||||||
|
display_old_topic = on
|
||||||
|
display_pv_away_once = on
|
||||||
|
display_pv_back = on
|
||||||
|
highlight_channel = "$nick"
|
||||||
|
highlight_pv = "$nick"
|
||||||
|
highlight_server = "$nick"
|
||||||
|
highlight_tags_restrict = "irc_privmsg,irc_notice"
|
||||||
|
item_channel_modes_hide_args = "k"
|
||||||
|
item_display_server = buffer_plugin
|
||||||
|
item_nick_modes = on
|
||||||
|
item_nick_prefix = on
|
||||||
|
join_auto_add_chantype = off
|
||||||
|
msgbuffer_fallback = current
|
||||||
|
new_channel_position = none
|
||||||
|
new_pv_position = none
|
||||||
|
nick_completion_smart = speakers
|
||||||
|
nick_mode = prefix
|
||||||
|
nick_mode_empty = off
|
||||||
|
nicks_hide_password = "nickserv"
|
||||||
|
notice_as_pv = auto
|
||||||
|
notice_welcome_redirect = on
|
||||||
|
notice_welcome_tags = ""
|
||||||
|
notify_tags_ison = "notify_message"
|
||||||
|
notify_tags_whois = "notify_message"
|
||||||
|
part_closes_buffer = off
|
||||||
|
pv_buffer = independent
|
||||||
|
pv_tags = "notify_private"
|
||||||
|
raw_messages = 256
|
||||||
|
server_buffer = independent
|
||||||
|
smart_filter = on
|
||||||
|
smart_filter_chghost = on
|
||||||
|
smart_filter_delay = 5
|
||||||
|
smart_filter_join = on
|
||||||
|
smart_filter_join_unmask = 30
|
||||||
|
smart_filter_mode = "+"
|
||||||
|
smart_filter_nick = on
|
||||||
|
smart_filter_quit = on
|
||||||
|
temporary_servers = off
|
||||||
|
topic_strip_colors = off
|
||||||
|
|
||||||
|
[color]
|
||||||
|
input_nick = lightcyan
|
||||||
|
item_channel_modes = default
|
||||||
|
item_lag_counting = default
|
||||||
|
item_lag_finished = yellow
|
||||||
|
item_nick_modes = default
|
||||||
|
message_chghost = brown
|
||||||
|
message_join = green
|
||||||
|
message_quit = red
|
||||||
|
mirc_remap = "1,-1:darkgray"
|
||||||
|
nick_prefixes = "y:lightred;q:lightred;a:lightcyan;o:lightgreen;h:lightmagenta;v:yellow;*:lightblue"
|
||||||
|
notice = green
|
||||||
|
reason_quit = default
|
||||||
|
topic_current = default
|
||||||
|
topic_new = white
|
||||||
|
topic_old = default
|
||||||
|
|
||||||
|
[network]
|
||||||
|
autoreconnect_delay_growing = 2
|
||||||
|
autoreconnect_delay_max = 600
|
||||||
|
ban_mask_default = "*!$ident@$host"
|
||||||
|
channel_encode = off
|
||||||
|
colors_receive = on
|
||||||
|
colors_send = on
|
||||||
|
lag_check = 60
|
||||||
|
lag_max = 1800
|
||||||
|
lag_min_show = 500
|
||||||
|
lag_reconnect = 300
|
||||||
|
lag_refresh_interval = 1
|
||||||
|
notify_check_ison = 1
|
||||||
|
notify_check_whois = 5
|
||||||
|
sasl_fail_unavailable = on
|
||||||
|
send_unknown_commands = off
|
||||||
|
whois_double_nick = off
|
||||||
|
|
||||||
|
[msgbuffer]
|
||||||
|
|
||||||
|
[ctcp]
|
||||||
|
|
||||||
|
[ignore]
|
||||||
|
|
||||||
|
[server_default]
|
||||||
|
addresses = ""
|
||||||
|
anti_flood_prio_high = 2
|
||||||
|
anti_flood_prio_low = 2
|
||||||
|
autoconnect = on
|
||||||
|
autojoin = ""
|
||||||
|
autoreconnect = on
|
||||||
|
autoreconnect_delay = 10
|
||||||
|
autorejoin = off
|
||||||
|
autorejoin_delay = 30
|
||||||
|
away_check = 0
|
||||||
|
away_check_max_nicks = 25
|
||||||
|
capabilities = ""
|
||||||
|
command = ""
|
||||||
|
command_delay = 0
|
||||||
|
connection_timeout = 60
|
||||||
|
ipv6 = on
|
||||||
|
local_hostname = ""
|
||||||
|
msg_kick = ""
|
||||||
|
msg_part = "WeeChat ${info:version}"
|
||||||
|
msg_quit = "WeeChat ${info:version}"
|
||||||
|
nicks = "coolneng,coolneng1,coolneng2,coolneng3,coolneng4"
|
||||||
|
nicks_alternate = on
|
||||||
|
notify = ""
|
||||||
|
password = ""
|
||||||
|
proxy = ""
|
||||||
|
realname = ""
|
||||||
|
sasl_fail = continue
|
||||||
|
sasl_key = ""
|
||||||
|
sasl_mechanism = plain
|
||||||
|
sasl_password = ""
|
||||||
|
sasl_timeout = 15
|
||||||
|
sasl_username = ""
|
||||||
|
split_msg_max_length = 512
|
||||||
|
ssl = off
|
||||||
|
ssl_cert = ""
|
||||||
|
ssl_dhkey_size = 2048
|
||||||
|
ssl_fingerprint = ""
|
||||||
|
ssl_priorities = "NORMAL:-VERS-SSL3.0"
|
||||||
|
ssl_verify = on
|
||||||
|
usermode = ""
|
||||||
|
username = "coolneng"
|
||||||
|
|
||||||
|
[server]
|
||||||
|
bitlbee.addresses = "localhost/6667"
|
||||||
|
bitlbee.proxy
|
||||||
|
bitlbee.ipv6
|
||||||
|
bitlbee.ssl
|
||||||
|
bitlbee.ssl_cert
|
||||||
|
bitlbee.ssl_priorities
|
||||||
|
bitlbee.ssl_dhkey_size
|
||||||
|
bitlbee.ssl_fingerprint
|
||||||
|
bitlbee.ssl_verify
|
||||||
|
bitlbee.password
|
||||||
|
bitlbee.capabilities
|
||||||
|
bitlbee.sasl_mechanism
|
||||||
|
bitlbee.sasl_username
|
||||||
|
bitlbee.sasl_password
|
||||||
|
bitlbee.sasl_key
|
||||||
|
bitlbee.sasl_timeout
|
||||||
|
bitlbee.sasl_fail
|
||||||
|
bitlbee.autoconnect = on
|
||||||
|
bitlbee.autoreconnect
|
||||||
|
bitlbee.autoreconnect_delay
|
||||||
|
bitlbee.nicks
|
||||||
|
bitlbee.nicks_alternate
|
||||||
|
bitlbee.username
|
||||||
|
bitlbee.realname
|
||||||
|
bitlbee.local_hostname
|
||||||
|
bitlbee.usermode
|
||||||
|
bitlbee.command
|
||||||
|
bitlbee.command_delay
|
||||||
|
bitlbee.autojoin
|
||||||
|
bitlbee.autorejoin
|
||||||
|
bitlbee.autorejoin_delay
|
||||||
|
bitlbee.connection_timeout
|
||||||
|
bitlbee.anti_flood_prio_high
|
||||||
|
bitlbee.anti_flood_prio_low
|
||||||
|
bitlbee.away_check
|
||||||
|
bitlbee.away_check_max_nicks
|
||||||
|
bitlbee.msg_kick
|
||||||
|
bitlbee.msg_part
|
||||||
|
bitlbee.msg_quit
|
||||||
|
bitlbee.notify
|
||||||
|
bitlbee.split_msg_max_length
|
||||||
|
efnet.addresses = "efnet.port80.se"
|
||||||
|
efnet.proxy
|
||||||
|
efnet.ipv6
|
||||||
|
efnet.ssl = off
|
||||||
|
efnet.ssl_cert
|
||||||
|
efnet.ssl_priorities
|
||||||
|
efnet.ssl_dhkey_size
|
||||||
|
efnet.ssl_fingerprint
|
||||||
|
efnet.ssl_verify
|
||||||
|
efnet.password
|
||||||
|
efnet.capabilities
|
||||||
|
efnet.sasl_mechanism
|
||||||
|
efnet.sasl_username
|
||||||
|
efnet.sasl_password
|
||||||
|
efnet.sasl_key
|
||||||
|
efnet.sasl_timeout
|
||||||
|
efnet.sasl_fail
|
||||||
|
efnet.autoconnect = off
|
||||||
|
efnet.autoreconnect
|
||||||
|
efnet.autoreconnect_delay
|
||||||
|
efnet.nicks = "coolneng"
|
||||||
|
efnet.nicks_alternate
|
||||||
|
efnet.username
|
||||||
|
efnet.realname
|
||||||
|
efnet.local_hostname
|
||||||
|
efnet.usermode
|
||||||
|
efnet.command
|
||||||
|
efnet.command_delay
|
||||||
|
efnet.autojoin = "#freebsdhelp"
|
||||||
|
efnet.autorejoin
|
||||||
|
efnet.autorejoin_delay
|
||||||
|
efnet.connection_timeout
|
||||||
|
efnet.anti_flood_prio_high
|
||||||
|
efnet.anti_flood_prio_low
|
||||||
|
efnet.away_check
|
||||||
|
efnet.away_check_max_nicks
|
||||||
|
efnet.msg_kick
|
||||||
|
efnet.msg_part
|
||||||
|
efnet.msg_quit
|
||||||
|
efnet.notify
|
||||||
|
efnet.split_msg_max_length
|
38
weechat/.weechat/iset.conf
Normal file
38
weechat/.weechat/iset.conf
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
#
|
||||||
|
# weechat -- iset.conf
|
||||||
|
#
|
||||||
|
# WARNING: It is NOT recommended to edit this file by hand,
|
||||||
|
# especially if WeeChat is running.
|
||||||
|
#
|
||||||
|
# Use /set or similar command to change settings in WeeChat.
|
||||||
|
#
|
||||||
|
# For more info, see: https://weechat.org/doc/quickstart
|
||||||
|
#
|
||||||
|
|
||||||
|
[color]
|
||||||
|
bg_selected = red
|
||||||
|
help_default_value = green
|
||||||
|
help_option_name = white
|
||||||
|
help_text = default
|
||||||
|
option = default
|
||||||
|
option_selected = white
|
||||||
|
type = brown
|
||||||
|
type_selected = yellow
|
||||||
|
value = cyan
|
||||||
|
value_diff = magenta
|
||||||
|
value_diff_selected = lightmagenta
|
||||||
|
value_selected = lightcyan
|
||||||
|
value_undef = green
|
||||||
|
value_undef_selected = lightgreen
|
||||||
|
|
||||||
|
[help]
|
||||||
|
show_help_bar = on
|
||||||
|
show_help_extra_info = on
|
||||||
|
show_plugin_description = off
|
||||||
|
|
||||||
|
[look]
|
||||||
|
scroll_horiz = 10
|
||||||
|
show_current_line = on
|
||||||
|
use_color = off
|
||||||
|
use_mute = off
|
||||||
|
value_search_char = "="
|
35
weechat/.weechat/logger.conf
Normal file
35
weechat/.weechat/logger.conf
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
#
|
||||||
|
# weechat -- logger.conf
|
||||||
|
#
|
||||||
|
# WARNING: It is NOT recommended to edit this file by hand,
|
||||||
|
# especially if WeeChat is running.
|
||||||
|
#
|
||||||
|
# Use /set or similar command to change settings in WeeChat.
|
||||||
|
#
|
||||||
|
# For more info, see: https://weechat.org/doc/quickstart
|
||||||
|
#
|
||||||
|
|
||||||
|
[look]
|
||||||
|
backlog = 20
|
||||||
|
backlog_conditions = ""
|
||||||
|
|
||||||
|
[color]
|
||||||
|
backlog_end = default
|
||||||
|
backlog_line = default
|
||||||
|
|
||||||
|
[file]
|
||||||
|
auto_log = on
|
||||||
|
flush_delay = 120
|
||||||
|
fsync = off
|
||||||
|
info_lines = off
|
||||||
|
mask = "$plugin.$name.weechatlog"
|
||||||
|
name_lower_case = on
|
||||||
|
nick_prefix = ""
|
||||||
|
nick_suffix = ""
|
||||||
|
path = "%h/logs/"
|
||||||
|
replacement_char = "_"
|
||||||
|
time_format = "%Y-%m-%d %H:%M:%S"
|
||||||
|
|
||||||
|
[level]
|
||||||
|
|
||||||
|
[mask]
|
14
weechat/.weechat/lua.conf
Normal file
14
weechat/.weechat/lua.conf
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#
|
||||||
|
# weechat -- lua.conf
|
||||||
|
#
|
||||||
|
# WARNING: It is NOT recommended to edit this file by hand,
|
||||||
|
# especially if WeeChat is running.
|
||||||
|
#
|
||||||
|
# Use /set or similar command to change settings in WeeChat.
|
||||||
|
#
|
||||||
|
# For more info, see: https://weechat.org/doc/quickstart
|
||||||
|
#
|
||||||
|
|
||||||
|
[look]
|
||||||
|
check_license = off
|
||||||
|
eval_keep_context = on
|
14
weechat/.weechat/perl.conf
Normal file
14
weechat/.weechat/perl.conf
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#
|
||||||
|
# weechat -- perl.conf
|
||||||
|
#
|
||||||
|
# WARNING: It is NOT recommended to edit this file by hand,
|
||||||
|
# especially if WeeChat is running.
|
||||||
|
#
|
||||||
|
# Use /set or similar command to change settings in WeeChat.
|
||||||
|
#
|
||||||
|
# For more info, see: https://weechat.org/doc/quickstart
|
||||||
|
#
|
||||||
|
|
||||||
|
[look]
|
||||||
|
check_license = off
|
||||||
|
eval_keep_context = on
|
1
weechat/.weechat/perl/autoload/iset.pl
Symbolic link
1
weechat/.weechat/perl/autoload/iset.pl
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../iset.pl
|
1634
weechat/.weechat/perl/iset.pl
Normal file
1634
weechat/.weechat/perl/iset.pl
Normal file
File diff suppressed because it is too large
Load Diff
40
weechat/.weechat/plugins.conf
Normal file
40
weechat/.weechat/plugins.conf
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
#
|
||||||
|
# weechat -- plugins.conf
|
||||||
|
#
|
||||||
|
# WARNING: It is NOT recommended to edit this file by hand,
|
||||||
|
# especially if WeeChat is running.
|
||||||
|
#
|
||||||
|
# Use /set or similar command to change settings in WeeChat.
|
||||||
|
#
|
||||||
|
# For more info, see: https://weechat.org/doc/quickstart
|
||||||
|
#
|
||||||
|
|
||||||
|
[var]
|
||||||
|
python.go.auto_jump = "off"
|
||||||
|
python.go.buffer_number = "on"
|
||||||
|
python.go.color_name = "black,cyan"
|
||||||
|
python.go.color_name_highlight = "red,cyan"
|
||||||
|
python.go.color_name_highlight_selected = "red,brown"
|
||||||
|
python.go.color_name_selected = "black,brown"
|
||||||
|
python.go.color_number = "yellow,magenta"
|
||||||
|
python.go.color_number_selected = "yellow,red"
|
||||||
|
python.go.fuzzy_search = "off"
|
||||||
|
python.go.message = "Go to: "
|
||||||
|
python.go.short_name = "off"
|
||||||
|
python.go.sort = "number,beginning"
|
||||||
|
python.go.use_core_instead_weechat = "off"
|
||||||
|
|
||||||
|
[desc]
|
||||||
|
python.go.auto_jump = "automatically jump to buffer when it is uniquely selected (default: "off")"
|
||||||
|
python.go.buffer_number = "display buffer number (default: "on")"
|
||||||
|
python.go.color_name = "color for buffer name (not selected) (default: "black,cyan")"
|
||||||
|
python.go.color_name_highlight = "color for highlight in buffer name (not selected) (default: "red,cyan")"
|
||||||
|
python.go.color_name_highlight_selected = "color for highlight in a selected buffer name (default: "red,brown")"
|
||||||
|
python.go.color_name_selected = "color for a selected buffer name (default: "black,brown")"
|
||||||
|
python.go.color_number = "color for buffer number (not selected) (default: "yellow,magenta")"
|
||||||
|
python.go.color_number_selected = "color for selected buffer number (default: "yellow,red")"
|
||||||
|
python.go.fuzzy_search = "search buffer matches using approximation (default: "off")"
|
||||||
|
python.go.message = "message to display before list of buffers (default: "Go to: ")"
|
||||||
|
python.go.short_name = "display and search in short names instead of buffer name (default: "off")"
|
||||||
|
python.go.sort = "comma-separated list of keys to sort buffers (the order is important, sorts are performed in the given order): name = sort by name (or short name), (default: "number,beginning")"
|
||||||
|
python.go.use_core_instead_weechat = "use name "core" instead of "weechat" for core buffer (default: "off")"
|
14
weechat/.weechat/python.conf
Normal file
14
weechat/.weechat/python.conf
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#
|
||||||
|
# weechat -- python.conf
|
||||||
|
#
|
||||||
|
# WARNING: It is NOT recommended to edit this file by hand,
|
||||||
|
# especially if WeeChat is running.
|
||||||
|
#
|
||||||
|
# Use /set or similar command to change settings in WeeChat.
|
||||||
|
#
|
||||||
|
# For more info, see: https://weechat.org/doc/quickstart
|
||||||
|
#
|
||||||
|
|
||||||
|
[look]
|
||||||
|
check_license = off
|
||||||
|
eval_keep_context = on
|
1
weechat/.weechat/python/autoload/autosort.py
Symbolic link
1
weechat/.weechat/python/autoload/autosort.py
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../autosort.py
|
1
weechat/.weechat/python/autoload/colorize_nicks.py
Symbolic link
1
weechat/.weechat/python/autoload/colorize_nicks.py
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../colorize_nicks.py
|
1
weechat/.weechat/python/autoload/go.py
Symbolic link
1
weechat/.weechat/python/autoload/go.py
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../go.py
|
1
weechat/.weechat/python/autoload/urlgrab.py
Symbolic link
1
weechat/.weechat/python/autoload/urlgrab.py
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../urlgrab.py
|
1
weechat/.weechat/python/autoload/zerotab.py
Symbolic link
1
weechat/.weechat/python/autoload/zerotab.py
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../zerotab.py
|
923
weechat/.weechat/python/autosort.py
Normal file
923
weechat/.weechat/python/autosort.py
Normal file
@ -0,0 +1,923 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
#
|
||||||
|
# Copyright (C) 2013-2017 Maarten de Vries <maarten@de-vri.es>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Autosort automatically keeps your buffers sorted and grouped by server.
|
||||||
|
# You can define your own sorting rules. See /help autosort for more details.
|
||||||
|
#
|
||||||
|
# https://github.com/de-vri-es/weechat-autosort
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Changelog:
|
||||||
|
# 3.3:
|
||||||
|
# * Fix the /autosort debug command for unicode.
|
||||||
|
# * Update the default rules to work better with Slack.
|
||||||
|
# 3.2:
|
||||||
|
# * Fix python3 compatiblity.
|
||||||
|
# 3.1:
|
||||||
|
# * Use colors to format the help text.
|
||||||
|
# 3.0:
|
||||||
|
# * Switch to evaluated expressions for sorting.
|
||||||
|
# * Add `/autosort debug` command.
|
||||||
|
# * Add ${info:autosort_replace,from,to,text} to replace substrings in sort rules.
|
||||||
|
# * Add ${info:autosort_order,value,first,second,third} to ease writing sort rules.
|
||||||
|
# * Make tab completion context aware.
|
||||||
|
# 2.8:
|
||||||
|
# * Fix compatibility with python 3 regarding unicode handling.
|
||||||
|
# 2.7:
|
||||||
|
# * Fix sorting of buffers with spaces in their name.
|
||||||
|
# 2.6:
|
||||||
|
# * Ignore case in rules when doing case insensitive sorting.
|
||||||
|
# 2.5:
|
||||||
|
# * Fix handling unicode buffer names.
|
||||||
|
# * Add hint to set irc.look.server_buffer to independent and buffers.look.indenting to on.
|
||||||
|
# 2.4:
|
||||||
|
# * Make script python3 compatible.
|
||||||
|
# 2.3:
|
||||||
|
# * Fix sorting items without score last (regressed in 2.2).
|
||||||
|
# 2.2:
|
||||||
|
# * Add configuration option for signals that trigger a sort.
|
||||||
|
# * Add command to manually trigger a sort (/autosort sort).
|
||||||
|
# * Add replacement patterns to apply before sorting.
|
||||||
|
# 2.1:
|
||||||
|
# * Fix some minor style issues.
|
||||||
|
# 2.0:
|
||||||
|
# * Allow for custom sort rules.
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
import json
|
||||||
|
import math
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
import time
|
||||||
|
import weechat
|
||||||
|
|
||||||
|
SCRIPT_NAME = 'autosort'
|
||||||
|
SCRIPT_AUTHOR = 'Maarten de Vries <maarten@de-vri.es>'
|
||||||
|
SCRIPT_VERSION = '3.3'
|
||||||
|
SCRIPT_LICENSE = 'GPL3'
|
||||||
|
SCRIPT_DESC = 'Flexible automatic (or manual) buffer sorting based on eval expressions.'
|
||||||
|
|
||||||
|
|
||||||
|
config = None
|
||||||
|
hooks = []
|
||||||
|
timer = None
|
||||||
|
|
||||||
|
# Make sure that unicode, bytes and str are always available in python2 and 3.
|
||||||
|
# For python 2, str == bytes
|
||||||
|
# For python 3, str == unicode
|
||||||
|
if sys.version_info[0] >= 3:
|
||||||
|
unicode = str
|
||||||
|
|
||||||
|
def ensure_str(input):
|
||||||
|
'''
|
||||||
|
Make sure the given type if the correct string type for the current python version.
|
||||||
|
That means bytes for python2 and unicode for python3.
|
||||||
|
'''
|
||||||
|
if not isinstance(input, str):
|
||||||
|
if isinstance(input, bytes):
|
||||||
|
return input.encode('utf-8')
|
||||||
|
if isinstance(input, unicode):
|
||||||
|
return input.decode('utf-8')
|
||||||
|
return input
|
||||||
|
|
||||||
|
|
||||||
|
if hasattr(time, 'perf_counter'):
|
||||||
|
perf_counter = time.perf_counter
|
||||||
|
else:
|
||||||
|
perf_counter = time.clock
|
||||||
|
|
||||||
|
def casefold(string):
|
||||||
|
if hasattr(string, 'casefold'): return string.casefold()
|
||||||
|
# Fall back to lowercasing for python2.
|
||||||
|
return string.lower()
|
||||||
|
|
||||||
|
def list_swap(values, a, b):
|
||||||
|
values[a], values[b] = values[b], values[a]
|
||||||
|
|
||||||
|
def list_move(values, old_index, new_index):
|
||||||
|
values.insert(new_index, values.pop(old_index))
|
||||||
|
|
||||||
|
def list_find(collection, value):
|
||||||
|
for i, elem in enumerate(collection):
|
||||||
|
if elem == value: return i
|
||||||
|
return None
|
||||||
|
|
||||||
|
class HumanReadableError(Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def parse_int(arg, arg_name = 'argument'):
|
||||||
|
''' Parse an integer and provide a more human readable error. '''
|
||||||
|
arg = arg.strip()
|
||||||
|
try:
|
||||||
|
return int(arg)
|
||||||
|
except ValueError:
|
||||||
|
raise HumanReadableError('Invalid {0}: expected integer, got "{1}".'.format(arg_name, arg))
|
||||||
|
|
||||||
|
def decode_rules(blob):
|
||||||
|
parsed = json.loads(blob)
|
||||||
|
if not isinstance(parsed, list):
|
||||||
|
log('Malformed rules, expected a JSON encoded list of strings, but got a {0}. No rules have been loaded. Please fix the setting manually.'.format(type(parsed)))
|
||||||
|
return []
|
||||||
|
|
||||||
|
for i, entry in enumerate(parsed):
|
||||||
|
if not isinstance(entry, (str, unicode)):
|
||||||
|
log('Rule #{0} is not a string but a {1}. No rules have been loaded. Please fix the setting manually.'.format(i, type(entry)))
|
||||||
|
return []
|
||||||
|
|
||||||
|
return parsed
|
||||||
|
|
||||||
|
def decode_helpers(blob):
|
||||||
|
parsed = json.loads(blob)
|
||||||
|
if not isinstance(parsed, dict):
|
||||||
|
log('Malformed helpers, expected a JSON encoded dictonary but got a {0}. No helpers have been loaded. Please fix the setting manually.'.format(type(parsed)))
|
||||||
|
return {}
|
||||||
|
|
||||||
|
for key, value in parsed.items():
|
||||||
|
if not isinstance(value, (str, unicode)):
|
||||||
|
log('Helper "{0}" is not a string but a {1}. No helpers have been loaded. Please fix seting manually.'.format(key, type(value)))
|
||||||
|
return {}
|
||||||
|
return parsed
|
||||||
|
|
||||||
|
class Config:
|
||||||
|
''' The autosort configuration. '''
|
||||||
|
|
||||||
|
default_rules = json.dumps([
|
||||||
|
'${core_first}',
|
||||||
|
'${irc_last}',
|
||||||
|
'${buffer.plugin.name}',
|
||||||
|
'${irc_raw_first}',
|
||||||
|
'${if:${plugin}==irc?${server}}',
|
||||||
|
'${if:${plugin}==irc?${info:autosort_order,${type},server,*,channel,private}}',
|
||||||
|
'${if:${plugin}==irc?${hashless_name}}',
|
||||||
|
'${buffer.full_name}',
|
||||||
|
])
|
||||||
|
|
||||||
|
default_helpers = json.dumps({
|
||||||
|
'core_first': '${if:${buffer.full_name}!=core.weechat}',
|
||||||
|
'irc_first': '${if:${buffer.plugin.name}!=irc}',
|
||||||
|
'irc_last': '${if:${buffer.plugin.name}==irc}',
|
||||||
|
'irc_raw_first': '${if:${buffer.full_name}!=irc.irc_raw}',
|
||||||
|
'irc_raw_last': '${if:${buffer.full_name}==irc.irc_raw}',
|
||||||
|
'hashless_name': '${info:autosort_replace,#,,${buffer.name}}',
|
||||||
|
})
|
||||||
|
|
||||||
|
default_signal_delay = 5
|
||||||
|
|
||||||
|
default_signals = 'buffer_opened buffer_merged buffer_unmerged buffer_renamed'
|
||||||
|
|
||||||
|
def __init__(self, filename):
|
||||||
|
''' Initialize the configuration. '''
|
||||||
|
|
||||||
|
self.filename = filename
|
||||||
|
self.config_file = weechat.config_new(self.filename, '', '')
|
||||||
|
self.sorting_section = None
|
||||||
|
self.v3_section = None
|
||||||
|
|
||||||
|
self.case_sensitive = False
|
||||||
|
self.rules = []
|
||||||
|
self.helpers = {}
|
||||||
|
self.signals = []
|
||||||
|
self.signal_delay = Config.default_signal_delay,
|
||||||
|
self.sort_on_config = True
|
||||||
|
|
||||||
|
self.__case_sensitive = None
|
||||||
|
self.__rules = None
|
||||||
|
self.__helpers = None
|
||||||
|
self.__signals = None
|
||||||
|
self.__signal_delay = None
|
||||||
|
self.__sort_on_config = None
|
||||||
|
|
||||||
|
if not self.config_file:
|
||||||
|
log('Failed to initialize configuration file "{0}".'.format(self.filename))
|
||||||
|
return
|
||||||
|
|
||||||
|
self.sorting_section = weechat.config_new_section(self.config_file, 'sorting', False, False, '', '', '', '', '', '', '', '', '', '')
|
||||||
|
self.v3_section = weechat.config_new_section(self.config_file, 'v3', False, False, '', '', '', '', '', '', '', '', '', '')
|
||||||
|
|
||||||
|
if not self.sorting_section:
|
||||||
|
log('Failed to initialize section "sorting" of configuration file.')
|
||||||
|
weechat.config_free(self.config_file)
|
||||||
|
return
|
||||||
|
|
||||||
|
self.__case_sensitive = weechat.config_new_option(
|
||||||
|
self.config_file, self.sorting_section,
|
||||||
|
'case_sensitive', 'boolean',
|
||||||
|
'If this option is on, sorting is case sensitive.',
|
||||||
|
'', 0, 0, 'off', 'off', 0,
|
||||||
|
'', '', '', '', '', ''
|
||||||
|
)
|
||||||
|
|
||||||
|
weechat.config_new_option(
|
||||||
|
self.config_file, self.sorting_section,
|
||||||
|
'rules', 'string',
|
||||||
|
'Sort rules used by autosort v2.x and below. Not used by autosort anymore.',
|
||||||
|
'', 0, 0, '', '', 0,
|
||||||
|
'', '', '', '', '', ''
|
||||||
|
)
|
||||||
|
|
||||||
|
weechat.config_new_option(
|
||||||
|
self.config_file, self.sorting_section,
|
||||||
|
'replacements', 'string',
|
||||||
|
'Replacement patterns used by autosort v2.x and below. Not used by autosort anymore.',
|
||||||
|
'', 0, 0, '', '', 0,
|
||||||
|
'', '', '', '', '', ''
|
||||||
|
)
|
||||||
|
|
||||||
|
self.__rules = weechat.config_new_option(
|
||||||
|
self.config_file, self.v3_section,
|
||||||
|
'rules', 'string',
|
||||||
|
'An ordered list of sorting rules encoded as JSON. See /help autosort for commands to manipulate these rules.',
|
||||||
|
'', 0, 0, Config.default_rules, Config.default_rules, 0,
|
||||||
|
'', '', '', '', '', ''
|
||||||
|
)
|
||||||
|
|
||||||
|
self.__helpers = weechat.config_new_option(
|
||||||
|
self.config_file, self.v3_section,
|
||||||
|
'helpers', 'string',
|
||||||
|
'A dictionary helper variables to use in the sorting rules, encoded as JSON. See /help autosort for commands to manipulate these helpers.',
|
||||||
|
'', 0, 0, Config.default_helpers, Config.default_helpers, 0,
|
||||||
|
'', '', '', '', '', ''
|
||||||
|
)
|
||||||
|
|
||||||
|
self.__signals = weechat.config_new_option(
|
||||||
|
self.config_file, self.sorting_section,
|
||||||
|
'signals', 'string',
|
||||||
|
'A space separated list of signals that will cause autosort to resort your buffer list.',
|
||||||
|
'', 0, 0, Config.default_signals, Config.default_signals, 0,
|
||||||
|
'', '', '', '', '', ''
|
||||||
|
)
|
||||||
|
|
||||||
|
self.__signal_delay = weechat.config_new_option(
|
||||||
|
self.config_file, self.sorting_section,
|
||||||
|
'signal_delay', 'integer',
|
||||||
|
'Delay in milliseconds to wait after a signal before sorting the buffer list. This prevents triggering many times if multiple signals arrive in a short time. It can also be needed to wait for buffer localvars to be available.',
|
||||||
|
'', 0, 1000, str(Config.default_signal_delay), str(Config.default_signal_delay), 0,
|
||||||
|
'', '', '', '', '', ''
|
||||||
|
)
|
||||||
|
|
||||||
|
self.__sort_on_config = weechat.config_new_option(
|
||||||
|
self.config_file, self.sorting_section,
|
||||||
|
'sort_on_config_change', 'boolean',
|
||||||
|
'Decides if the buffer list should be sorted when autosort configuration changes.',
|
||||||
|
'', 0, 0, 'on', 'on', 0,
|
||||||
|
'', '', '', '', '', ''
|
||||||
|
)
|
||||||
|
|
||||||
|
if weechat.config_read(self.config_file) != weechat.WEECHAT_RC_OK:
|
||||||
|
log('Failed to load configuration file.')
|
||||||
|
|
||||||
|
if weechat.config_write(self.config_file) != weechat.WEECHAT_RC_OK:
|
||||||
|
log('Failed to write configuration file.')
|
||||||
|
|
||||||
|
self.reload()
|
||||||
|
|
||||||
|
def reload(self):
|
||||||
|
''' Load configuration variables. '''
|
||||||
|
|
||||||
|
self.case_sensitive = weechat.config_boolean(self.__case_sensitive)
|
||||||
|
|
||||||
|
rules_blob = weechat.config_string(self.__rules)
|
||||||
|
helpers_blob = weechat.config_string(self.__helpers)
|
||||||
|
signals_blob = weechat.config_string(self.__signals)
|
||||||
|
|
||||||
|
self.rules = decode_rules(rules_blob)
|
||||||
|
self.helpers = decode_helpers(helpers_blob)
|
||||||
|
self.signals = signals_blob.split()
|
||||||
|
self.signal_delay = weechat.config_integer(self.__signal_delay)
|
||||||
|
self.sort_on_config = weechat.config_boolean(self.__sort_on_config)
|
||||||
|
|
||||||
|
def save_rules(self, run_callback = True):
|
||||||
|
''' Save the current rules to the configuration. '''
|
||||||
|
weechat.config_option_set(self.__rules, json.dumps(self.rules), run_callback)
|
||||||
|
|
||||||
|
def save_helpers(self, run_callback = True):
|
||||||
|
''' Save the current helpers to the configuration. '''
|
||||||
|
weechat.config_option_set(self.__helpers, json.dumps(self.helpers), run_callback)
|
||||||
|
|
||||||
|
|
||||||
|
def pad(sequence, length, padding = None):
|
||||||
|
''' Pad a list until is has a certain length. '''
|
||||||
|
return sequence + [padding] * max(0, (length - len(sequence)))
|
||||||
|
|
||||||
|
|
||||||
|
def log(message, buffer = 'NULL'):
|
||||||
|
weechat.prnt(buffer, 'autosort: {0}'.format(message))
|
||||||
|
|
||||||
|
|
||||||
|
def get_buffers():
|
||||||
|
''' Get a list of all the buffers in weechat. '''
|
||||||
|
hdata = weechat.hdata_get('buffer')
|
||||||
|
buffer = weechat.hdata_get_list(hdata, "gui_buffers");
|
||||||
|
|
||||||
|
result = []
|
||||||
|
while buffer:
|
||||||
|
number = weechat.hdata_integer(hdata, buffer, 'number')
|
||||||
|
result.append((number, buffer))
|
||||||
|
buffer = weechat.hdata_pointer(hdata, buffer, 'next_buffer')
|
||||||
|
return hdata, result
|
||||||
|
|
||||||
|
class MergedBuffers(list):
|
||||||
|
""" A list of merged buffers, possibly of size 1. """
|
||||||
|
def __init__(self, number):
|
||||||
|
super(MergedBuffers, self).__init__()
|
||||||
|
self.number = number
|
||||||
|
|
||||||
|
def merge_buffer_list(buffers):
|
||||||
|
'''
|
||||||
|
Group merged buffers together.
|
||||||
|
The output is a list of MergedBuffers.
|
||||||
|
'''
|
||||||
|
if not buffers: return []
|
||||||
|
result = {}
|
||||||
|
for number, buffer in buffers:
|
||||||
|
if number not in result: result[number] = MergedBuffers(number)
|
||||||
|
result[number].append(buffer)
|
||||||
|
return result.values()
|
||||||
|
|
||||||
|
def sort_buffers(hdata, buffers, rules, helpers, case_sensitive):
|
||||||
|
for merged in buffers:
|
||||||
|
for buffer in merged:
|
||||||
|
name = weechat.hdata_string(hdata, buffer, 'name')
|
||||||
|
|
||||||
|
return sorted(buffers, key=merged_sort_key(rules, helpers, case_sensitive))
|
||||||
|
|
||||||
|
def buffer_sort_key(rules, helpers, case_sensitive):
|
||||||
|
''' Create a sort key function for a list of lists of merged buffers. '''
|
||||||
|
def key(buffer):
|
||||||
|
extra_vars = {}
|
||||||
|
for helper_name, helper in sorted(helpers.items()):
|
||||||
|
expanded = weechat.string_eval_expression(helper, {"buffer": buffer}, {}, {})
|
||||||
|
extra_vars[helper_name] = expanded if case_sensitive else casefold(expanded)
|
||||||
|
result = []
|
||||||
|
for rule in rules:
|
||||||
|
expanded = weechat.string_eval_expression(rule, {"buffer": buffer}, extra_vars, {})
|
||||||
|
result.append(expanded if case_sensitive else casefold(expanded))
|
||||||
|
return result
|
||||||
|
|
||||||
|
return key
|
||||||
|
|
||||||
|
def merged_sort_key(rules, helpers, case_sensitive):
|
||||||
|
buffer_key = buffer_sort_key(rules, helpers, case_sensitive)
|
||||||
|
def key(merged):
|
||||||
|
best = None
|
||||||
|
for buffer in merged:
|
||||||
|
this = buffer_key(buffer)
|
||||||
|
if best is None or this < best: best = this
|
||||||
|
return best
|
||||||
|
return key
|
||||||
|
|
||||||
|
def apply_buffer_order(buffers):
|
||||||
|
''' Sort the buffers in weechat according to the given order. '''
|
||||||
|
for i, buffer in enumerate(buffers):
|
||||||
|
weechat.buffer_set(buffer[0], "number", str(i + 1))
|
||||||
|
|
||||||
|
def split_args(args, expected, optional = 0):
|
||||||
|
''' Split an argument string in the desired number of arguments. '''
|
||||||
|
split = args.split(' ', expected - 1)
|
||||||
|
if (len(split) < expected):
|
||||||
|
raise HumanReadableError('Expected at least {0} arguments, got {1}.'.format(expected, len(split)))
|
||||||
|
return split[:-1] + pad(split[-1].split(' ', optional), optional + 1, '')
|
||||||
|
|
||||||
|
def do_sort():
|
||||||
|
hdata, buffers = get_buffers()
|
||||||
|
buffers = merge_buffer_list(buffers)
|
||||||
|
buffers = sort_buffers(hdata, buffers, config.rules, config.helpers, config.case_sensitive)
|
||||||
|
apply_buffer_order(buffers)
|
||||||
|
|
||||||
|
def command_sort(buffer, command, args):
|
||||||
|
''' Sort the buffers and print a confirmation. '''
|
||||||
|
start = perf_counter()
|
||||||
|
do_sort()
|
||||||
|
elapsed = perf_counter() - start
|
||||||
|
log("Finished sorting buffers in {0:.4f} seconds.".format(elapsed))
|
||||||
|
return weechat.WEECHAT_RC_OK
|
||||||
|
|
||||||
|
def command_debug(buffer, command, args):
|
||||||
|
hdata, buffers = get_buffers()
|
||||||
|
buffers = merge_buffer_list(buffers)
|
||||||
|
|
||||||
|
# Show evaluation results.
|
||||||
|
log('Individual evaluation results:')
|
||||||
|
start = perf_counter()
|
||||||
|
key = buffer_sort_key(config.rules, config.helpers, config.case_sensitive)
|
||||||
|
results = []
|
||||||
|
for merged in buffers:
|
||||||
|
for buffer in merged:
|
||||||
|
fullname = weechat.hdata_string(hdata, buffer, 'full_name')
|
||||||
|
results.append((fullname, key(buffer)))
|
||||||
|
elapsed = perf_counter() - start
|
||||||
|
|
||||||
|
for fullname, result in results:
|
||||||
|
fullname = ensure_str(fullname)
|
||||||
|
result = [ensure_str(x) for x in result]
|
||||||
|
log('{0}: {1}'.format(fullname, result))
|
||||||
|
log('Computing evalutaion results took {0:.4f} seconds.'.format(elapsed))
|
||||||
|
|
||||||
|
return weechat.WEECHAT_RC_OK
|
||||||
|
|
||||||
|
def command_rule_list(buffer, command, args):
|
||||||
|
''' Show the list of sorting rules. '''
|
||||||
|
output = 'Sorting rules:\n'
|
||||||
|
for i, rule in enumerate(config.rules):
|
||||||
|
output += ' {0}: {1}\n'.format(i, rule)
|
||||||
|
if not len(config.rules):
|
||||||
|
output += ' No sorting rules configured.\n'
|
||||||
|
log(output )
|
||||||
|
|
||||||
|
return weechat.WEECHAT_RC_OK
|
||||||
|
|
||||||
|
|
||||||
|
def command_rule_add(buffer, command, args):
|
||||||
|
''' Add a rule to the rule list. '''
|
||||||
|
config.rules.append(args)
|
||||||
|
config.save_rules()
|
||||||
|
command_rule_list(buffer, command, '')
|
||||||
|
|
||||||
|
return weechat.WEECHAT_RC_OK
|
||||||
|
|
||||||
|
|
||||||
|
def command_rule_insert(buffer, command, args):
|
||||||
|
''' Insert a rule at the desired position in the rule list. '''
|
||||||
|
index, rule = split_args(args, 2)
|
||||||
|
index = parse_int(index, 'index')
|
||||||
|
|
||||||
|
config.rules.insert(index, rule)
|
||||||
|
config.save_rules()
|
||||||
|
command_rule_list(buffer, command, '')
|
||||||
|
return weechat.WEECHAT_RC_OK
|
||||||
|
|
||||||
|
|
||||||
|
def command_rule_update(buffer, command, args):
|
||||||
|
''' Update a rule in the rule list. '''
|
||||||
|
index, rule = split_args(args, 2)
|
||||||
|
index = parse_int(index, 'index')
|
||||||
|
|
||||||
|
config.rules[index] = rule
|
||||||
|
config.save_rules()
|
||||||
|
command_rule_list(buffer, command, '')
|
||||||
|
return weechat.WEECHAT_RC_OK
|
||||||
|
|
||||||
|
|
||||||
|
def command_rule_delete(buffer, command, args):
|
||||||
|
''' Delete a rule from the rule list. '''
|
||||||
|
index = args.strip()
|
||||||
|
index = parse_int(index, 'index')
|
||||||
|
|
||||||
|
config.rules.pop(index)
|
||||||
|
config.save_rules()
|
||||||
|
command_rule_list(buffer, command, '')
|
||||||
|
return weechat.WEECHAT_RC_OK
|
||||||
|
|
||||||
|
|
||||||
|
def command_rule_move(buffer, command, args):
|
||||||
|
''' Move a rule to a new position. '''
|
||||||
|
index_a, index_b = split_args(args, 2)
|
||||||
|
index_a = parse_int(index_a, 'index')
|
||||||
|
index_b = parse_int(index_b, 'index')
|
||||||
|
|
||||||
|
list_move(config.rules, index_a, index_b)
|
||||||
|
config.save_rules()
|
||||||
|
command_rule_list(buffer, command, '')
|
||||||
|
return weechat.WEECHAT_RC_OK
|
||||||
|
|
||||||
|
|
||||||
|
def command_rule_swap(buffer, command, args):
|
||||||
|
''' Swap two rules. '''
|
||||||
|
index_a, index_b = split_args(args, 2)
|
||||||
|
index_a = parse_int(index_a, 'index')
|
||||||
|
index_b = parse_int(index_b, 'index')
|
||||||
|
|
||||||
|
list_swap(config.rules, index_a, index_b)
|
||||||
|
config.save_rules()
|
||||||
|
command_rule_list(buffer, command, '')
|
||||||
|
return weechat.WEECHAT_RC_OK
|
||||||
|
|
||||||
|
|
||||||
|
def command_helper_list(buffer, command, args):
|
||||||
|
''' Show the list of helpers. '''
|
||||||
|
output = 'Helper variables:\n'
|
||||||
|
|
||||||
|
width = max(map(lambda x: len(x) if len(x) <= 30 else 0, config.helpers.keys()))
|
||||||
|
|
||||||
|
for name, expression in sorted(config.helpers.items()):
|
||||||
|
output += ' {0:>{width}}: {1}\n'.format(name, expression, width=width)
|
||||||
|
if not len(config.helpers):
|
||||||
|
output += ' No helper variables configured.'
|
||||||
|
log(output)
|
||||||
|
|
||||||
|
return weechat.WEECHAT_RC_OK
|
||||||
|
|
||||||
|
|
||||||
|
def command_helper_set(buffer, command, args):
|
||||||
|
''' Add/update a helper to the helper list. '''
|
||||||
|
name, expression = split_args(args, 2)
|
||||||
|
|
||||||
|
config.helpers[name] = expression
|
||||||
|
config.save_helpers()
|
||||||
|
command_helper_list(buffer, command, '')
|
||||||
|
|
||||||
|
return weechat.WEECHAT_RC_OK
|
||||||
|
|
||||||
|
def command_helper_delete(buffer, command, args):
|
||||||
|
''' Delete a helper from the helper list. '''
|
||||||
|
name = args.strip()
|
||||||
|
|
||||||
|
del config.helpers[name]
|
||||||
|
config.save_helpers()
|
||||||
|
command_helper_list(buffer, command, '')
|
||||||
|
return weechat.WEECHAT_RC_OK
|
||||||
|
|
||||||
|
|
||||||
|
def command_helper_rename(buffer, command, args):
|
||||||
|
''' Rename a helper to a new position. '''
|
||||||
|
old_name, new_name = split_args(args, 2)
|
||||||
|
|
||||||
|
try:
|
||||||
|
config.helpers[new_name] = config.helpers[old_name]
|
||||||
|
del config.helpers[old_name]
|
||||||
|
except KeyError:
|
||||||
|
raise HumanReadableError('No such helper: {0}'.format(old_name))
|
||||||
|
config.save_helpers()
|
||||||
|
command_helper_list(buffer, command, '')
|
||||||
|
return weechat.WEECHAT_RC_OK
|
||||||
|
|
||||||
|
|
||||||
|
def command_helper_swap(buffer, command, args):
|
||||||
|
''' Swap two helpers. '''
|
||||||
|
a, b = split_args(args, 2)
|
||||||
|
try:
|
||||||
|
config.helpers[b], config.helpers[a] = config.helpers[a], config.helpers[b]
|
||||||
|
except KeyError as e:
|
||||||
|
raise HumanReadableError('No such helper: {0}'.format(e.args[0]))
|
||||||
|
|
||||||
|
config.helpers.swap(index_a, index_b)
|
||||||
|
config.save_helpers()
|
||||||
|
command_helper_list(buffer, command, '')
|
||||||
|
return weechat.WEECHAT_RC_OK
|
||||||
|
|
||||||
|
def call_command(buffer, command, args, subcommands):
|
||||||
|
''' Call a subccommand from a dictionary. '''
|
||||||
|
subcommand, tail = pad(args.split(' ', 1), 2, '')
|
||||||
|
subcommand = subcommand.strip()
|
||||||
|
if (subcommand == ''):
|
||||||
|
child = subcommands.get(' ')
|
||||||
|
else:
|
||||||
|
command = command + [subcommand]
|
||||||
|
child = subcommands.get(subcommand)
|
||||||
|
|
||||||
|
if isinstance(child, dict):
|
||||||
|
return call_command(buffer, command, tail, child)
|
||||||
|
elif callable(child):
|
||||||
|
return child(buffer, command, tail)
|
||||||
|
|
||||||
|
log('{0}: command not found'.format(' '.join(command)))
|
||||||
|
return weechat.WEECHAT_RC_ERROR
|
||||||
|
|
||||||
|
def on_signal(*args, **kwargs):
|
||||||
|
global timer
|
||||||
|
''' Called whenever the buffer list changes. '''
|
||||||
|
if timer is not None:
|
||||||
|
weechat.unhook(timer)
|
||||||
|
timer = None
|
||||||
|
weechat.hook_timer(config.signal_delay, 0, 1, "on_timeout", "")
|
||||||
|
return weechat.WEECHAT_RC_OK
|
||||||
|
|
||||||
|
def on_timeout(pointer, remaining_calls):
|
||||||
|
global timer
|
||||||
|
timer = None
|
||||||
|
do_sort()
|
||||||
|
return weechat.WEECHAT_RC_OK
|
||||||
|
|
||||||
|
def apply_config():
|
||||||
|
# Unhook all signals and hook the new ones.
|
||||||
|
for hook in hooks:
|
||||||
|
weechat.unhook(hook)
|
||||||
|
for signal in config.signals:
|
||||||
|
hooks.append(weechat.hook_signal(signal, 'on_signal', ''))
|
||||||
|
|
||||||
|
if config.sort_on_config:
|
||||||
|
do_sort()
|
||||||
|
|
||||||
|
def on_config_changed(*args, **kwargs):
|
||||||
|
''' Called whenever the configuration changes. '''
|
||||||
|
config.reload()
|
||||||
|
apply_config()
|
||||||
|
|
||||||
|
return weechat.WEECHAT_RC_OK
|
||||||
|
|
||||||
|
def parse_arg(args):
|
||||||
|
if not args: return None, None
|
||||||
|
|
||||||
|
result = ''
|
||||||
|
escaped = False
|
||||||
|
for i, c in enumerate(args):
|
||||||
|
if not escaped:
|
||||||
|
if c == '\\':
|
||||||
|
escaped = True
|
||||||
|
continue
|
||||||
|
elif c == ',':
|
||||||
|
return result, args[i+1:]
|
||||||
|
result += c
|
||||||
|
escaped = False
|
||||||
|
return result, None
|
||||||
|
|
||||||
|
def parse_args(args, max = None):
|
||||||
|
result = []
|
||||||
|
i = 0
|
||||||
|
while max is None or i < max:
|
||||||
|
arg, args = parse_arg(args)
|
||||||
|
if arg is None: break
|
||||||
|
result.append(arg)
|
||||||
|
i += 1
|
||||||
|
return result, args
|
||||||
|
|
||||||
|
def on_info_replace(pointer, name, arguments):
|
||||||
|
arguments, rest = parse_args(arguments, 3)
|
||||||
|
if rest or len(arguments) < 3:
|
||||||
|
log('usage: ${{info:{0},old,new,text}}'.format(name))
|
||||||
|
return ''
|
||||||
|
old, new, text = arguments
|
||||||
|
|
||||||
|
return text.replace(old, new)
|
||||||
|
|
||||||
|
def on_info_order(pointer, name, arguments):
|
||||||
|
arguments, rest = parse_args(arguments)
|
||||||
|
if len(arguments) < 1:
|
||||||
|
log('usage: ${{info:{0},value,first,second,third,...}}'.format(name))
|
||||||
|
return ''
|
||||||
|
|
||||||
|
value = arguments[0]
|
||||||
|
keys = arguments[1:]
|
||||||
|
if not keys: return '0'
|
||||||
|
|
||||||
|
# Find the value in the keys (or '*' if we can't find it)
|
||||||
|
result = list_find(keys, value)
|
||||||
|
if result is None: result = list_find(keys, '*')
|
||||||
|
if result is None: result = len(keys)
|
||||||
|
|
||||||
|
# Pad result with leading zero to make sure string sorting works.
|
||||||
|
width = int(math.log10(len(keys))) + 1
|
||||||
|
return '{0:0{1}}'.format(result, width)
|
||||||
|
|
||||||
|
|
||||||
|
def on_autosort_command(data, buffer, args):
|
||||||
|
''' Called when the autosort command is invoked. '''
|
||||||
|
try:
|
||||||
|
return call_command(buffer, ['/autosort'], args, {
|
||||||
|
' ': command_sort,
|
||||||
|
'sort': command_sort,
|
||||||
|
'debug': command_debug,
|
||||||
|
|
||||||
|
'rules': {
|
||||||
|
' ': command_rule_list,
|
||||||
|
'list': command_rule_list,
|
||||||
|
'add': command_rule_add,
|
||||||
|
'insert': command_rule_insert,
|
||||||
|
'update': command_rule_update,
|
||||||
|
'delete': command_rule_delete,
|
||||||
|
'move': command_rule_move,
|
||||||
|
'swap': command_rule_swap,
|
||||||
|
},
|
||||||
|
'helpers': {
|
||||||
|
' ': command_helper_list,
|
||||||
|
'list': command_helper_list,
|
||||||
|
'set': command_helper_set,
|
||||||
|
'delete': command_helper_delete,
|
||||||
|
'rename': command_helper_rename,
|
||||||
|
'swap': command_helper_swap,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
except HumanReadableError as e:
|
||||||
|
log(e)
|
||||||
|
return weechat.WEECHAT_RC_ERROR
|
||||||
|
|
||||||
|
def add_completions(completion, words):
|
||||||
|
for word in words:
|
||||||
|
weechat.hook_completion_list_add(completion, word, 0, weechat.WEECHAT_LIST_POS_END)
|
||||||
|
|
||||||
|
def autosort_complete_rules(words, completion):
|
||||||
|
if len(words) == 0:
|
||||||
|
add_completions(completion, ['add', 'delete', 'insert', 'list', 'move', 'swap', 'update'])
|
||||||
|
if len(words) == 1 and words[0] in ('delete', 'insert', 'move', 'swap', 'update'):
|
||||||
|
add_completions(completion, map(str, range(len(config.rules))))
|
||||||
|
if len(words) == 2 and words[0] in ('move', 'swap'):
|
||||||
|
add_completions(completion, map(str, range(len(config.rules))))
|
||||||
|
if len(words) == 2 and words[0] in ('update'):
|
||||||
|
try:
|
||||||
|
add_completions(completion, [config.rules[int(words[1])]])
|
||||||
|
except KeyError: pass
|
||||||
|
except ValueError: pass
|
||||||
|
else:
|
||||||
|
add_completions(completion, [''])
|
||||||
|
return weechat.WEECHAT_RC_OK
|
||||||
|
|
||||||
|
def autosort_complete_helpers(words, completion):
|
||||||
|
if len(words) == 0:
|
||||||
|
add_completions(completion, ['delete', 'list', 'rename', 'set', 'swap'])
|
||||||
|
elif len(words) == 1 and words[0] in ('delete', 'rename', 'set', 'swap'):
|
||||||
|
add_completions(completion, sorted(config.helpers.keys()))
|
||||||
|
elif len(words) == 2 and words[0] == 'swap':
|
||||||
|
add_completions(completion, sorted(config.helpers.keys()))
|
||||||
|
elif len(words) == 2 and words[0] == 'rename':
|
||||||
|
add_completions(completion, sorted(config.helpers.keys()))
|
||||||
|
elif len(words) == 2 and words[0] == 'set':
|
||||||
|
try:
|
||||||
|
add_completions(completion, [config.helpers[words[1]]])
|
||||||
|
except KeyError: pass
|
||||||
|
return weechat.WEECHAT_RC_OK
|
||||||
|
|
||||||
|
def on_autosort_complete(data, name, buffer, completion):
|
||||||
|
cmdline = weechat.buffer_get_string(buffer, "input")
|
||||||
|
cursor = weechat.buffer_get_integer(buffer, "input_pos")
|
||||||
|
prefix = cmdline[:cursor]
|
||||||
|
words = prefix.split()[1:]
|
||||||
|
|
||||||
|
# If the current word isn't finished yet,
|
||||||
|
# ignore it for coming up with completion suggestions.
|
||||||
|
if prefix[-1] != ' ': words = words[:-1]
|
||||||
|
|
||||||
|
if len(words) == 0:
|
||||||
|
add_completions(completion, ['debug', 'helpers', 'rules', 'sort'])
|
||||||
|
elif words[0] == 'rules':
|
||||||
|
return autosort_complete_rules(words[1:], completion)
|
||||||
|
elif words[0] == 'helpers':
|
||||||
|
return autosort_complete_helpers(words[1:], completion)
|
||||||
|
return weechat.WEECHAT_RC_OK
|
||||||
|
|
||||||
|
command_description = r'''{*white}# General commands{reset}
|
||||||
|
|
||||||
|
{*white}/autosort {brown}sort{reset}
|
||||||
|
Manually trigger the buffer sorting.
|
||||||
|
|
||||||
|
{*white}/autosort {brown}debug{reset}
|
||||||
|
Show the evaluation results of the sort rules for each buffer.
|
||||||
|
|
||||||
|
|
||||||
|
{*white}# Sorting rule commands{reset}
|
||||||
|
|
||||||
|
{*white}/autosort{brown} rules list{reset}
|
||||||
|
Print the list of sort rules.
|
||||||
|
|
||||||
|
{*white}/autosort {brown}rules add {cyan}<expression>{reset}
|
||||||
|
Add a new rule at the end of the list.
|
||||||
|
|
||||||
|
{*white}/autosort {brown}rules insert {cyan}<index> <expression>{reset}
|
||||||
|
Insert a new rule at the given index in the list.
|
||||||
|
|
||||||
|
{*white}/autosort {brown}rules update {cyan}<index> <expression>{reset}
|
||||||
|
Update a rule in the list with a new expression.
|
||||||
|
|
||||||
|
{*white}/autosort {brown}rules delete {cyan}<index>
|
||||||
|
Delete a rule from the list.
|
||||||
|
|
||||||
|
{*white}/autosort {brown}rules move {cyan}<index_from> <index_to>{reset}
|
||||||
|
Move a rule from one position in the list to another.
|
||||||
|
|
||||||
|
{*white}/autosort {brown}rules swap {cyan}<index_a> <index_b>{reset}
|
||||||
|
Swap two rules in the list
|
||||||
|
|
||||||
|
|
||||||
|
{*white}# Helper variable commands{reset}
|
||||||
|
|
||||||
|
{*white}/autosort {brown}helpers list
|
||||||
|
Print the list of helper variables.
|
||||||
|
|
||||||
|
{*white}/autosort {brown}helpers set {cyan}<name> <expression>
|
||||||
|
Add or update a helper variable with the given name.
|
||||||
|
|
||||||
|
{*white}/autosort {brown}helpers delete {cyan}<name>
|
||||||
|
Delete a helper variable.
|
||||||
|
|
||||||
|
{*white}/autosort {brown}helpers rename {cyan}<old_name> <new_name>
|
||||||
|
Rename a helper variable.
|
||||||
|
|
||||||
|
{*white}/autosort {brown}helpers swap {cyan}<name_a> <name_b>
|
||||||
|
Swap the expressions of two helper variables in the list.
|
||||||
|
|
||||||
|
|
||||||
|
{*white}# Description
|
||||||
|
Autosort is a weechat script to automatically keep your buffers sorted. The sort
|
||||||
|
order can be customized by defining your own sort rules, but the default should
|
||||||
|
be sane enough for most people. It can also group IRC channel/private buffers
|
||||||
|
under their server buffer if you like.
|
||||||
|
|
||||||
|
{*white}# Sort rules{reset}
|
||||||
|
Autosort evaluates a list of eval expressions (see {*default}/help eval{reset}) and sorts the
|
||||||
|
buffers based on evaluated result. Earlier rules will be considered first. Only
|
||||||
|
if earlier rules produced identical results is the result of the next rule
|
||||||
|
considered for sorting purposes.
|
||||||
|
|
||||||
|
You can debug your sort rules with the `{*default}/autosort debug{reset}` command, which will
|
||||||
|
print the evaluation results of each rule for each buffer.
|
||||||
|
|
||||||
|
{*brown}NOTE:{reset} The sort rules for version 3 are not compatible with version 2 or vice
|
||||||
|
versa. You will have to manually port your old rules to version 3 if you have any.
|
||||||
|
|
||||||
|
{*white}# Helper variables{reset}
|
||||||
|
You may define helper variables for the main sort rules to keep your rules
|
||||||
|
readable. They can be used in the main sort rules as variables. For example,
|
||||||
|
a helper variable named `{cyan}foo{reset}` can be accessed in a main rule with the
|
||||||
|
string `{cyan}${{foo}}{reset}`.
|
||||||
|
|
||||||
|
{*white}# Replacing substrings{reset}
|
||||||
|
There is no default method for replacing text inside eval expressions. However,
|
||||||
|
autosort adds a `replace` info hook that can be used inside eval expressions:
|
||||||
|
{cyan}${{info:autosort_replace,from,to,text}}{reset}
|
||||||
|
|
||||||
|
For example, to strip all hashes from a buffer name, you could write:
|
||||||
|
{cyan}${{info:autosort_replace,#,,${{buffer.name}}}}{reset}
|
||||||
|
|
||||||
|
You can escape commas and backslashes inside the arguments by prefixing them with
|
||||||
|
a backslash.
|
||||||
|
|
||||||
|
{*white}# Automatic or manual sorting{reset}
|
||||||
|
By default, autosort will automatically sort your buffer list whenever a buffer
|
||||||
|
is opened, merged, unmerged or renamed. This should keep your buffers sorted in
|
||||||
|
almost all situations. However, you may wish to change the list of signals that
|
||||||
|
cause your buffer list to be sorted. Simply edit the `{cyan}autosort.sorting.signals{reset}`
|
||||||
|
option to add or remove any signal you like.
|
||||||
|
|
||||||
|
If you remove all signals you can still sort your buffers manually with the
|
||||||
|
`{*default}/autosort sort{reset}` command. To prevent all automatic sorting, the option
|
||||||
|
`{cyan}autosort.sorting.sort_on_config_change{reset}` should also be disabled.
|
||||||
|
|
||||||
|
{*white}# Recommended settings
|
||||||
|
For the best visual effect, consider setting the following options:
|
||||||
|
{*white}/set {cyan}irc.look.server_buffer{reset} {brown}independent{reset}
|
||||||
|
{*white}/set {cyan}buffers.look.indenting{reset} {brown}on{reset}
|
||||||
|
|
||||||
|
The first setting allows server buffers to be sorted independently, which is
|
||||||
|
needed to create a hierarchical tree view of the server and channel buffers.
|
||||||
|
The second one indents channel and private buffers in the buffer list of the
|
||||||
|
`{*default}buffers.pl{reset}` script.
|
||||||
|
|
||||||
|
If you are using the {*default}buflist{reset} plugin you can (ab)use Unicode to draw a tree
|
||||||
|
structure with the following setting (modify to suit your need):
|
||||||
|
{*white}/set {cyan}buflist.format.indent {brown}"${{color:237}}${{if:${{buffer.next_buffer.local_variables.type}}=~^(channel|private)$?├─:└─}}"{reset}
|
||||||
|
'''
|
||||||
|
|
||||||
|
command_completion = '%(plugin_autosort) %(plugin_autosort) %(plugin_autosort) %(plugin_autosort) %(plugin_autosort)'
|
||||||
|
|
||||||
|
info_replace_description = 'Replace all occurences of `from` with `to` in the string `text`.'
|
||||||
|
info_replace_arguments = 'from,to,text'
|
||||||
|
|
||||||
|
info_order_description = (
|
||||||
|
'Get a zero padded index of a value in a list of possible values.'
|
||||||
|
'If the value is not found, the index for `*` is returned.'
|
||||||
|
'If there is no `*` in the list, the highest index + 1 is returned.'
|
||||||
|
)
|
||||||
|
info_order_arguments = 'value,first,second,third,...'
|
||||||
|
|
||||||
|
|
||||||
|
if weechat.register(SCRIPT_NAME, SCRIPT_AUTHOR, SCRIPT_VERSION, SCRIPT_LICENSE, SCRIPT_DESC, "", ""):
|
||||||
|
config = Config('autosort')
|
||||||
|
|
||||||
|
colors = {
|
||||||
|
'default': weechat.color('default'),
|
||||||
|
'reset': weechat.color('reset'),
|
||||||
|
'black': weechat.color('black'),
|
||||||
|
'red': weechat.color('red'),
|
||||||
|
'green': weechat.color('green'),
|
||||||
|
'brown': weechat.color('brown'),
|
||||||
|
'yellow': weechat.color('yellow'),
|
||||||
|
'blue': weechat.color('blue'),
|
||||||
|
'magenta': weechat.color('magenta'),
|
||||||
|
'cyan': weechat.color('cyan'),
|
||||||
|
'white': weechat.color('white'),
|
||||||
|
'*default': weechat.color('*default'),
|
||||||
|
'*black': weechat.color('*black'),
|
||||||
|
'*red': weechat.color('*red'),
|
||||||
|
'*green': weechat.color('*green'),
|
||||||
|
'*brown': weechat.color('*brown'),
|
||||||
|
'*yellow': weechat.color('*yellow'),
|
||||||
|
'*blue': weechat.color('*blue'),
|
||||||
|
'*magenta': weechat.color('*magenta'),
|
||||||
|
'*cyan': weechat.color('*cyan'),
|
||||||
|
'*white': weechat.color('*white'),
|
||||||
|
}
|
||||||
|
|
||||||
|
weechat.hook_config('autosort.*', 'on_config_changed', '')
|
||||||
|
weechat.hook_completion('plugin_autosort', '', 'on_autosort_complete', '')
|
||||||
|
weechat.hook_command('autosort', command_description.format(**colors), '', '', command_completion, 'on_autosort_command', '')
|
||||||
|
weechat.hook_info('autosort_replace', info_replace_description, info_replace_arguments, 'on_info_replace', '')
|
||||||
|
weechat.hook_info('autosort_order', info_order_description, info_order_arguments, 'on_info_order', '')
|
||||||
|
|
||||||
|
apply_config()
|
400
weechat/.weechat/python/colorize_nicks.py
Normal file
400
weechat/.weechat/python/colorize_nicks.py
Normal file
@ -0,0 +1,400 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
#
|
||||||
|
# Copyright (c) 2010 by xt <xt@bash.no>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
# This script colors nicks in IRC channels in the actual message
|
||||||
|
# not just in the prefix section.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# History:
|
||||||
|
# 2018-04-06: Joey Pabalinas <joeypabalinas@gmail.com>
|
||||||
|
# version 26: fix freezes with too many nicks in one line
|
||||||
|
# 2018-03-18: nils_2
|
||||||
|
# version 25: fix unable to run function colorize_config_reload_cb()
|
||||||
|
# 2017-06-20: lbeziaud <louis.beziaud@ens-rennes.fr>
|
||||||
|
# version 24: colorize utf8 nicks
|
||||||
|
# 2017-03-01, arza <arza@arza.us>
|
||||||
|
# version 23: don't colorize nicklist group names
|
||||||
|
# 2016-05-01, Simmo Saan <simmo.saan@gmail.com>
|
||||||
|
# version 22: invalidate cached colors on hash algorithm change
|
||||||
|
# 2015-07-28, xt
|
||||||
|
# version 21: fix problems with nicks with commas in them
|
||||||
|
# 2015-04-19, xt
|
||||||
|
# version 20: fix ignore of nicks in URLs
|
||||||
|
# 2015-04-18, xt
|
||||||
|
# version 19: new option ignore nicks in URLs
|
||||||
|
# 2015-03-03, xt
|
||||||
|
# version 18: iterate buffers looking for nicklists instead of servers
|
||||||
|
# 2015-02-23, holomorph
|
||||||
|
# version 17: fix coloring in non-channel buffers (#58)
|
||||||
|
# 2014-09-17, holomorph
|
||||||
|
# version 16: use weechat config facilities
|
||||||
|
# clean unused, minor linting, some simplification
|
||||||
|
# 2014-05-05, holomorph
|
||||||
|
# version 15: fix python2-specific re.search check
|
||||||
|
# 2013-01-29, nils_2
|
||||||
|
# version 14: make script compatible with Python 3.x
|
||||||
|
# 2012-10-19, ldvx
|
||||||
|
# version 13: Iterate over every word to prevent incorrect colorization of
|
||||||
|
# nicks. Added option greedy_matching.
|
||||||
|
# 2012-04-28, ldvx
|
||||||
|
# version 12: added ignore_tags to avoid colorizing nicks if tags are present
|
||||||
|
# 2012-01-14, nesthib
|
||||||
|
# version 11: input_text_display hook and modifier to colorize nicks in input bar
|
||||||
|
# 2010-12-22, xt
|
||||||
|
# version 10: hook config option for updating blacklist
|
||||||
|
# 2010-12-20, xt
|
||||||
|
# version 0.9: hook new config option for weechat 0.3.4
|
||||||
|
# 2010-11-01, nils_2
|
||||||
|
# version 0.8: hook_modifier() added to communicate with rainbow_text
|
||||||
|
# 2010-10-01, xt
|
||||||
|
# version 0.7: changes to support non-irc-plugins
|
||||||
|
# 2010-07-29, xt
|
||||||
|
# version 0.6: compile regexp as per patch from Chris quigybo@hotmail.com
|
||||||
|
# 2010-07-19, xt
|
||||||
|
# version 0.5: fix bug with incorrect coloring of own nick
|
||||||
|
# 2010-06-02, xt
|
||||||
|
# version 0.4: update to reflect API changes
|
||||||
|
# 2010-03-26, xt
|
||||||
|
# version 0.3: fix error with exception
|
||||||
|
# 2010-03-24, xt
|
||||||
|
# version 0.2: use ignore_channels when populating to increase performance.
|
||||||
|
# 2010-02-03, xt
|
||||||
|
# version 0.1: initial (based on ruby script by dominikh)
|
||||||
|
#
|
||||||
|
# Known issues: nicks will not get colorized if they begin with a character
|
||||||
|
# such as ~ (which some irc networks do happen to accept)
|
||||||
|
|
||||||
|
import weechat
|
||||||
|
import re
|
||||||
|
w = weechat
|
||||||
|
|
||||||
|
SCRIPT_NAME = "colorize_nicks"
|
||||||
|
SCRIPT_AUTHOR = "xt <xt@bash.no>"
|
||||||
|
SCRIPT_VERSION = "26"
|
||||||
|
SCRIPT_LICENSE = "GPL"
|
||||||
|
SCRIPT_DESC = "Use the weechat nick colors in the chat area"
|
||||||
|
|
||||||
|
# Based on the recommendations in RFC 7613. A valid nick is composed
|
||||||
|
# of anything but " ,*?.!@".
|
||||||
|
VALID_NICK = r'([@~&!%+-])?([^\s,\*?\.!@]+)'
|
||||||
|
valid_nick_re = re.compile(VALID_NICK)
|
||||||
|
ignore_channels = []
|
||||||
|
ignore_nicks = []
|
||||||
|
|
||||||
|
# Dict with every nick on every channel with its color as lookup value
|
||||||
|
colored_nicks = {}
|
||||||
|
|
||||||
|
CONFIG_FILE_NAME = "colorize_nicks"
|
||||||
|
|
||||||
|
# config file and options
|
||||||
|
colorize_config_file = ""
|
||||||
|
colorize_config_option = {}
|
||||||
|
|
||||||
|
def colorize_config_init():
|
||||||
|
'''
|
||||||
|
Initialization of configuration file.
|
||||||
|
Sections: look.
|
||||||
|
'''
|
||||||
|
global colorize_config_file, colorize_config_option
|
||||||
|
colorize_config_file = weechat.config_new(CONFIG_FILE_NAME,
|
||||||
|
"", "")
|
||||||
|
if colorize_config_file == "":
|
||||||
|
return
|
||||||
|
|
||||||
|
# section "look"
|
||||||
|
section_look = weechat.config_new_section(
|
||||||
|
colorize_config_file, "look", 0, 0, "", "", "", "", "", "", "", "", "", "")
|
||||||
|
if section_look == "":
|
||||||
|
weechat.config_free(colorize_config_file)
|
||||||
|
return
|
||||||
|
colorize_config_option["blacklist_channels"] = weechat.config_new_option(
|
||||||
|
colorize_config_file, section_look, "blacklist_channels",
|
||||||
|
"string", "Comma separated list of channels", "", 0, 0,
|
||||||
|
"", "", 0, "", "", "", "", "", "")
|
||||||
|
colorize_config_option["blacklist_nicks"] = weechat.config_new_option(
|
||||||
|
colorize_config_file, section_look, "blacklist_nicks",
|
||||||
|
"string", "Comma separated list of nicks", "", 0, 0,
|
||||||
|
"so,root", "so,root", 0, "", "", "", "", "", "")
|
||||||
|
colorize_config_option["min_nick_length"] = weechat.config_new_option(
|
||||||
|
colorize_config_file, section_look, "min_nick_length",
|
||||||
|
"integer", "Minimum length nick to colorize", "",
|
||||||
|
2, 20, "", "", 0, "", "", "", "", "", "")
|
||||||
|
colorize_config_option["colorize_input"] = weechat.config_new_option(
|
||||||
|
colorize_config_file, section_look, "colorize_input",
|
||||||
|
"boolean", "Whether to colorize input", "", 0,
|
||||||
|
0, "off", "off", 0, "", "", "", "", "", "")
|
||||||
|
colorize_config_option["ignore_tags"] = weechat.config_new_option(
|
||||||
|
colorize_config_file, section_look, "ignore_tags",
|
||||||
|
"string", "Comma separated list of tags to ignore; i.e. irc_join,irc_part,irc_quit", "", 0, 0,
|
||||||
|
"", "", 0, "", "", "", "", "", "")
|
||||||
|
colorize_config_option["greedy_matching"] = weechat.config_new_option(
|
||||||
|
colorize_config_file, section_look, "greedy_matching",
|
||||||
|
"boolean", "If off, then use lazy matching instead", "", 0,
|
||||||
|
0, "on", "on", 0, "", "", "", "", "", "")
|
||||||
|
colorize_config_option["match_limit"] = weechat.config_new_option(
|
||||||
|
colorize_config_file, section_look, "match_limit",
|
||||||
|
"integer", "Fall back to lazy matching if greedy matches exceeds this number", "",
|
||||||
|
20, 1000, "", "", 0, "", "", "", "", "", "")
|
||||||
|
colorize_config_option["ignore_nicks_in_urls"] = weechat.config_new_option(
|
||||||
|
colorize_config_file, section_look, "ignore_nicks_in_urls",
|
||||||
|
"boolean", "If on, don't colorize nicks inside URLs", "", 0,
|
||||||
|
0, "off", "off", 0, "", "", "", "", "", "")
|
||||||
|
|
||||||
|
def colorize_config_read():
|
||||||
|
''' Read configuration file. '''
|
||||||
|
global colorize_config_file
|
||||||
|
return weechat.config_read(colorize_config_file)
|
||||||
|
|
||||||
|
def colorize_nick_color(nick, my_nick):
|
||||||
|
''' Retrieve nick color from weechat. '''
|
||||||
|
if nick == my_nick:
|
||||||
|
return w.color(w.config_string(w.config_get('weechat.color.chat_nick_self')))
|
||||||
|
else:
|
||||||
|
return w.info_get('irc_nick_color', nick)
|
||||||
|
|
||||||
|
def colorize_cb(data, modifier, modifier_data, line):
|
||||||
|
''' Callback that does the colorizing, and returns new line if changed '''
|
||||||
|
|
||||||
|
global ignore_nicks, ignore_channels, colored_nicks
|
||||||
|
|
||||||
|
|
||||||
|
full_name = modifier_data.split(';')[1]
|
||||||
|
channel = '.'.join(full_name.split('.')[1:])
|
||||||
|
|
||||||
|
buffer = w.buffer_search('', full_name)
|
||||||
|
# Check if buffer has colorized nicks
|
||||||
|
if buffer not in colored_nicks:
|
||||||
|
return line
|
||||||
|
|
||||||
|
if channel and channel in ignore_channels:
|
||||||
|
return line
|
||||||
|
|
||||||
|
min_length = w.config_integer(colorize_config_option['min_nick_length'])
|
||||||
|
reset = w.color('reset')
|
||||||
|
|
||||||
|
# Don't colorize if the ignored tag is present in message
|
||||||
|
tags_line = modifier_data.rsplit(';')
|
||||||
|
if len(tags_line) >= 3:
|
||||||
|
tags_line = tags_line[2].split(',')
|
||||||
|
for i in w.config_string(colorize_config_option['ignore_tags']).split(','):
|
||||||
|
if i in tags_line:
|
||||||
|
return line
|
||||||
|
|
||||||
|
for words in valid_nick_re.findall(line):
|
||||||
|
nick = words[1]
|
||||||
|
# Check that nick is not ignored and longer than minimum length
|
||||||
|
if len(nick) < min_length or nick in ignore_nicks:
|
||||||
|
continue
|
||||||
|
|
||||||
|
# If the matched word is not a known nick, we try to match the
|
||||||
|
# word without its first or last character (if not a letter).
|
||||||
|
# This is necessary as "foo:" is a valid nick, which could be
|
||||||
|
# adressed as "foo::".
|
||||||
|
if nick not in colored_nicks[buffer]:
|
||||||
|
if not nick[-1].isalpha() and not nick[0].isalpha():
|
||||||
|
if nick[1:-1] in colored_nicks[buffer]:
|
||||||
|
nick = nick[1:-1]
|
||||||
|
elif not nick[0].isalpha():
|
||||||
|
if nick[1:] in colored_nicks[buffer]:
|
||||||
|
nick = nick[1:]
|
||||||
|
elif not nick[-1].isalpha():
|
||||||
|
if nick[:-1] in colored_nicks[buffer]:
|
||||||
|
nick = nick[:-1]
|
||||||
|
|
||||||
|
# Check that nick is in the dictionary colored_nicks
|
||||||
|
if nick in colored_nicks[buffer]:
|
||||||
|
nick_color = colored_nicks[buffer][nick]
|
||||||
|
|
||||||
|
try:
|
||||||
|
# Let's use greedy matching. Will check against every word in a line.
|
||||||
|
if w.config_boolean(colorize_config_option['greedy_matching']):
|
||||||
|
cnt = 0
|
||||||
|
limit = w.config_integer(colorize_config_option['match_limit'])
|
||||||
|
|
||||||
|
for word in line.split():
|
||||||
|
cnt += 1
|
||||||
|
assert cnt < limit
|
||||||
|
# if cnt > limit:
|
||||||
|
# raise RuntimeError('Exceeded colorize_nicks.look.match_limit.');
|
||||||
|
|
||||||
|
if w.config_boolean(colorize_config_option['ignore_nicks_in_urls']) and \
|
||||||
|
word.startswith(('http://', 'https://')):
|
||||||
|
continue
|
||||||
|
|
||||||
|
if nick in word:
|
||||||
|
# Is there a nick that contains nick and has a greater lenght?
|
||||||
|
# If so let's save that nick into var biggest_nick
|
||||||
|
biggest_nick = ""
|
||||||
|
for i in colored_nicks[buffer]:
|
||||||
|
cnt += 1
|
||||||
|
assert cnt < limit
|
||||||
|
|
||||||
|
if nick in i and nick != i and len(i) > len(nick):
|
||||||
|
if i in word:
|
||||||
|
# If a nick with greater len is found, and that word
|
||||||
|
# also happens to be in word, then let's save this nick
|
||||||
|
biggest_nick = i
|
||||||
|
# If there's a nick with greater len, then let's skip this
|
||||||
|
# As we will have the chance to colorize when biggest_nick
|
||||||
|
# iterates being nick.
|
||||||
|
if len(biggest_nick) > 0 and biggest_nick in word:
|
||||||
|
pass
|
||||||
|
elif len(word) < len(biggest_nick) or len(biggest_nick) == 0:
|
||||||
|
new_word = word.replace(nick, '%s%s%s' % (nick_color, nick, reset))
|
||||||
|
line = line.replace(word, new_word)
|
||||||
|
|
||||||
|
# Switch to lazy matching
|
||||||
|
else:
|
||||||
|
raise AssertionError
|
||||||
|
|
||||||
|
except AssertionError:
|
||||||
|
# Let's use lazy matching for nick
|
||||||
|
nick_color = colored_nicks[buffer][nick]
|
||||||
|
# The two .? are in case somebody writes "nick:", "nick,", etc
|
||||||
|
# to address somebody
|
||||||
|
regex = r"(\A|\s).?(%s).?(\Z|\s)" % re.escape(nick)
|
||||||
|
match = re.search(regex, line)
|
||||||
|
if match is not None:
|
||||||
|
new_line = line[:match.start(2)] + nick_color+nick+reset + line[match.end(2):]
|
||||||
|
line = new_line
|
||||||
|
|
||||||
|
return line
|
||||||
|
|
||||||
|
def colorize_input_cb(data, modifier, modifier_data, line):
|
||||||
|
''' Callback that does the colorizing in input '''
|
||||||
|
|
||||||
|
global ignore_nicks, ignore_channels, colored_nicks
|
||||||
|
|
||||||
|
min_length = w.config_integer(colorize_config_option['min_nick_length'])
|
||||||
|
|
||||||
|
if not w.config_boolean(colorize_config_option['colorize_input']):
|
||||||
|
return line
|
||||||
|
|
||||||
|
buffer = w.current_buffer()
|
||||||
|
# Check if buffer has colorized nicks
|
||||||
|
if buffer not in colored_nicks:
|
||||||
|
return line
|
||||||
|
|
||||||
|
channel = w.buffer_get_string(buffer, 'name')
|
||||||
|
if channel and channel in ignore_channels:
|
||||||
|
return line
|
||||||
|
|
||||||
|
reset = w.color('reset')
|
||||||
|
|
||||||
|
for words in valid_nick_re.findall(line):
|
||||||
|
nick = words[1]
|
||||||
|
# Check that nick is not ignored and longer than minimum length
|
||||||
|
if len(nick) < min_length or nick in ignore_nicks:
|
||||||
|
continue
|
||||||
|
if nick in colored_nicks[buffer]:
|
||||||
|
nick_color = colored_nicks[buffer][nick]
|
||||||
|
line = line.replace(nick, '%s%s%s' % (nick_color, nick, reset))
|
||||||
|
|
||||||
|
return line
|
||||||
|
|
||||||
|
def populate_nicks(*args):
|
||||||
|
''' Fills entire dict with all nicks weechat can see and what color it has
|
||||||
|
assigned to it. '''
|
||||||
|
global colored_nicks
|
||||||
|
|
||||||
|
colored_nicks = {}
|
||||||
|
|
||||||
|
buffers = w.infolist_get('buffer', '', '')
|
||||||
|
while w.infolist_next(buffers):
|
||||||
|
buffer_ptr = w.infolist_pointer(buffers, 'pointer')
|
||||||
|
my_nick = w.buffer_get_string(buffer_ptr, 'localvar_nick')
|
||||||
|
nicklist = w.infolist_get('nicklist', buffer_ptr, '')
|
||||||
|
while w.infolist_next(nicklist):
|
||||||
|
if buffer_ptr not in colored_nicks:
|
||||||
|
colored_nicks[buffer_ptr] = {}
|
||||||
|
|
||||||
|
if w.infolist_string(nicklist, 'type') != 'nick':
|
||||||
|
continue
|
||||||
|
|
||||||
|
nick = w.infolist_string(nicklist, 'name')
|
||||||
|
nick_color = colorize_nick_color(nick, my_nick)
|
||||||
|
|
||||||
|
colored_nicks[buffer_ptr][nick] = nick_color
|
||||||
|
|
||||||
|
w.infolist_free(nicklist)
|
||||||
|
|
||||||
|
w.infolist_free(buffers)
|
||||||
|
|
||||||
|
return w.WEECHAT_RC_OK
|
||||||
|
|
||||||
|
def add_nick(data, signal, type_data):
|
||||||
|
''' Add nick to dict of colored nicks '''
|
||||||
|
global colored_nicks
|
||||||
|
|
||||||
|
# Nicks can have , in them in some protocols
|
||||||
|
splitted = type_data.split(',')
|
||||||
|
pointer = splitted[0]
|
||||||
|
nick = ",".join(splitted[1:])
|
||||||
|
if pointer not in colored_nicks:
|
||||||
|
colored_nicks[pointer] = {}
|
||||||
|
|
||||||
|
my_nick = w.buffer_get_string(pointer, 'localvar_nick')
|
||||||
|
nick_color = colorize_nick_color(nick, my_nick)
|
||||||
|
|
||||||
|
colored_nicks[pointer][nick] = nick_color
|
||||||
|
|
||||||
|
return w.WEECHAT_RC_OK
|
||||||
|
|
||||||
|
def remove_nick(data, signal, type_data):
|
||||||
|
''' Remove nick from dict with colored nicks '''
|
||||||
|
global colored_nicks
|
||||||
|
|
||||||
|
# Nicks can have , in them in some protocols
|
||||||
|
splitted = type_data.split(',')
|
||||||
|
pointer = splitted[0]
|
||||||
|
nick = ",".join(splitted[1:])
|
||||||
|
|
||||||
|
if pointer in colored_nicks and nick in colored_nicks[pointer]:
|
||||||
|
del colored_nicks[pointer][nick]
|
||||||
|
|
||||||
|
return w.WEECHAT_RC_OK
|
||||||
|
|
||||||
|
def update_blacklist(*args):
|
||||||
|
''' Set the blacklist for channels and nicks. '''
|
||||||
|
global ignore_channels, ignore_nicks
|
||||||
|
ignore_channels = w.config_string(colorize_config_option['blacklist_channels']).split(',')
|
||||||
|
ignore_nicks = w.config_string(colorize_config_option['blacklist_nicks']).split(',')
|
||||||
|
return w.WEECHAT_RC_OK
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
if w.register(SCRIPT_NAME, SCRIPT_AUTHOR, SCRIPT_VERSION, SCRIPT_LICENSE,
|
||||||
|
SCRIPT_DESC, "", ""):
|
||||||
|
colorize_config_init()
|
||||||
|
colorize_config_read()
|
||||||
|
|
||||||
|
# Run once to get data ready
|
||||||
|
update_blacklist()
|
||||||
|
populate_nicks()
|
||||||
|
|
||||||
|
w.hook_signal('nicklist_nick_added', 'add_nick', '')
|
||||||
|
w.hook_signal('nicklist_nick_removed', 'remove_nick', '')
|
||||||
|
w.hook_modifier('weechat_print', 'colorize_cb', '')
|
||||||
|
# Hook config for changing colors
|
||||||
|
w.hook_config('weechat.color.chat_nick_colors', 'populate_nicks', '')
|
||||||
|
w.hook_config('weechat.look.nick_color_hash', 'populate_nicks', '')
|
||||||
|
# Hook for working togheter with other scripts (like colorize_lines)
|
||||||
|
w.hook_modifier('colorize_nicks', 'colorize_cb', '')
|
||||||
|
# Hook for modifying input
|
||||||
|
w.hook_modifier('250|input_text_display', 'colorize_input_cb', '')
|
||||||
|
# Hook for updating blacklist (this could be improved to use fnmatch)
|
||||||
|
weechat.hook_config('%s.look.blacklist*' % SCRIPT_NAME, 'update_blacklist', '')
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user