commit 9aae1daa1cac1e17fe1544fda8cf055e44f085b1 Author: coolneng Date: Sun Mar 24 15:03:56 2019 +0100 Populate dotfiles repository diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3e9c969 --- /dev/null +++ b/.gitignore @@ -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 diff --git a/README.md b/README.md new file mode 100644 index 0000000..7fb7108 --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +# Dotfiles + +Compilation of my essential configs, managed with GNU stow + +**oekk** now you can finally enjoy yourself diff --git a/Xresources/.xrdb/colors/synthwave b/Xresources/.xrdb/colors/synthwave new file mode 100644 index 0000000..f893f77 --- /dev/null +++ b/Xresources/.xrdb/colors/synthwave @@ -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 diff --git a/Xresources/.xrdb/urxvt-resources b/Xresources/.xrdb/urxvt-resources new file mode 100644 index 0000000..195caa5 --- /dev/null +++ b/Xresources/.xrdb/urxvt-resources @@ -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 diff --git a/compton/.config/compton.conf b/compton/.config/compton.conf new file mode 100644 index 0000000..c7130b7 --- /dev/null +++ b/compton/.config/compton.conf @@ -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; + }; +}; + diff --git a/conky/.conkyrc b/conky/.conkyrc new file mode 100644 index 0000000..a465242 --- /dev/null +++ b/conky/.conkyrc @@ -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 +-- +--======================= 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 +]]; + diff --git a/emacs/.emacs.d/.cache/layouts/AIML b/emacs/.emacs.d/.cache/layouts/AIML new file mode 100644 index 0000000..8959182 --- /dev/null +++ b/emacs/.emacs.d/.cache/layouts/AIML @@ -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)) \ No newline at end of file diff --git a/emacs/.emacs.d/.cache/layouts/C++ b/emacs/.emacs.d/.cache/layouts/C++ new file mode 100644 index 0000000..8ccbd9d --- /dev/null +++ b/emacs/.emacs.d/.cache/layouts/C++ @@ -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)) \ No newline at end of file diff --git a/emacs/.emacs.d/.cache/layouts/Dots b/emacs/.emacs.d/.cache/layouts/Dots new file mode 100644 index 0000000..6b7f339 --- /dev/null +++ b/emacs/.emacs.d/.cache/layouts/Dots @@ -0,0 +1,123 @@ +;; -*- mode: emacs-lisp; eval: (progn (pp-buffer) (indent-buffer)) -*- +((def-persp "Dots" + ((def-buffer ".spacemacs" "/home/coolneng/.dotfiles/emacs/.spacemacs" emacs-lisp-mode) + (def-buffer ".spacemacs" "/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" + (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" + (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" + (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" + (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)) diff --git a/emacs/.spacemacs b/emacs/.spacemacs new file mode 100644 index 0000000..e8ead05 --- /dev/null +++ b/emacs/.spacemacs @@ -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 ` 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. + ) +) diff --git a/fish/.config/fish/config.fish b/fish/.config/fish/config.fish new file mode 100644 index 0000000..b2d67f6 --- /dev/null +++ b/fish/.config/fish/config.fish @@ -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/ diff --git a/fish/.config/fish/fish_variables b/fish/.config/fish/fish_variables new file mode 100644 index 0000000..7fcfa54 --- /dev/null +++ b/fish/.config/fish/fish_variables @@ -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 diff --git a/fish/.config/fish/functions/fundle.fish b/fish/.config/fish/functions/fundle.fish new file mode 100644 index 0000000..4a5d50a --- /dev/null +++ b/fish/.config/fish/functions/fundle.fish @@ -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 diff --git a/fish/.config/fish/fundle/decors/fish-colored-man b/fish/.config/fish/fundle/decors/fish-colored-man new file mode 160000 index 0000000..c1e9db7 --- /dev/null +++ b/fish/.config/fish/fundle/decors/fish-colored-man @@ -0,0 +1 @@ +Subproject commit c1e9db7765c932587b795d6c8965e9cff2fd849a diff --git a/fish/.config/fish/fundle/oh-my-fish/theme-nai b/fish/.config/fish/fundle/oh-my-fish/theme-nai new file mode 160000 index 0000000..9616e64 --- /dev/null +++ b/fish/.config/fish/fundle/oh-my-fish/theme-nai @@ -0,0 +1 @@ +Subproject commit 9616e644e95fe79eb59b8c9d77fe44b9f096db2f diff --git a/imapnotify/.config/imapnotify/gmail.js b/imapnotify/.config/imapnotify/gmail.js new file mode 100644 index 0000000..f5418f2 --- /dev/null +++ b/imapnotify/.config/imapnotify/gmail.js @@ -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"]; diff --git a/imapnotify/.config/imapnotify/uni.js b/imapnotify/.config/imapnotify/uni.js new file mode 100644 index 0000000..292be60 --- /dev/null +++ b/imapnotify/.config/imapnotify/uni.js @@ -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"]; diff --git a/khal/.config/khal/config b/khal/.config/khal/config new file mode 100644 index 0000000..f2d70af --- /dev/null +++ b/khal/.config/khal/config @@ -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 diff --git a/khard/.config/khard/khard.conf b/khard/.config/khard/khard.conf new file mode 100644 index 0000000..86de76f --- /dev/null +++ b/khard/.config/khard/khard.conf @@ -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 + diff --git a/khard/.config/khard/khard.conf~ b/khard/.config/khard/khard.conf~ new file mode 100644 index 0000000..348057a --- /dev/null +++ b/khard/.config/khard/khard.conf~ @@ -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 + diff --git a/mbsync/.mbsyncrc b/mbsync/.mbsyncrc new file mode 100644 index 0000000..92c3c57 --- /dev/null +++ b/mbsync/.mbsyncrc @@ -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 * diff --git a/mpd/.ncmpcpp/config b/mpd/.ncmpcpp/config new file mode 100644 index 0000000..a993912 --- /dev/null +++ b/mpd/.ncmpcpp/config @@ -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 = "→→" diff --git a/mpd/.ncmpcpp/config.bak b/mpd/.ncmpcpp/config.bak new file mode 100644 index 0000000..eb1badd --- /dev/null +++ b/mpd/.ncmpcpp/config.bak @@ -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 = +#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 diff --git a/mpd/.ncmpcpp/error.log b/mpd/.ncmpcpp/error.log new file mode 100644 index 0000000..e69de29 diff --git a/mpv/.config/mpv/mpv.conf b/mpv/.config/mpv/mpv.conf new file mode 100644 index 0000000..95fb3d6 --- /dev/null +++ b/mpv/.config/mpv/mpv.conf @@ -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 diff --git a/msmtp/.msmtprc b/msmtp/.msmtprc new file mode 100644 index 0000000..ee733f1 --- /dev/null +++ b/msmtp/.msmtprc @@ -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" diff --git a/neofetch/.config/neofetch/config.conf b/neofetch/.config/neofetch/config.conf new file mode 100644 index 0000000..1511d91 --- /dev/null +++ b/neofetch/.config/neofetch/config.conf @@ -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" diff --git a/neomutt/.config/neomutt/accounts/gmail.muttrc b/neomutt/.config/neomutt/accounts/gmail.muttrc new file mode 100644 index 0000000..efb9831 --- /dev/null +++ b/neomutt/.config/neomutt/accounts/gmail.muttrc @@ -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 "=Inbox" "Go to inbox." +macro index,pager gs "=sent" "Go to sent." +macro index,pager gt "=trash" "Go to trash." +macro index,pager gj "=junk" "Go to spam." +set spoolfile = "+Inbox" +set record = "+sent" +set postponed = "" +set trash = "+trash" diff --git a/neomutt/.config/neomutt/accounts/uni.muttrc b/neomutt/.config/neomutt/accounts/uni.muttrc new file mode 100644 index 0000000..123350b --- /dev/null +++ b/neomutt/.config/neomutt/accounts/uni.muttrc @@ -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 "=INBOX" "Go to inbox." +macro index,pager gs "=sent" "Go to sent." +macro index,pager gt "=trash" "Go to trash." +macro index,pager ga "=archive" "Go to archive." +set spoolfile = "+INBOX" +set record = "+sent" +set postponed = "" +set trash = "+trash" diff --git a/neomutt/.config/neomutt/etc/aliases b/neomutt/.config/neomutt/etc/aliases new file mode 100644 index 0000000..649e1f8 --- /dev/null +++ b/neomutt/.config/neomutt/etc/aliases @@ -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 diff --git a/neomutt/.config/neomutt/etc/gpg.rc b/neomutt/.config/neomutt/etc/gpg.rc new file mode 100644 index 0000000..f9947e9 --- /dev/null +++ b/neomutt/.config/neomutt/etc/gpg.rc @@ -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 + diff --git a/neomutt/.config/neomutt/etc/mailcap b/neomutt/.config/neomutt/etc/mailcap new file mode 100644 index 0000000..24a227b --- /dev/null +++ b/neomutt/.config/neomutt/etc/mailcap @@ -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; diff --git a/neomutt/.config/neomutt/etc/muttcol b/neomutt/.config/neomutt/etc/muttcol new file mode 100644 index 0000000..2c2f7f5 --- /dev/null +++ b/neomutt/.config/neomutt/etc/muttcol @@ -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<>\"]""']))']))']))']))']))']))']))']))']))']))']))']))'])']))))))])]" diff --git a/neomutt/.config/neomutt/etc/sendmail b/neomutt/.config/neomutt/etc/sendmail new file mode 100755 index 0000000..db59d9e --- /dev/null +++ b/neomutt/.config/neomutt/etc/sendmail @@ -0,0 +1,3 @@ +#!/bin/sh + +./.local/bin/MIMEmbellish | msmtp -a $1 -t diff --git a/neomutt/.config/neomutt/keys/gmail.gpg b/neomutt/.config/neomutt/keys/gmail.gpg new file mode 100644 index 0000000..aa54add --- /dev/null +++ b/neomutt/.config/neomutt/keys/gmail.gpg @@ -0,0 +1 @@ + $_`ҙ[as״d_Y6낑1d!&nЁD׭ZH?7Qyi{ P;g~>BÖJGr*@GHKR)R]u aT;M\ E \ No newline at end of file diff --git a/neomutt/.config/neomutt/keys/uni.gpg b/neomutt/.config/neomutt/keys/uni.gpg new file mode 100644 index 0000000..e8932d6 --- /dev/null +++ b/neomutt/.config/neomutt/keys/uni.gpg @@ -0,0 +1 @@ + Dg;aH..dGRRy'ϑ'@Oi2,~"XBz۩B'[ݸucـ \ No newline at end of file diff --git a/neomutt/.config/neomutt/neomuttrc b/neomutt/.config/neomutt/neomuttrc new file mode 100644 index 0000000..eb7b1b2 --- /dev/null +++ b/neomutt/.config/neomutt/neomuttrc @@ -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 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 +macro index,pager \Cu |urlscan\n +macro index,pager ,, |urlscan\n + +# View attachments properly. +bind attach 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~UN." "mark all messages as read" +# +# #sync email +macro index o "mbsync -a 2>/dev/null 1>&2 &" "run mbsync to sync all mail" + +# #copy/move dialogs +macro index C "?" "copy a message to a mailbox" +macro index M "?" "move a message to a mailbox" + +# Notmuch searching +macro index \Cf "unset wait_keyread -p 'notmuch query: ' x; echo \$x >~/.cache/mutt_terms~i \"\`notmuch search --output=messages \$(cat ~/.cache/mutt_terms) | head -n 600 | perl -le '@a=<>;chomp@a;s/\^id:// for@a;$,=\"|\";print@a'\`\"" "show only messages matching a notmuch pattern" +macro index A "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 diff --git a/neomutt/.config/neomutt/personal.muttrc b/neomutt/.config/neomutt/personal.muttrc new file mode 100644 index 0000000..93643aa --- /dev/null +++ b/neomutt/.config/neomutt/personal.muttrc @@ -0,0 +1,4 @@ +macro index,pager i1 'source "/home/coolneng/.config/neomutt"/accounts/gmail.muttrc!' +source /home/coolneng/.config/neomutt/accounts/gmail.muttrc +macro index,pager i2 'source "/home/coolneng/.config/neomutt"/accounts/uni.muttrc!' +source /home/coolneng/.config/neomutt/accounts/uni.muttrc diff --git a/neomutt/.local/bin/MIMEmbellish/MIMEmbellish b/neomutt/.local/bin/MIMEmbellish/MIMEmbellish new file mode 100755 index 0000000..035cc08 --- /dev/null +++ b/neomutt/.local/bin/MIMEmbellish/MIMEmbellish @@ -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('
', + '
') + + +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() diff --git a/openbox/.config/openbox/autostart b/openbox/.config/openbox/autostart new file mode 100755 index 0000000..491fa14 --- /dev/null +++ b/openbox/.config/openbox/autostart @@ -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) & diff --git a/openbox/.config/openbox/environment b/openbox/.config/openbox/environment new file mode 100755 index 0000000..b6c5340 --- /dev/null +++ b/openbox/.config/openbox/environment @@ -0,0 +1,2 @@ +## GNOME Keyring +eval $(/usr/local/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh) diff --git a/openbox/.config/openbox/menu.xml b/openbox/.config/openbox/menu.xml new file mode 100755 index 0000000..545dbf3 --- /dev/null +++ b/openbox/.config/openbox/menu.xml @@ -0,0 +1,103 @@ + + + + + + + libreoffice --base + + + + + libreoffice --calc + + + + + libreoffice --draw + + + + + libreoffice --impress + + + + + libreoffice --math + + + + + libreoffice --writer + + + + + libreoffice + + + + + + + + rofi -show drun -config /home/coolneng/.config/rofi/config + + + + + + exo-open --launch TerminalEmulator + + + + + firefox + + + + + exo-open --launch FileManager + + + + + + + + + + + + + nitrogen + + + + + openbox --restart + + + + + shutdown -r now + + + + + i3lock -i ~/Pictures/Wallpapers/wallhaven-638719.png + + + + + kill -9 -1 + + + + + shutdown -p now + + + + diff --git a/openbox/.config/openbox/rc.xml b/openbox/.config/openbox/rc.xml new file mode 100755 index 0000000..7594394 --- /dev/null +++ b/openbox/.config/openbox/rc.xml @@ -0,0 +1,830 @@ + + + + 10 + 20 + + + yes + + no + + yes + + no + + 200 + + no + + + + UnderMouse + +
yes
+ + Mouse + + Mouse + +
+ + Aesthetic + IMC + + + yes + yes + + Roboto Condensed, Condensed + 9 + + Normal + + Normal + + + + Roboto Condensed, Condensed + 9 + + Normal + + Normal + + + + Roboto Condensed, Condensed + 9 + + Normal + + Normal + + + + Roboto Condensed, Condensed + 9 + + Normal + + Normal + + + + Roboto Condensed, Condensed + 9 + + Normal + + Normal + + + + Roboto Condensed, Condensed + 9 + + Normal + + Normal + + + + + + 4 + 1 + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + + 0 + + + + yes + Nonpixel + + Center + + + + 10 + + 10 + + + + + + 0 + 0 + 0 + 0 + + + Floating + + 0 + 0 + no + Above + + Vertical + + no + 300 + + 300 + + Middle + + + + C-g + + + + + + + + 29% + + + + + + + + 71% + + + + + + anamnesis -b + + + + + + + + + + + mpc toggle + + + + + mpc stop + + + + + 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:")" + + + + + firefox + + + + + emacsclient -nc -s instance1 + + + + + mixer vol +5 + + + + + mixer vol -5 + + + + + mixer vol mute + + + + + + + + + + + + + + mpc --host=/home/coolneng/.mpd/socket stop + + + + + mpc --host=/home/coolneng/.mpd/socket toggle + + + + + mpc --host=/home/coolneng/.mpd/socket prev + + + + + mpc --host=/home/coolneng/.mpd/socket next + + + + + scrot -e 'mv $f ~/Nextcloud/Photos/Screenshots' + + + + + rofi -show drun + + + + + + + + + + + + 50% + 50% + + + + + + + + 50% + + + + + + + + 50% + + + + + + urxvtc + + + + + + + + 8 + + 400 + + 400 + + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + previous + + + + + next + + + + + previous + + + + + next + + + + + previous + + + + + next + + + + + + + + + + + + + + + + + + + + + + no + + + + + + + + + + + yes + + + + + + + + + + + client-menu + + + + + + + + + + + + + + + + + + + client-menu + + + + + + + + + + + + top + + + + + + + + + + + left + + + + + + + + + + + right + + + + + + + + + + + bottom + + + + + + + + + + + + client-menu + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + client-menu + + + + + + + client-menu + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + vertical + + + + + horizontal + + + + + + + + + + + + + + + + + previous + + + + + next + + + + + previous + + + + + next + + + + + + + + + + + + client-list-combined-menu + + + + + root-menu + + + + + + + previous + + + + + next + + + + + previous + + + + + next + + + + + + + + + menu.xml + 200 + + yes + + 100 + + 400 + + yes + + yes + + + + + + +
diff --git a/openbox/.themes/Aesthetic/openbox-3/bullet.xbm b/openbox/.themes/Aesthetic/openbox-3/bullet.xbm new file mode 100755 index 0000000..e9fe0be --- /dev/null +++ b/openbox/.themes/Aesthetic/openbox-3/bullet.xbm @@ -0,0 +1,4 @@ +#define bullet_width 6 +#define bullet_height 6 +static unsigned char bullet_bits[] = { + 0x06, 0x0c, 0x18, 0x18, 0x0c, 0x06 }; diff --git a/openbox/.themes/Aesthetic/openbox-3/close.xbm b/openbox/.themes/Aesthetic/openbox-3/close.xbm new file mode 100644 index 0000000..dc542ae --- /dev/null +++ b/openbox/.themes/Aesthetic/openbox-3/close.xbm @@ -0,0 +1,4 @@ +#define close_width 6 +#define close_height 6 +static unsigned char close_bits[] = { + 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; diff --git a/openbox/.themes/Aesthetic/openbox-3/desk.xbm b/openbox/.themes/Aesthetic/openbox-3/desk.xbm new file mode 100755 index 0000000..abca780 --- /dev/null +++ b/openbox/.themes/Aesthetic/openbox-3/desk.xbm @@ -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 }; diff --git a/openbox/.themes/Aesthetic/openbox-3/desk_toggled.xbm b/openbox/.themes/Aesthetic/openbox-3/desk_toggled.xbm new file mode 100755 index 0000000..b4b5330 --- /dev/null +++ b/openbox/.themes/Aesthetic/openbox-3/desk_toggled.xbm @@ -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 }; diff --git a/openbox/.themes/Aesthetic/openbox-3/iconify.xbm b/openbox/.themes/Aesthetic/openbox-3/iconify.xbm new file mode 100644 index 0000000..b6d9740 --- /dev/null +++ b/openbox/.themes/Aesthetic/openbox-3/iconify.xbm @@ -0,0 +1,4 @@ +#define iconify_width 6 +#define iconify_height 6 +static unsigned char iconify_bits[] = { + 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00 }; diff --git a/openbox/.themes/Aesthetic/openbox-3/max.xbm b/openbox/.themes/Aesthetic/openbox-3/max.xbm new file mode 100644 index 0000000..d86e296 --- /dev/null +++ b/openbox/.themes/Aesthetic/openbox-3/max.xbm @@ -0,0 +1,4 @@ +#define max_width 6 +#define max_height 6 +static unsigned char max_bits[] = { + 0x3f, 0x21, 0x21, 0x21, 0x21, 0x3f }; diff --git a/openbox/.themes/Aesthetic/openbox-3/max_toggled.xbm b/openbox/.themes/Aesthetic/openbox-3/max_toggled.xbm new file mode 100755 index 0000000..3c1b27b --- /dev/null +++ b/openbox/.themes/Aesthetic/openbox-3/max_toggled.xbm @@ -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 }; diff --git a/openbox/.themes/Aesthetic/openbox-3/shade.xbm b/openbox/.themes/Aesthetic/openbox-3/shade.xbm new file mode 100755 index 0000000..fcacf42 --- /dev/null +++ b/openbox/.themes/Aesthetic/openbox-3/shade.xbm @@ -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 }; diff --git a/openbox/.themes/Aesthetic/openbox-3/shade_toggled.xbm b/openbox/.themes/Aesthetic/openbox-3/shade_toggled.xbm new file mode 100755 index 0000000..594201e --- /dev/null +++ b/openbox/.themes/Aesthetic/openbox-3/shade_toggled.xbm @@ -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 }; diff --git a/openbox/.themes/Aesthetic/openbox-3/themerc b/openbox/.themes/Aesthetic/openbox-3/themerc new file mode 100755 index 0000000..e358cfb --- /dev/null +++ b/openbox/.themes/Aesthetic/openbox-3/themerc @@ -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 diff --git a/openbox/.themes/build.xml b/openbox/.themes/build.xml new file mode 100644 index 0000000..bafb870 --- /dev/null +++ b/openbox/.themes/build.xml @@ -0,0 +1,21 @@ +Joe CollinsVale Collins<_description>Emphasis on readability. +$if(quotes)$ + +$endif$ +$if(highlighting-css)$ + +$endif$ +$for(css)$ + +$endfor$ +$if(math)$ + $math$ +$endif$ +$for(header-includes)$ + $header-includes$ +$endfor$ + + +$for(include-before)$ +$include-before$ +$endfor$ +$if(title)$ +
+

$title$

+$if(subtitle)$ +

$subtitle$

+$endif$ +$for(author)$ +

$author$

+$endfor$ +$if(date)$ +

$date$

+$endif$ +
+$endif$ +$if(toc)$ +
+$toc$ +
+$endif$ +$body$ +$for(include-after)$ +$include-after$ +$endfor$ + + diff --git a/polybar/.config/polybar/battery.sh b/polybar/.config/polybar/battery.sh new file mode 100755 index 0000000..10d6d43 --- /dev/null +++ b/polybar/.config/polybar/battery.sh @@ -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 diff --git a/polybar/.config/polybar/config b/polybar/.config/polybar/config new file mode 100644 index 0000000..1daf48d --- /dev/null +++ b/polybar/.config/polybar/config @@ -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 = +format-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: +;