From 6e729943f2ec8101857e1b61600728b89fda8851 Mon Sep 17 00:00:00 2001 From: drymer Date: Sat, 25 Feb 2017 13:12:23 +0000 Subject: [PATCH] Muchas cosas --- emacs.d/init-literate.org | 380 ++++++++++++++---- emacs.d/init.el | 4 + i3/config.i3blocks | 8 +- i3/scripts/notmuch | 8 +- i3/scripts/slack_updates | 14 +- qutebrowser/keys.conf | 2 +- shell/bashrc | 19 +- shell/zsh_custom_themes/alanpeabody.zsh-theme | 4 +- 8 files changed, 320 insertions(+), 119 deletions(-) diff --git a/emacs.d/init-literate.org b/emacs.d/init-literate.org index 27bef00..c474877 100644 --- a/emacs.d/init-literate.org +++ b/emacs.d/init-literate.org @@ -14,6 +14,7 @@ - [[Establecer nombre y correo][Establecer nombre y correo]] - [[Abrir cómo buffer inicial][Abrir cómo buffer inicial]] - [[Iniciar cómo servidor][Iniciar cómo servidor]] + - [[Destacar el par coincidente][Destacar el par coincidente]] - [[Auto-guardado][Auto-guardado]] - [[Modo por defecto][Modo por defecto]] - [[Acepta 'y' o 'n' cuando pide 'yes' o 'no'][Acepta 'y' o 'n' cuando pide 'yes' o 'no']] @@ -32,6 +33,7 @@ - [[Auto identación][Auto identación]] - [[Magit][Magit]] - [[Insertar licencia][Insertar licencia]] + - [[Auto-competado][Auto-competado]] - [[Borrar espacios sobrantes][Borrar espacios sobrantes]] - [[Usar ssh con tramp][Usar ssh con tramp]] - [[Golden Ratio][Golden Ratio]] @@ -42,11 +44,19 @@ - [[Sobreescribir al seleccionar texto][Sobreescribir al seleccionar texto]] - [[Buffer \ast{}Scratch\ast{} persistente][Buffer \ast{}Scratch\ast{} persistente]] - [[kill-this-buffer en vez de kil-buffer][kill-this-buffer en vez de kil-buffer]] + - [[emacs-purpose o proposito][emacs-purpose o proposito]] - [[Paquetes genéricos][Paquetes genéricos]] - [[Imenu][Imenu]] - [[imenu-list][imenu-list]] - [[Hydra][Hydra]] - [[csv-mode][csv-mode]] + - [[Paleta de colores][Paleta de colores]] + - [[Hacer gifs con camcorder.el][Hacer gifs con camcorder.el]] + - [[Mostrar teclas presionadas en un buffer][Mostrar teclas presionadas en un buffer]] + - [[Hardcodear atajos de teclado][Hardcodear atajos de teclado]] + - [[Flycheck][Flycheck]] + - [[Rainbow-mode][Rainbow-mode]] + - [[i3wm-config-mode][i3wm-config-mode]] - [[Aspecto][Aspecto]] - [[Tema cyberpunk][Tema cyberpunk]] - [[Powerline modificada][Powerline modificada]] @@ -60,7 +70,7 @@ - [[JSON][JSON]] - [[Haskel][Haskel]] - [[Markdown][Markdown]] - - [[python][python]] + - [[Python][Python]] - [[web-mode][web-mode]] - [[DockerFile][DockerFile]] - [[kivy-mode][kivy-mode]] @@ -70,6 +80,8 @@ - [[Definir fuente de el-get][Definir fuente de el-get]] - [[Agenda][Agenda]] - [[Definir archivos de la agenda][Definir archivos de la agenda]] + - [[Comandos de Agenda][Comandos de Agenda]] + - [[Capturas de notas][Capturas de notas]] - [[Definir archivo de notas para org-capture][Definir archivo de notas para org-capture]] - [[Estados de los objetos de las listas][Estados de los objetos de las listas]] - [[Refile][Refile]] @@ -79,8 +91,6 @@ - [[Tareas repetitivas][Tareas repetitivas]] - [[Cambiar el formato de CLOCKTABLE][Cambiar el formato de CLOCKTABLE]] - [[Quitar tags de la agenda][Quitar tags de la agenda]] - - [[Comandos de Agenda][Comandos de Agenda]] - - [[Capturas de notas][Capturas de notas]] - [[Edición, diseño y varios][Edición, diseño y varios]] - [[Atajos de teclado][Atajos de teclado]] - [[Definir lenguajes que entiende babel][Definir lenguajes que entiende babel]] @@ -101,6 +111,10 @@ - [[Empareja simbolos de marcado y paréntesis][Empareja simbolos de marcado y paréntesis]] - [[org-protocol][org-protocol]] - [[Temas para exportación en html][Temas para exportación en html]] + - [[mail-mode][mail-mode]] + - [[lisp][lisp]] + - [[Paredit][Paredit]] + - [[package-lint][package-lint]] - [[Funciones personalizadas][Funciones personalizadas]] - [[Recargar todos los buffers abiertos][Recargar todos los buffers abiertos]] - [[Insertar cabeceras para org-mode][Insertar cabeceras para org-mode]] @@ -213,7 +227,7 @@ Ahora mismo el repositorio de marmalade está comentado por que da un error al u (add-to-list 'load-path (concat user-emacs-directory "el-get/el-get/")) ;; Comprueba si el-get está instalado, sinó lo instala desde un gist -(unless (require 'el-get) +(unless (require 'el-get nil 'noerror) ;; comprobar si existe el fichero a descargar, si existe no lo descarga (if (not (file-exists-p "/tmp/el-get-install.el")) (url-copy-file "https://raw.githubusercontent.com/dimitri/el-get/master/el-get-install.el" "/tmp/el-get-install.el")) @@ -269,6 +283,13 @@ De este modo puedo usar =emacsclient= desde la terminal y la sesión de =emacs= #+BEGIN_SRC emacs-lisp (server-start) #+END_SRC +** Destacar el par coincidente +:PROPERTIES: +:CUSTOM_ID: Destacar el par coincidente +:END: +#+BEGIN_SRC emacs-lisp +(show-paren-mode) +#+END_SRC ** Auto-guardado :PROPERTIES: :CUSTOM_ID: Auto-guardado @@ -387,11 +408,13 @@ Ivy es más liviano que helm, aunque más simple. Más información [[https://da (setq ivy-wrap t) ;; Ver la ruta de los ficheros virtuales (setq ivy-virtual-abbreviate 'full) - ;; Asegurarse de que están smex, flx, diminis y ivi-hydra + ;; Asegurarse de que están smex, flx, diminis y ivi-hydra (use-package smex :ensure t) (use-package flx :ensure t) (use-package diminish :ensure t) (use-package ivy-hydra :ensure t) + :bind + ("C-c C-r" . ivy-resume) :config (ivy-mode 1) (setq magit-completing-read-function 'ivy-completing-read) @@ -452,7 +475,7 @@ Ivy es más liviano que helm, aunque más simple. Más información [[https://da (use-package counsel-dash :load-path "el-get/counsel-dash" :init - (setq counsel-dash-docsets-path "~/.emacs.d/docsets") + (setq counsel-dash-docsets-path "~/.emacs.d/docsets/") (setq counsel-dash-common-docsets '("Bash" "Emacs Lisp" "HTML" "Markdown" "Nginx" "Python 3" "Docker" "Font_Awesome" "LaTeX" "MySQL" "Python 2" "SQLite")) (setq counsel-dash-browser-func 'eww)) #+END_SRC @@ -460,17 +483,24 @@ Ivy es más liviano que helm, aunque más simple. Más información [[https://da Auto-instala los docsets: #+name: instala-docsets #+BEGIN_SRC emacs-lisp -(setq local_docsets counsel-dash-common-docsets) -(while local_docsets - (setq docs (car local_docsets)) - (if (string-match "Python" docs) - (setq docs (replace-regexp-in-string " " "_" docs))) - (if (string-match "Emacs Lisp" docs) - (setq docs (replace-regexp-in-string " " "_" docs))) - (if (not (file-exists-p (concat counsel-dash-docsets-path "/" (car local_docsets) ".docset"))) - (counsel-dash-install-docset docs)) - (setq local_docsets (cdr local_docsets))) +(if (not (concat counsel-dash-docsets-path "Bash.docset")) + (let ((local_docsets counsel-dash-common-docsets) + (docs)) + (while local_docsets + (setq docs (car local_docsets)) + (if (string-match "Python" docs) + (setq docs (replace-regexp-in-string " " "_" docs))) + (if (string-match "Emacs Lisp" docs) + (setq docs (replace-regexp-in-string " " "_" docs))) + (if (not (file-exists-p (concat counsel-dash-docsets-path "/" (car local_docsets) ".docset"))) + (progn + (counsel-dash-install-docset docs) + (setq local_docsets (cdr local_docsets))) + (setq local_docsets (cdr local_docsets)))))) + #+END_SRC + +p ** Seguir enlaces simbólicos :PROPERTIES: :CUSTOM_ID: Seguir enlaces simbólicos @@ -566,6 +596,16 @@ torify git "$@" (setq license-directory (concat user-emacs-directory "el-get/xlicense-github/licenses/"))) #+END_SRC +*** Auto-competado +:PROPERTIES: +:CUSTOM_ID: Auto-competado +:END: +#+BEGIN_SRC emacs-lisp +(use-package company + :ensure t + :config + (add-hook 'after-init-hook 'global-company-mode)) +#+END_SRC ** Borrar espacios sobrantes :PROPERTIES: :CUSTOM_ID: Borrar espacios sobrantes @@ -764,6 +804,9 @@ No está activo. (persistent-scratch-setup-default)) #+END_SRC ** kill-this-buffer en vez de kil-buffer +:PROPERTIES: +:CUSTOM_ID: kill-this-buffer en vez de kil-buffer +:END: :PROPERTIES: :CUSTOM_ID: kill-this-buffer en vez de kil-buffer @@ -772,7 +815,36 @@ Fuente: http://pragmaticemacs.com/emacs/dont-kill-buffer-kill-this-buffer-instea #+BEGIN_SRC emacs-lisp (global-set-key (kbd "C-x k") 'kill-this-buffer) #+END_SRC +** emacs-purpose o proposito +:PROPERTIES: +:CUSTOM_ID: emacs-purpose o proposito +:END: +#+name: emacs-purpose +#+BEGIN_SRC emacs-lisp +(use-package window-purpose + :ensure t + :init + (use-package ivy-purpose :ensure t :config (ivy-purpose-setup)) + (use-package window-purpose-x :config (purpose-x-golden-ratio-setup)) + (setq purpose-user-mode-purposes + '((python-mode . py) + (inferior-python-mode . py-int) + (org-mode . org))) + (setq purpose-user-name-purposes + '(("index.org" . agenda) + ("index.org_archive" . agenda) + ("marcadores.org" . agenda) + ("notas.org" . agenda) + (" *command-log*" . command))) + (purpose-compile-user-configuration) + :config + (purpose-mode)) +#+END_SRC + ** Paquetes genéricos +:PROPERTIES: +:CUSTOM_ID: Paquetes genéricos +:END: Aquí van los paquetes que apenas uso o que no necesitan configuración. *** Imenu :PROPERTIES: @@ -805,6 +877,113 @@ Muestra imenu en un buffer lateral. No está activo. #+BEGIN_SRC emacs-lisp (use-package csv-mode :ensure t) #+END_SRC +*** Paleta de colores +:PROPERTIES: +:CUSTOM_ID: Paleta de colores +:END: +#+BEGIN_SRC emacs-lisp +(use-package palette + :ensure t) +#+END_SRC +*** Hacer gifs con camcorder.el +:PROPERTIES: +:CUSTOM_ID: Hacer gifs con camcorder.el +:END: +#+BEGIN_SRC emacs-lisp +(use-package camcorder + :ensure t + :config + (setq camcorder-recording-command '("recordmydesktop" " --fps 100 --no-sound --windowid " window-id " -o " file))) +#+END_SRC +*** Mostrar teclas presionadas en un buffer +:PROPERTIES: +:CUSTOM_ID: Mostrar teclas presionadas en un buffer +:END: +#+BEGIN_SRC emacs-lisp +(use-package mwe-log-commands + :ensure t) +#+END_SRC +*** Hardcodear atajos de teclado +:PROPERTIES: +:CUSTOM_ID: Hardcodear atajos de teclado +:END: +#+name:hardcore-mode +#+BEGIN_SRC emacs-lisp +(use-package hardcore-mode + :ensure t + :config + (global-set-key "\M-p" 'backward-paragraph) + (global-set-key "\M-n" 'forward-paragraph) + (define-key key-translation-map [?\C-h] [?\C-?]) + (global-set-key (kbd "") 'help-command) + (define-key hardcore-mode-map + (kbd "") (lambda () + (interactive) + (message "This key is disabled. Use M-p instead."))) + (define-key hardcore-mode-map + (kbd "") (lambda () + (interactive) + (message "This key is disabled. Use M-n instead."))) + (define-key hardcore-mode-map + (kbd "") (lambda () + (interactive) + (message "This key is disabled. Use M-b instead."))) + (define-key hardcore-mode-map + (kbd "") (lambda () + (interactive) + (message "This key is disabled. Use M-f instead."))) + (define-key hardcore-mode-map + (kbd "") (lambda () + (interactive) + (message "This key is disabled. Use M-v instead."))) + (define-key hardcore-mode-map + (kbd "") (lambda () + (interactive) + (message "This key is disabled. Use C-v instead."))) + (define-key hardcore-mode-map + (kbd "") (lambda () + (interactive) + (message "This key is disabled. Use C-a instead."))) + (define-key hardcore-mode-map + (kbd "") (lambda () + (interactive) + (message "This key is disabled. Use M-< instead."))) + (define-key hardcore-mode-map + (kbd "") (lambda () + (interactive) + (message "This key is disabled. Use C-e instead."))) + (define-key hardcore-mode-map + (kbd "") (lambda () + (interactive) + (message "This key is disabled. Use M-> instead."))) + (global-hardcore-mode)) +#+END_SRC +*** Flycheck +Corrector +#+BEGIN_SRC emacs-lisp +(use-package flycheck + :ensure t + :config (global-flycheck-mode)) +#+END_SRC +*** Rainbow-mode +Muestra los colores de paletas HTML (hexadecimal) con el color que representa. +#+BEGIN_SRC emacs-lisp +(use-package rainbow-mode + :ensure t) +#+END_SRC +*** i3wm-config-mode +Muestra colores para la configuración de i3. +#+BEGIN_SRC emacs-lisp +(add-to-list 'el-get-sources '(:name i3wm-config-mode + :type github + :pkgname "Alexander-Miller/i3wm-Config-Mode")) + +(if (not (el-get-package-installed-p 'i3wm-config-mode)) + (el-get 'sync 'i3wm-config-mode)) + +(use-package i3wm-config-mode + :load-path "el-get/i3wm-Config-Mode") +#+END_SRC * Aspecto :PROPERTIES: :CUSTOM_ID: Aspecto @@ -1243,7 +1422,7 @@ Cargar =markdown-mode=, usar utf-8 al exportar y asociar el modo a las extension :ensure t ) #+END_SRC -** python +** Python :PROPERTIES: :CUSTOM_ID: python :END: @@ -1255,8 +1434,9 @@ La configuración de elpy: :init (setq elpy-modules '(elpy-module-sane-defaults elpy-module-company elpy-module-eldoc elpy-module-pyvenv)) (add-hook 'python-mode-hook 'flycheck-mode) - (setq elpy-rpc-backend "jedi") + (setq elpy-rpc-backend "jedi") :config + (add-to-list 'ivy-completing-read-handlers-alist '(elpy-doc . completing-read-default)) ;; véase https://github.com/abo-abo/swiper/issues/892 (elpy-enable) :ensure t ) @@ -1350,7 +1530,7 @@ Si el paquete no está instalado, lo instala mediante el-get. :END: No está activo, lo cargo de =private-literate.org=. -#+name:gnusocial-mode +#+name:gnu-social #+BEGIN_SRC emacs-lisp :tangle no (add-to-list 'el-get-sources '(:name gnu-social-mode :description "gnu-social client" @@ -1509,10 +1689,77 @@ Se usa la rama =maint= del repositorio git. Primero se comprueba si está instal :CUSTOM_ID: Definir archivos de la agenda :END: #+BEGIN_SRC emacs-lisp -(setq org-directory "~/Documentos/org/") -(setq memacs-directory (concat org-directory "memacs/")) -(setq org-agenda-files (list org-directory memacs-directory (concat memacs-directory "git/"))) +(setq org-agenda-files (list "~/Documentos/org/index.org" "~/Documentos/org/notas.org" "~/Documentos/org/marcadores.org")) +(add-to-list 'org-agenda-files "~/Documentos/org/memacs/") +(add-to-list 'org-agenda-files "~/Documentos/org/memacs/git/") +(add-to-list 'org-agenda-files "~/Documentos/org/memacs/git/") #+END_SRC +**** Comandos de Agenda +:PROPERTIES: +:CUSTOM_ID: Comandos de Agenda +:END: +#+name:custom-commands +#+BEGIN_SRC emacs-lisp +(setq org-agenda-custom-commands + '(("b" . "Blog") + ("bi" "Idees per article" ((todo "TODO|IN-PROGRESS" ((org-agenda-files '("~/Documentos/blog/Articulos/articulos.org")))))) + ("bp" "Articles llestos per a publicar" ((todo "READY|PROGRAMMED" ((org-agenda-files '("~/Documentos/blog/Articulos/articulos.org")))))) + ("bc" "Articles cancel·lats" ((todo "CANCELLED" ((org-agenda-files '("~/Documentos/blog/Articulos/articulos.org")))))) + ("bf" "Articles publicats" ((todo "DONE" ((org-agenda-files '("~/Documentos/blog/Articulos/articulos.org")))))) + ("p" . "Projectes Personals") + ("pp" "Projectes Personals" tags-todo "projectes") + ("pg" "General" tags-todo "general") + ("pi" "isso-gnusocial" tags-todo "issoGnusocial") + ("pr" "gnusrss" tags-todo "gnusrss") + ("pj" "jabbergram" tags-todo "jabbergram") + ("pe" "electrumfair" tags-todo "electrumfair") + ("pn" "nikola.el" tags-todo "nikola") + ("v" "Relacionat amb els VPS / chustaserver" tags-todo "vps") + ("w" "Webs" tags "" ((org-agenda-files '("~/Documentos/org/web.org")))))) +#+END_SRC +**** Capturas de notas +:PROPERTIES: +:CUSTOM_ID: Capturas de notas +:END: +#+name:capture-templates +#+BEGIN_SRC emacs-lisp +(setq org-capture-templates + '(("s" "Tasca Simple" entry (file+headline "~/Documentos/org/notas.org" "Notes") + "** TODO %? \n:PROPERTIES:\n:CREATED: %u\n:END:\nSCHEDULED: %(org-insert-time-stamp (org-read-date nil t \"+0d\"))\n") + ("b" "Idea per article" entry (file+headline "~/Documentos/blog/Articulos/articulos.org" "Ideas") + "** TODO %?\n:PROPERTIES:\n:CREATED: %u\n:END:\n") + ("p" "Personal" entry (file+headline "~/Documentos/org/index.org" "Personal") + "** TODO %? \n:PROPERTIES:\n:CREATED: %u\n:END:\nSCHEDULED: %(org-insert-time-stamp (org-read-date nil t \"+0d\"))\n") + ("t" "Treball" entry (file+headline "~/Documentos/org/index.org" "Treball") + "** TODO %? \n:PROPERTIES:\n:CREATED: %u\n:END:\nSCHEDULED: %(org-insert-time-stamp (org-read-date nil t \"+0d\"))\n") + ("w" "Marcadors" entry (file "~/Documentos/org/web.org") + "* %x\n %U\n %c" + :empty-lines 1) + ("v" "Relacionat amb els VPS / chustaserver" entry (file+headline "~/Documentos/org/index.org" "VPS") + "* TODO %?\n:PROPERTIES:\n:CREATED: %u\n:END:\n") + ("e" "Coses a fer amb emacs" entry (file+headline "~/Documentos/org/index.org" "Emacs") + "** TODO %? \n:PROPERTIES:\n:CREATED: %u\n:END:\nSCHEDULED: %(org-insert-time-stamp (org-read-date nil t \"+0d\"))\n"))) + +(setq org-capture-templates + (append org-capture-templates + '(("o" "Ordinadors") + ("og" "General" entry (file+headline "~/Documentos/org/index.org" "General") + "* TODO %?\n:PROPERTIES:\n:CREATED: %u\n:END:\n") + ("oi" "isso-gnusocial" entry (file+headline "~/Documentos/org/index.org" "isso-gnusocial") + "* TODO %?\n:PROPERTIES:\n:CREATED: %u\n:END:\n") + ("or" "gnusrss" entry (file+headline "~/Documentos/org/index.org" "gnusrss") + "* TODO %?\n:PROPERTIES:\n:CREATED: %u\n:END:\n") + ("oj" "jabbergram" entry (file+headline "~/Documentos/org/index.org" "jabbergram") + "* TODO %?\n:PROPERTIES:\n:CREATED: %u\n:END:\n") + ("os" "SimpleUpload" entry (file+headline "~/Documentos/org/index.org" "SimpleUpload") + "* TODO %?\n:PROPERTIES:\n:CREATED: %u\n:END:\n") + ("oe" "electrumfair" entry (file+headline "~/Documentos/org/index.org" "electrumfair") + "* TODO %?\n:PROPERTIES:\n:CREATED: %u\n:END:\n") + ("on" "nikola.el" entry (file+headline "~/Documentos/org/index.org" "nikola.el") + "* TODO %?\n:PROPERTIES:\n:CREATED: %u\n:END:\n") + ))) +#+END_SRC + **** Definir archivo de notas para org-capture :PROPERTIES: :CUSTOM_ID: Definir archivo de notas para org-capture @@ -1552,7 +1799,7 @@ Lo tengo funcionando con owncloud. Si no está instalado, lo instala con el-get. :init (setq org-caldav-url "http://caldav.ejemplo/") (setq org-caldav-calendar-id "org") - (setq org-caldav-files '("~/Documentos/org/index.org" "~/Documentos/org/archive_index.org" "~/Documentos/org/notas.org")) + (setq org-caldav-files '("~/Documentos/org/index.org" "~/Documentos/org/index.org_archive" "~/Documentos/org/notas.org")) (setq org-caldav-inbox '(id "c14f-42fe-a358-648240e73991")) (setq org-caldav-save-directory "~/Documentos/org/") ) @@ -1625,68 +1872,7 @@ Por defecto, al pasar de las 24 horas dedicadas, lo mostrará cómo 1d. Con el s #+BEGIN_SRC emacs-lisp (setq org-agenda-remove-tags t) #+END_SRC -**** Comandos de Agenda -:PROPERTIES: -:CUSTOM_ID: Comandos de Agenda -:END: -#+name:custom-commands -#+BEGIN_SRC emacs-lisp - (setq org-agenda-custom-commands - '(("b" . "Blog") - ("bi" "Idees per article" ((todo "TODO|IN-PROGRESS" ((org-agenda-files '("~/Documentos/blog/Articulos/articulos.org")))))) - ("bp" "Articles llestos per a publicar" ((todo "READY|PROGRAMMED" ((org-agenda-files '("~/Documentos/blog/Articulos/articulos.org")))))) - ("bc" "Articles cancel·lats" ((todo "CANCELLED" ((org-agenda-files '("~/Documentos/blog/Articulos/articulos.org")))))) - ("bf" "Articles publicats" ((todo "DONE" ((org-agenda-files '("~/Documentos/blog/Articulos/articulos.org")))))) - ("p" . "Projectes Personals") - ("pp" "Projectes Personals" tags-todo "projectes") - ("pg" "General" tags-todo "general") - ("pi" "isso-gnusocial" tags-todo "issoGnusocial") - ("pr" "gnusrss" tags-todo "gnusrss") - ("pj" "jabbergram" tags-todo "jabbergram") - ("v" "Relacionat amb els VPS / chustaserver" tags-todo "vps") - ("w" "Webs" tags "" ((org-agenda-files '("~/Documentos/org/web.org")))))) -#+END_SRC -**** Capturas de notas -:PROPERTIES: -:CUSTOM_ID: Capturas de notas -:END: -#+name:capture-templates -#+BEGIN_SRC emacs-lisp - (setq org-capture-templates - '(("s" "Tasca Simple" entry (file+headline "~/Documentos/org/notas.org" "Notes") - "** TODO %? \n:PROPERTIES:\n:CREATED: %u\n:END:\nSCHEDULED: %(org-insert-time-stamp (org-read-date nil t \"+0d\"))\n") - ("b" "Idea per article" entry (file+headline "~/Documentos/blog/Articulos/articulos.org" "Ideas") - "** TODO %?\n:PROPERTIES:\n:CREATED: %u\n:END:\n") - ("p" "Personal" entry (file+headline "~/Documentos/org/index.org" "Personal") - "** TODO %? \n:PROPERTIES:\n:CREATED: %u\n:END:\nSCHEDULED: %(org-insert-time-stamp (org-read-date nil t \"+0d\"))\n") - ("t" "Treball" entry (file+headline "~/Documentos/org/index.org" "Treball") - "** TODO %? \n:PROPERTIES:\n:CREATED: %u\n:END:\nSCHEDULED: %(org-insert-time-stamp (org-read-date nil t \"+0d\"))\n") - ("w" "Marcadors" entry (file "~/Documentos/org/web.org") - "* %x\n %U\n %c" - :empty-lines 1) - ("v" "Relacionat amb els VPS / chustaserver" entry (file+headline "~/Documentos/org/index.org" "VPS") - "* TODO %?\n:PROPERTIES:\n:CREATED: %u\n:END:\n") - ("e" "Coses a fer amb emacs" entry (file+headline "~/Documentos/org/index.org" "Emacs") - "** TODO %? \n:PROPERTIES:\n:CREATED: %u\n:END:\nSCHEDULED: %(org-insert-time-stamp (org-read-date nil t \"+0d\"))\n") - - )) - - (setq org-capture-templates - (append org-capture-templates - '(("o" "Ordinadors") - ("og" "General" entry (file+headline "~/Documentos/org/index.org" "General") - "* TODO %?\n:PROPERTIES:\n:CREATED: %u\n:END:\n") - ("oi" "isso-gnusocial" entry (file+headline "~/Documentos/org/index.org" "isso-gnusocial") - "* TODO %?\n:PROPERTIES:\n:CREATED: %u\n:END:\n") - ("or" "gnusrss" entry (file+headline "~/Documentos/org/index.org" "gnusrss") - "* TODO %?\n:PROPERTIES:\n:CREATED: %u\n:END:\n") - ("oj" "jabbergram" entry (file+headline "~/Documentos/org/index.org" "jabbergram") - "* TODO %?\n:PROPERTIES:\n:CREATED: %u\n:END:\n") - ("os" "SimpleUpload" entry (file+headline "~/Documentos/org/index.org" "SimpleUpload") - "* TODO %?\n:PROPERTIES:\n:CREATED: %u\n:END:\n") - ))) -#+END_SRC *** Edición, diseño y varios :PROPERTIES: :CUSTOM_ID: Edición, diseño y varios @@ -1985,6 +2171,27 @@ A diferencia de la función de writequit, esta establece el título como custom\ (el-get 'sync 'org-html-themes) ) #+END_SRC +** mail-mode +:PROPERTIES: +:CUSTOM_ID: mail-mode +:END: +#+BEGIN_SRC emacs-lisp +(add-to-list 'auto-mode-alist '(".*mutt-" . mail-mode)) +#+END_SRC +** lisp +:PROPERTIES: +:CUSTOM_ID: lisp +:END: +*** Paredit +#+BEGIN_SRC emacs-lisp +(use-package paredit + :ensure t) +#+END_SRC +*** package-lint +#+BEGIN_SRC emacs-lisp +(use-package package-lint + :ensure t) +#+END_SRC * Funciones personalizadas :PROPERTIES: :CUSTOM_ID: Funciones personalizadas @@ -2010,7 +2217,7 @@ Es útil cuando los archivos se suelen sincronizar y se deja el pc abierto. Los :END: #+name:insertar-cabeceras #+BEGIN_SRC emacs-lisp - (defun insert-header-org-mode (language) + (defun org-mode-insert-header (language) "Make a template at point." (interactive (let ((languages '("Generic" "HTML" "LaTeX" ))) @@ -2205,6 +2412,9 @@ directory to make multiple eshell windows easier." (eshell-send-input))) #+END_SRC ** Reabrir buffer con sudo +:PROPERTIES: +:CUSTOM_ID: Reabrir buffer con sudo +:END: Fuente: http://emacsredux.com/blog/2013/04/21/edit-files-as-root/ #+BEGIN_SRC emacs-lisp (defun sudo-edit (&optional arg) diff --git a/emacs.d/init.el b/emacs.d/init.el index a74d3bd..5c97ddd 100644 --- a/emacs.d/init.el +++ b/emacs.d/init.el @@ -17,3 +17,7 @@ (org-babel-load-file (concat user-emacs-directory "init-literate.org")) (message "Evaluating private-literate.org") (org-babel-load-file (concat user-emacs-directory "private-literate.org")) +(custom-set-variables + '(custom-safe-themes + (quote + ("71ecffba18621354a1be303687f33b84788e13f40141580fa81e7840752d31bf" default)))) diff --git a/i3/config.i3blocks b/i3/config.i3blocks index 50f805b..91884f9 100644 --- a/i3/config.i3blocks +++ b/i3/config.i3blocks @@ -1,5 +1,4 @@ -# Tango colors -# $i3-status +# -*- mode: i3wm-config -*- set color_bad = #CC0000 set color_degraded = #EDD400 @@ -192,16 +191,18 @@ exec --no-startup-id xbacklight -set 100 exec --no-startup-id bash ~/.i3/scripts/autolock.sh exec --no-startup-id parcellite exec --no-startup-id compton -exec --no-startup-id mpd +exec --no-startup-id mpd ~/.mpd.conf # Mover programas automáticamente a workspace assign [title="(?i)emacs"] $ws1 assign [class="(?i)firefox"] $ws2 assign [class="(?i)tor"] $ws2 +assign [class="(?i)chromium"] $ws2 assign [class="(?i)qutebrowser"] $ws2 assign [class="(?i)icecat"] $ws2 assign [title="bittorrent"] $ws3 assign [class="(?i)keepassx"] $ws5 +assign [class="(?i)gnucash"] $ws6 assign [title="Steam"] $ws7 assign [class="(?i)mumble"] $ws8 assign [class="(?i)mpv"] $ws8 @@ -220,7 +221,6 @@ for_window [class="(?i)plasma-desktop"] floating enable for_window [class="(?i)klipper"] floating enable for_window [class="(?i)feh"] floating enable for_window [class="Progreso de operación de archivo"] floating enable -for_window [title="emacsclient"] floating enable # i3-gaps gaps inner 10 diff --git a/i3/scripts/notmuch b/i3/scripts/notmuch index 55cfc25..3029692 100755 --- a/i3/scripts/notmuch +++ b/i3/scripts/notmuch @@ -1,11 +1,9 @@ #!/bin/bash number=`notmuch search tag:unread and tag:inbox 2> /dev/null | wc -l` -if [[ -n $number ]] +if [[ $number != 0 ]] then - message="$number" - echo "  $message " + echo "  $number " else - message="" - echo "" + echo "  $number " fi diff --git a/i3/scripts/slack_updates b/i3/scripts/slack_updates index 59951ed..0ab4003 100755 --- a/i3/scripts/slack_updates +++ b/i3/scripts/slack_updates @@ -10,21 +10,9 @@ mirror="https://freeslack.net/fxp/freeslack64-14.2/" wget -q -O - $mirror/ChangeLog.txt | iconv -f ISO-8859-1 -t UTF-8 > /tmp/changelog.txt end="$(grep -n '+--------------------------+' /tmp/changelog.txt | head -n1 | cut -d':' -f1)" -changelog="$(head -n$end /tmp/changelog.txt | grep txz | cut -d'/' -f2 | cut -d':' -f1)" +changelog="$(head -n$end /tmp/changelog.txt | grep txz | cut -d'/' -f3 | cut -d':' -f1 | sed "s/-[0-9].*//")" num_changelog="$(head -n$end /tmp/changelog.txt | grep txz | cut -d'/' -f2 | cut -d':' -f1 | wc -l)" -if [ "$version" == "14.2" ] -then - version="current" -fi - -if [ "$arch" == "x86_86" ] -then - arch="64" -else - arch="" -fi - case $BLOCK_BUTTON in 1) notify-send -u low "`echo "$changelog"`" ;; 3) notify-send -u low "`echo "$changelog"`" ;; diff --git a/qutebrowser/keys.conf b/qutebrowser/keys.conf index 59ae39b..f89a981 100644 --- a/qutebrowser/keys.conf +++ b/qutebrowser/keys.conf @@ -375,7 +375,7 @@ spawn umpv {url} hint all spawn umpv {hint-url} u -yank -t;; spawn capture {url} +yank title;; spawn capture {url} Y hint links yank diff --git a/shell/bashrc b/shell/bashrc index d42cfdd..b197d99 100644 --- a/shell/bashrc +++ b/shell/bashrc @@ -1,6 +1,16 @@ # Path PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/sbin:/sbin:/usr/local/bin" +# Prompt verde +#PS1='\[\e[0;92m\]\u\[\e[0;93m\] % \[\e[0;92m\]\h \[\e[1;93m\]\w\[\e[0;92m\]\$ ' +# Prompt azul +PS1='\[\e[1;94m\]\u\[\e[0m\] % \[\e[1;91m\]\h \[\e[1;93m\]\w\[\e[1;34m\] $\[\033[0m\] ' + +# Terms típicas de emacs +[[ $TERM == "dumb" ]] && TERM=xterm; PS1='$ ' +[[ $TERM == "emacs" ]] && PS1='$ ' +[[ $TERM == "xterm" ]] && PS1='$ ' + # Term if [ "$TERM" = "" -o "$TERM" = "unknown" ]; then TERM=linux @@ -30,11 +40,6 @@ source `which virtualenvwrapper.sh` > /dev/null # Privado source ~/.sh_privado -# Prompt verde -#PS1='\[\e[0;92m\]\u\[\e[0;93m\] % \[\e[0;92m\]\h \[\e[1;93m\]\w\[\e[0;92m\]\$ ' -# Prompt azul -PS1='\[\e[1;94m\]\u\[\e[0m\] % \[\e[1;91m\]\h \[\e[1;93m\]\w\[\e[1;34m\] $\[\033[0m\] ' - export EDITOR="emacsclient -t -c" export ALTERNATE_EDITOR="nano" @@ -46,9 +51,5 @@ if [ -f /etc/bash_completion ]; then . /etc/bash_completion fi -# Terms típicas de emacs -if [[ $TERM == "dumb" ]]; then TERM=xterm; PS1='$ '; fi -[[ $TERM == "emacs" ]] && PS1='$ ' - export WORKON_HOME=~/.virtualenvs mkdir -p /home/drymer/.virtualenvs diff --git a/shell/zsh_custom_themes/alanpeabody.zsh-theme b/shell/zsh_custom_themes/alanpeabody.zsh-theme index 7c6440a..5900cb5 100644 --- a/shell/zsh_custom_themes/alanpeabody.zsh-theme +++ b/shell/zsh_custom_themes/alanpeabody.zsh-theme @@ -20,9 +20,9 @@ ZSH_THEME_GIT_PROMPT_CLEAN="" ZSH_THEME_GIT_PROMPT_ADDED="%{\e[1;32m%} ✚" ZSH_THEME_GIT_PROMPT_MODIFIED="%{\e[1;32m%} ✹" ZSH_THEME_GIT_PROMPT_DELETED="%{\e[1;31m%} ✖" -ZSH_THEME_GIT_PROMPT_RENAMED="%{\e%{[1;35m%}%} ➜" +ZSH_THEME_GIT_PROMPT_RENAMED="%{\e[1;35m%} ➜" ZSH_THEME_GIT_PROMPT_UNMERGED="%{\e[1;33m%} ═" -ZSH_THEME_GIT_PROMPT_UNTRACKED="%{\e%{%{[1;94m%}%}%} ✭" +ZSH_THEME_GIT_PROMPT_UNTRACKED="%{\e[1;94m%} ✭" PROMPT="${user} ${pwd} $ $reset_color" RPROMPT="${return_code} ${git_branch} ${rvm}"