From 8709837ef1efab7195511fb24d12907e066f3de5 Mon Sep 17 00:00:00 2001 From: ALittlePatate Date: Wed, 11 Oct 2023 21:51:24 +0200 Subject: [PATCH] feat: initial commit --- .Xresources | 70 ++++++ .apvlvrc | 1 + .emacs | 84 +++++++ .emacs.local/.gitkeep | 0 .emacs.local/basm-mode.el | 75 ++++++ .emacs.local/jai-mode.el | 214 ++++++++++++++++++ .emacs.local/noq-mode.el | 86 +++++++ .emacs.local/nothings-mode.el | 26 +++ .emacs.local/porth-mode.el | 70 ++++++ .emacs.local/simpc-mode.el | 99 ++++++++ .emacs.rc/autocommit-rc.el | 149 ++++++++++++ .emacs.rc/misc-rc.el | 137 +++++++++++ .emacs.rc/org-mode-rc.el | 68 ++++++ .emacs.rc/rc.el | 34 +++ .emacs.snippets/c++-mode/.yas-parents | 1 + .emacs.snippets/c++-mode/catch | 7 + .emacs.snippets/c++-mode/fore | 7 + .emacs.snippets/c++-mode/ns | 7 + .emacs.snippets/c++-mode/once | 10 + .emacs.snippets/c++-mode/qdebug | 7 + .emacs.snippets/c++-mode/try | 7 + .emacs.snippets/c++-mode/uns | 5 + .emacs.snippets/c++-mode/vec | 5 + .emacs.snippets/c-like-syntax/block | 7 + .emacs.snippets/c-like-syntax/elif | 7 + .emacs.snippets/c-like-syntax/else | 7 + .emacs.snippets/c-like-syntax/for | 7 + .emacs.snippets/c-like-syntax/if | 7 + .emacs.snippets/c-like-syntax/while | 7 + .emacs.snippets/c-mode/.yas-parents | 1 + .emacs.snippets/c-mode/inc | 5 + .emacs.snippets/c-mode/incq | 5 + .emacs.snippets/c-mode/main | 9 + .emacs.snippets/css-mode/bg | 5 + .emacs.snippets/css-mode/bgi | 5 + .emacs.snippets/css-mode/bor | 5 + .emacs.snippets/css-mode/cl | 5 + .emacs.snippets/css-mode/dispb | 5 + .emacs.snippets/css-mode/dispi | 5 + .emacs.snippets/css-mode/dispn | 5 + .emacs.snippets/css-mode/ff | 5 + .emacs.snippets/css-mode/fs | 5 + .emacs.snippets/css-mode/mar | 5 + .emacs.snippets/css-mode/marb | 5 + .emacs.snippets/css-mode/marl | 5 + .emacs.snippets/css-mode/marr | 5 + .emacs.snippets/css-mode/mart | 5 + .emacs.snippets/css-mode/pad | 5 + .emacs.snippets/css-mode/padb | 5 + .emacs.snippets/css-mode/padl | 5 + .emacs.snippets/css-mode/padr | 5 + .emacs.snippets/css-mode/padt | 5 + .emacs.snippets/d-mode/.yas-parents | 1 + .emacs.snippets/d-mode/imm | 5 + .emacs.snippets/d-mode/import | 5 + .../emacs-lisp-mode/emacs-lisp-module | 42 ++++ .../emacs-lisp-mode/pacmacs-module | 41 ++++ .emacs.snippets/fan-mode/.yas-parents | 1 + .emacs.snippets/fundamental-mode/mit | 24 ++ .emacs.snippets/fundamental-mode/sb | 8 + .emacs.snippets/html-mode/tag | 7 + .emacs.snippets/html-mode/tagi | 5 + .emacs.snippets/java-mode/.yas-parents | 1 + .emacs.snippets/java-mode/ps | 5 + .emacs.snippets/java-mode/psv | 5 + .emacs.snippets/js-mode/.yas-parents | 1 + .emacs.snippets/js-mode/item | 7 + .emacs.snippets/latex-mode/begin | 7 + .emacs.snippets/makefile-gmake-mode/make | 10 + .emacs.snippets/markdown-mode/todo | 9 + .emacs.snippets/nix-mode/.yas-parents | 1 + .emacs.snippets/nxml-mode/body | 7 + .emacs.snippets/nxml-mode/div | 7 + .emacs.snippets/nxml-mode/head | 7 + .emacs.snippets/nxml-mode/html | 7 + .emacs.snippets/nxml-mode/link | 5 + .emacs.snippets/nxml-mode/meta | 5 + .emacs.snippets/nxml-mode/pom | 17 ++ .emacs.snippets/nxml-mode/script | 5 + .emacs.snippets/nxml-mode/span | 5 + .emacs.snippets/nxml-mode/tag | 7 + .emacs.snippets/nxml-mode/tag.1 | 5 + .emacs.snippets/nxml-mode/tag.2 | 5 + .emacs.snippets/nxml-mode/title | 5 + .emacs.snippets/nxml-mode/xml | 5 + .emacs.snippets/org-mode/pomo | 43 ++++ .emacs.snippets/perl-mode/.yas-parents | 1 + .emacs.snippets/perl-mode/fore | 7 + .emacs.snippets/porth-mode/main | 9 + .emacs.snippets/porth-mode/ras | 6 + .emacs.snippets/porth-mode/todo | 6 + .emacs.snippets/porth-mode/unreach | 6 + .emacs.snippets/rust-mode/.yas-parents | 1 + .emacs.snippets/scala-mode/.yas-parents | 1 + .emacs.snippets/snippet-mode/snip | 9 + .emacs.snippets/typescript-mode/.yas-parents | 1 + .ghci | 3 + .gitconfig | 18 ++ .gitignore | 1 + .i3status.conf | 52 +++++ .jmacsrc | 3 + .nexrc | 2 + .npmrc | 1 + .rexim/icons/terminal-icon.png | Bin 0 -> 1809 bytes .rexim/icons/terminal-icon.svg | 114 ++++++++++ .screenlayout/home-setup-b590.sh | 2 + .screenlayout/home-setup-g50.sh | 2 + .screenlayout/home-setup.sh | 7 + .screenlayout/portable-setup-b590.sh | 2 + .screenlayout/portable-setup-g50.sh | 2 + .screenlayout/portable-setup.sh | 7 + .tmux.conf | 6 + .urxvt/ext/resize-font | 170 ++++++++++++++ .vimrc | 17 ++ MANIFEST | 10 + MANIFEST.linux | 11 + README.md | 16 ++ aide.txt | 1 + bg.png | Bin 0 -> 189830 bytes bin/gcc-path | 3 + bin/hhkb-i3 | 6 + bin/map-wacom | 3 + bin/png_to_ora | 31 +++ bin/prepare-pdf-noting | 40 ++++ bin/region-to-gif | 3 + deploy.sh | 44 ++++ i3/config | 188 +++++++++++++++ settings.ini | 6 + 128 files changed, 2464 insertions(+) create mode 100755 .Xresources create mode 100755 .apvlvrc create mode 100755 .emacs create mode 100755 .emacs.local/.gitkeep create mode 100755 .emacs.local/basm-mode.el create mode 100755 .emacs.local/jai-mode.el create mode 100755 .emacs.local/noq-mode.el create mode 100755 .emacs.local/nothings-mode.el create mode 100755 .emacs.local/porth-mode.el create mode 100755 .emacs.local/simpc-mode.el create mode 100755 .emacs.rc/autocommit-rc.el create mode 100755 .emacs.rc/misc-rc.el create mode 100755 .emacs.rc/org-mode-rc.el create mode 100755 .emacs.rc/rc.el create mode 100755 .emacs.snippets/c++-mode/.yas-parents create mode 100755 .emacs.snippets/c++-mode/catch create mode 100755 .emacs.snippets/c++-mode/fore create mode 100755 .emacs.snippets/c++-mode/ns create mode 100755 .emacs.snippets/c++-mode/once create mode 100755 .emacs.snippets/c++-mode/qdebug create mode 100755 .emacs.snippets/c++-mode/try create mode 100755 .emacs.snippets/c++-mode/uns create mode 100755 .emacs.snippets/c++-mode/vec create mode 100755 .emacs.snippets/c-like-syntax/block create mode 100755 .emacs.snippets/c-like-syntax/elif create mode 100755 .emacs.snippets/c-like-syntax/else create mode 100755 .emacs.snippets/c-like-syntax/for create mode 100755 .emacs.snippets/c-like-syntax/if create mode 100755 .emacs.snippets/c-like-syntax/while create mode 100755 .emacs.snippets/c-mode/.yas-parents create mode 100755 .emacs.snippets/c-mode/inc create mode 100755 .emacs.snippets/c-mode/incq create mode 100755 .emacs.snippets/c-mode/main create mode 100755 .emacs.snippets/css-mode/bg create mode 100755 .emacs.snippets/css-mode/bgi create mode 100755 .emacs.snippets/css-mode/bor create mode 100755 .emacs.snippets/css-mode/cl create mode 100755 .emacs.snippets/css-mode/dispb create mode 100755 .emacs.snippets/css-mode/dispi create mode 100755 .emacs.snippets/css-mode/dispn create mode 100755 .emacs.snippets/css-mode/ff create mode 100755 .emacs.snippets/css-mode/fs create mode 100755 .emacs.snippets/css-mode/mar create mode 100755 .emacs.snippets/css-mode/marb create mode 100755 .emacs.snippets/css-mode/marl create mode 100755 .emacs.snippets/css-mode/marr create mode 100755 .emacs.snippets/css-mode/mart create mode 100755 .emacs.snippets/css-mode/pad create mode 100755 .emacs.snippets/css-mode/padb create mode 100755 .emacs.snippets/css-mode/padl create mode 100755 .emacs.snippets/css-mode/padr create mode 100755 .emacs.snippets/css-mode/padt create mode 100755 .emacs.snippets/d-mode/.yas-parents create mode 100755 .emacs.snippets/d-mode/imm create mode 100755 .emacs.snippets/d-mode/import create mode 100755 .emacs.snippets/emacs-lisp-mode/emacs-lisp-module create mode 100755 .emacs.snippets/emacs-lisp-mode/pacmacs-module create mode 100755 .emacs.snippets/fan-mode/.yas-parents create mode 100755 .emacs.snippets/fundamental-mode/mit create mode 100755 .emacs.snippets/fundamental-mode/sb create mode 100755 .emacs.snippets/html-mode/tag create mode 100755 .emacs.snippets/html-mode/tagi create mode 100755 .emacs.snippets/java-mode/.yas-parents create mode 100755 .emacs.snippets/java-mode/ps create mode 100755 .emacs.snippets/java-mode/psv create mode 100755 .emacs.snippets/js-mode/.yas-parents create mode 100755 .emacs.snippets/js-mode/item create mode 100755 .emacs.snippets/latex-mode/begin create mode 100755 .emacs.snippets/makefile-gmake-mode/make create mode 100755 .emacs.snippets/markdown-mode/todo create mode 100755 .emacs.snippets/nix-mode/.yas-parents create mode 100755 .emacs.snippets/nxml-mode/body create mode 100755 .emacs.snippets/nxml-mode/div create mode 100755 .emacs.snippets/nxml-mode/head create mode 100755 .emacs.snippets/nxml-mode/html create mode 100755 .emacs.snippets/nxml-mode/link create mode 100755 .emacs.snippets/nxml-mode/meta create mode 100755 .emacs.snippets/nxml-mode/pom create mode 100755 .emacs.snippets/nxml-mode/script create mode 100755 .emacs.snippets/nxml-mode/span create mode 100755 .emacs.snippets/nxml-mode/tag create mode 100755 .emacs.snippets/nxml-mode/tag.1 create mode 100755 .emacs.snippets/nxml-mode/tag.2 create mode 100755 .emacs.snippets/nxml-mode/title create mode 100755 .emacs.snippets/nxml-mode/xml create mode 100755 .emacs.snippets/org-mode/pomo create mode 100755 .emacs.snippets/perl-mode/.yas-parents create mode 100755 .emacs.snippets/perl-mode/fore create mode 100755 .emacs.snippets/porth-mode/main create mode 100755 .emacs.snippets/porth-mode/ras create mode 100755 .emacs.snippets/porth-mode/todo create mode 100755 .emacs.snippets/porth-mode/unreach create mode 100755 .emacs.snippets/rust-mode/.yas-parents create mode 100755 .emacs.snippets/scala-mode/.yas-parents create mode 100755 .emacs.snippets/snippet-mode/snip create mode 100755 .emacs.snippets/typescript-mode/.yas-parents create mode 100755 .ghci create mode 100755 .gitconfig create mode 100755 .gitignore create mode 100755 .i3status.conf create mode 100755 .jmacsrc create mode 100755 .nexrc create mode 100755 .npmrc create mode 100755 .rexim/icons/terminal-icon.png create mode 100755 .rexim/icons/terminal-icon.svg create mode 100755 .screenlayout/home-setup-b590.sh create mode 100755 .screenlayout/home-setup-g50.sh create mode 100755 .screenlayout/home-setup.sh create mode 100755 .screenlayout/portable-setup-b590.sh create mode 100755 .screenlayout/portable-setup-g50.sh create mode 100755 .screenlayout/portable-setup.sh create mode 100755 .tmux.conf create mode 100755 .urxvt/ext/resize-font create mode 100755 .vimrc create mode 100755 MANIFEST create mode 100755 MANIFEST.linux create mode 100755 README.md create mode 100755 aide.txt create mode 100644 bg.png create mode 100755 bin/gcc-path create mode 100755 bin/hhkb-i3 create mode 100755 bin/map-wacom create mode 100755 bin/png_to_ora create mode 100755 bin/prepare-pdf-noting create mode 100755 bin/region-to-gif create mode 100755 deploy.sh create mode 100755 i3/config create mode 100755 settings.ini diff --git a/.Xresources b/.Xresources new file mode 100755 index 0000000..ab8dce6 --- /dev/null +++ b/.Xresources @@ -0,0 +1,70 @@ +Xft.dpi: 96 +Xft.antialias: 1 +Xft.hinting: 1 +Xft.hintstyle: hintmedium + +URxvt.termName: rxvt +URxvt*depth: 32 +URxvt.transparent: false +URxvt.font: xft:mono:size=22 +URxvt.scrollBar: false +URxvt.iconFile: .rexim/icons/terminal-icon.png +URxvt*lineSpace: -1 +URxvt*letterSpace: -1 + +! Gruber-Darker +URxvt*foreground: #e4e4ef +URxvt*background: #181818 +URxvt*color0: #2E3436 +URxvt*color1: #a40000 +URxvt*color2: #4E9A06 +URxvt*color3: #C4A000 +URxvt*color4: #3465A4 +URxvt*color5: #75507B +URxvt*color6: #ce5c00 +URxvt*color7: #babdb9 +URxvt*color8: #555753 +URxvt*color9: #EF2929 +URxvt*color10: #8AE234 +URxvt*color11: #FCE94F +URxvt*color12: #729FCF +URxvt*color13: #AD7FA8 +URxvt*color14: #fcaf3e +URxvt*color15: #EEEEEC + +! ! Zenburn +! URxvt*background: #3f3f3f +! URxvt*foreground: #dcdccc +! URxvt*cursorColor: #aaaaaa +! ! URxvt*colorUL: #366060 +! ! URxvt*underlineColor: #dfaf8f +! URxvt*color0: #3f3f3f +! URxvt*color1: #cc9393 +! URxvt*color2: #7f9f7f +! URxvt*color3: #d0bf8f +! URxvt*color4: #6ca0a3 +! URxvt*color5: #dc8cc3 +! URxvt*color6: #93e0e3 +! URxvt*color7: #dcdccc +! URxvt*color8: #989890 +! URxvt*color9: #dca3a3 +! URxvt*color10: #bfebbf +! URxvt*color11: #f0dfaf +! URxvt*color12: #8cd0d3 +! URxvt*color13: #dc8cc3 +! URxvt*color14: #93e0e3 +! URxvt*color15: #ffffff + +! Adwaita +! URxvt*background: #EDEDED +! URxvt*foreground: #2E3436 + +URxvt.perl-ext-common: resize-font,matcher +URxvt.url-launcher: /usr/bin/xdg-open +URxvt.matcher.button: 1 + +URxvt.keysym.C-parenright: resize-font:smaller +URxvt.keysym.C-equal: resize-font:bigger +URxvt.keysym.C-agrave: resize-font:reset + + diff --git a/.apvlvrc b/.apvlvrc new file mode 100755 index 0000000..51d2dcc --- /dev/null +++ b/.apvlvrc @@ -0,0 +1 @@ +set inverted=yes diff --git a/.emacs b/.emacs new file mode 100755 index 0000000..6a6ed32 --- /dev/null +++ b/.emacs @@ -0,0 +1,84 @@ +(require 'package) +(add-to-list 'package-archives '("gnu" . "https://elpa.gnu.org/packages/")) +(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) +(package-initialize) + +(unless (package-installed-p 'use-package) + (package-refresh-contents) + (package-install 'use-package)) +(eval-and-compile + (setq use-package-always-ensure t + use-package-expand-minimally t)) + +(load "~/.emacs.rc/rc.el") +(load "~/.emacs.rc/misc-rc.el") +(load "~/.emacs.rc/org-mode-rc.el") +(load "~/.emacs.rc/autocommit-rc.el") + +;; Look +(tool-bar-mode 0) +(menu-bar-mode 0) +(scroll-bar-mode 0) +(column-number-mode 1) +(show-paren-mode 1) +(electric-pair-mode 1) +(setq-default indent-tabs-mode t) +(setq-default tab-width 4) +(setq c-set-style "k&r") +(setq c-basic-offset 4) +(global-display-line-numbers-mode 1) +(setq display-line-numbers-type 'relative) +(set-face-attribute 'default nil :height 200) +(global-set-key (kbd "") 'keyboard-escape-quit) +(rc/require-theme 'gruber-darker) + +;; neotree +(unless (package-installed-p 'neotree) + (package-install 'neotree) + (package-install 'all-the-icons)) + +(setq neo-theme (if (display-graphic-p) 'icons)) +(setq neo-smart-open t) +(global-set-key [f8] 'neotree-toggle) + +;; Simpleclip +(unless (package-installed-p 'simpleclip) + (package-install 'simpleclip)) + +(global-set-key (kbd "C-c C-c") 'simpleclip-copy) +(global-set-key (kbd "C-c C-v") 'simpleclip-paste) + +;; Magit +(unless (package-installed-p 'magit) + (package-install 'magit)) + +;; go-mode +(unless (package-installed-p 'go-mode) + (package-install 'go-mode)) + +;; Rust mode +(unless (package-installed-p 'rust-mode) + (package-refresh-contents) + (package-install 'rust-mode)) + + +;; Download Evil +(unless (package-installed-p 'evil) + (package-install 'evil)) + +;; Enable Evil +(require 'evil) +(evil-mode 1) +(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. + '(package-selected-packages + '(evil rust-mode go-mode smex simpleclip paredit org-cliplink neotree multiple-cursors magit ido-completing-read+ helm haskell-mode gruber-darker-theme dash-functional all-the-icons))) +(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/.emacs.local/.gitkeep b/.emacs.local/.gitkeep new file mode 100755 index 0000000..e69de29 diff --git a/.emacs.local/basm-mode.el b/.emacs.local/basm-mode.el new file mode 100755 index 0000000..0d0972b --- /dev/null +++ b/.emacs.local/basm-mode.el @@ -0,0 +1,75 @@ +;;; basm-mode.el --- Major Mode for editing BASM Assembly Code -*- lexical-binding: t -*- + +;; Copyright (C) 2021 Alexey Kutepov + +;; Author: Alexey Kutepov +;; URL: http://github.com/tsoding/bm + +;; Permission is hereby granted, free of charge, to any person +;; obtaining a copy of this software and associated documentation +;; files (the "Software"), to deal in the Software without +;; restriction, including without limitation the rights to use, copy, +;; modify, merge, publish, distribute, sublicense, and/or sell copies +;; of the Software, and to permit persons to whom the Software is +;; furnished to do so, subject to the following conditions: + +;; The above copyright notice and this permission notice shall be +;; included in all copies or substantial portions of the Software. + +;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +;; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +;; NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS +;; BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +;; ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +;; CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +;; SOFTWARE. + +;;; Commentary: +;; +;; Major Mode for editing BASM Assembly Code. The language for a +;; simple Virtual Machine. + +(defconst basm-mode-syntax-table + (with-syntax-table (copy-syntax-table) + (modify-syntax-entry ?\; "<") + (modify-syntax-entry ?\n ">") + (modify-syntax-entry ?\" "\"") + (modify-syntax-entry ?\' "\"") + (syntax-table)) + "Syntax table for `basm-mode'.") + +(eval-and-compile + (defconst basm-instructions + '("nop" "push" "drop" "dup" + "plusi" "minusi" "multi" "divi" "modi" + "multu" "divu" "modu" + "plusf" "minusf" "multf" "divf" + "jmp" "jmp_if" "halt" "swap" "not" + "eqi" "gei" "gti" "lei" "lti" "nei" + "equ" "geu" "gtu" "leu" "ltu" "neu" + "eqf" "gef" "gtf" "lef" "ltf" "nef" + "ret" "call" "native" + "andb" "orb" "xor" "shr" "shl" "notb" + "read8u" "read16u" "read32u" "read64u" + "read8i" "read16i" "read32i" "read64i" + "write8" "write16" "write32" "write64" + "i2f" "u2f" "f2i" "f2u"))) + +(defconst basm-highlights + `(("%[[:word:]_]+" . font-lock-preprocessor-face) + ("[[:word:]_]+\\:" . font-lock-constant-face) + (,(regexp-opt basm-instructions 'symbols) . font-lock-keyword-face))) + +;;;###autoload +(define-derived-mode basm-mode fundamental-mode "basm" + "Major Mode for editing BASM Assembly Code." + (setq font-lock-defaults '(basm-highlights)) + (set-syntax-table basm-mode-syntax-table)) + +;;;###autoload +(add-to-list 'auto-mode-alist '("\\.\\(b\\|h\\)asm\\'" . basm-mode)) + +(provide 'basm-mode) + +;;; basm-mode.el ends here diff --git a/.emacs.local/jai-mode.el b/.emacs.local/jai-mode.el new file mode 100755 index 0000000..0363883 --- /dev/null +++ b/.emacs.local/jai-mode.el @@ -0,0 +1,214 @@ +;; jai-mode.el - very basic jai mode + +(require 'cl) +(require 'rx) +(require 'js) +(require 'compile) + +(defconst jai-mode-syntax-table + (let ((table (make-syntax-table))) + (modify-syntax-entry ?\" "\"" table) + (modify-syntax-entry ?\\ "\\" table) + + ;; additional symbols + (modify-syntax-entry ?_ "w" table) + + (modify-syntax-entry ?' "." table) + (modify-syntax-entry ?: "." table) + (modify-syntax-entry ?+ "." table) + (modify-syntax-entry ?- "." table) + (modify-syntax-entry ?% "." table) + (modify-syntax-entry ?& "." table) + (modify-syntax-entry ?| "." table) + (modify-syntax-entry ?^ "." table) + (modify-syntax-entry ?! "." table) + (modify-syntax-entry ?$ "/" table) + (modify-syntax-entry ?= "." table) + (modify-syntax-entry ?< "." table) + (modify-syntax-entry ?> "." table) + (modify-syntax-entry ?? "." table) + + ;; Modify some syntax entries to allow nested block comments + (modify-syntax-entry ?/ ". 124b" table) + (modify-syntax-entry ?* ". 23n" table) + (modify-syntax-entry ?\n "> b" table) + (modify-syntax-entry ?\^m "> b" table) + + table)) + +(defconst jai-builtins + '("cast" "it" "type_info" "size_of")) + +(defconst jai-keywords + '("if" "ifx" "else" "then" "while" "for" "switch" "case" "struct" "enum" + "return" "new" "remove" "continue" "break" "defer" "inline" "no_inline" + "using" "SOA")) + +(defconst jai-constants + '("null" "true" "false")) + +(defconst jai-typenames + '("int" "u64" "u32" "u16" "u8" + "s64" "s32" "s16" "s8" "float" + "float32" "float64" "string" + "bool")) + +(defun jai-wrap-word-rx (s) + (concat "\\<" s "\\>")) + +(defun jai-keywords-rx (keywords) + "build keyword regexp" + (jai-wrap-word-rx (regexp-opt keywords t))) + +(defconst jai-hat-type-rx (rx (group (and "^" (1+ word))))) +(defconst jai-dollar-type-rx (rx (group "$" (or (1+ word) (opt "$"))))) +(defconst jai-number-rx + (rx (and + symbol-start + (or (and (+ digit) (opt (and (any "eE") (opt (any "-+")) (+ digit)))) + (and "0" (any "xX") (+ hex-digit))) + (opt (and (any "_" "A-Z" "a-z") (* (any "_" "A-Z" "a-z" "0-9")))) + symbol-end))) + +(defconst jai-font-lock-defaults + `( + ;; Keywords + (,(jai-keywords-rx jai-keywords) 1 font-lock-keyword-face) + + ;; single quote characters + ("\\('[[:word:]]\\)\\>" 1 font-lock-constant-face) + + ;; Variables + (,(jai-keywords-rx jai-builtins) 1 font-lock-variable-name-face) + + ;; Constants + (,(jai-keywords-rx jai-constants) 1 font-lock-constant-face) + + ;; Hash directives + ("#\\w+" . font-lock-preprocessor-face) + + ;; At directives + ("@\\w+" . font-lock-preprocessor-face) + + ;; Strings + ("\\\".*\\\"" . font-lock-string-face) + + ;; Numbers + (,(jai-wrap-word-rx jai-number-rx) . font-lock-constant-face) + + ;; Types + (,(jai-keywords-rx jai-typenames) 1 font-lock-type-face) + (,jai-hat-type-rx 1 font-lock-type-face) + (,jai-dollar-type-rx 1 font-lock-type-face) + + ("---" . font-lock-constant-face) + )) + +;; add setq-local for older emacs versions +(unless (fboundp 'setq-local) + (defmacro setq-local (var val) + `(set (make-local-variable ',var) ,val))) + +(defconst jai--defun-rx "\(.*\).*\{") + +(defmacro jai-paren-level () + `(car (syntax-ppss))) + +(defun jai-line-is-defun () + "return t if current line begins a procedure" + (interactive) + (save-excursion + (beginning-of-line) + (let (found) + (while (and (not (eolp)) (not found)) + (if (looking-at jai--defun-rx) + (setq found t) + (forward-char 1))) + found))) + +(defun jai-beginning-of-defun (&optional count) + "Go to line on which current function starts." + (interactive) + (let ((orig-level (jai-paren-level))) + (while (and + (not (jai-line-is-defun)) + (not (bobp)) + (> orig-level 0)) + (setq orig-level (jai-paren-level)) + (while (>= (jai-paren-level) orig-level) + (skip-chars-backward "^{") + (backward-char)))) + (if (jai-line-is-defun) + (beginning-of-line))) + +(defun jai-end-of-defun () + "Go to line on which current function ends." + (interactive) + (let ((orig-level (jai-paren-level))) + (when (> orig-level 0) + (jai-beginning-of-defun) + (end-of-line) + (setq orig-level (jai-paren-level)) + (skip-chars-forward "^}") + (while (>= (jai-paren-level) orig-level) + (skip-chars-forward "^}") + (forward-char))))) + +(defalias 'jai-parent-mode + (if (fboundp 'prog-mode) 'prog-mode 'fundamental-mode)) + +;; imenu hookup +(add-hook 'jai-mode-hook + (lambda () + (setq imenu-generic-expression + '( + ("type" "^\\(.*:*.*\\) : " 1) + ("function" "^\\(.*\\) :: " 1) + ("struct" "^\\(.*\\) *:: *\\(struct\\)\\(.*\\){" 1) + ) + ) + ) +) + +;; NOTE: taken from the scala-indent package and modified for Jai. +;; Still uses the js-indent-line as a base, which will have to be +;; replaced when the language is more mature. +(defun jai--indent-on-parentheses () + (when (and (= (char-syntax (char-before)) ?\)) + (= (save-excursion (back-to-indentation) (point)) (1- (point)))) + (js-indent-line))) + +(defun jai--add-self-insert-hooks () + (add-hook 'post-self-insert-hook + 'jai--indent-on-parentheses) + ) + +;;;###autoload +(define-derived-mode jai-mode jai-parent-mode "Jai" + :syntax-table jai-mode-syntax-table + :group 'jai + (setq bidi-paragraph-direction 'left-to-right) + (setq-local require-final-newline mode-require-final-newline) + (setq-local parse-sexp-ignore-comments t) + (setq-local comment-start-skip "\\(//+\\|/\\*+\\)\\s *") + (setq-local comment-start "/*") + (setq-local comment-end "*/") + (setq-local indent-line-function 'js-indent-line) + (setq-local font-lock-defaults '(jai-font-lock-defaults)) + (setq-local beginning-of-defun-function 'jai-beginning-of-defun) + (setq-local end-of-defun-function 'jai-end-of-defun) + + ;; add indent functionality to some characters + (jai--add-self-insert-hooks) + + (font-lock-fontify-buffer)) + +;;;###autoload +(add-to-list 'auto-mode-alist '("\\.jai\\'" . jai-mode)) + +(defconst jai--error-regexp + "^\\([^ :]+\\):\\([0-9]+\\),\\([0-9]+\\):") +(push `(jai ,jai--error-regexp 1 2 3 2) compilation-error-regexp-alist-alist) +(push 'jai compilation-error-regexp-alist) + +(provide 'jai-mode) diff --git a/.emacs.local/noq-mode.el b/.emacs.local/noq-mode.el new file mode 100755 index 0000000..9e8cd61 --- /dev/null +++ b/.emacs.local/noq-mode.el @@ -0,0 +1,86 @@ +;;; noq-mode.el --- Major Mode for editing Noq source code -*- lexical-binding: t -*- + +;; Copyright (C) 2021 Alexey Kutepov + +;; Author: Alexey Kutepov +;; URL: https://github.com/tsoding/noq + +;; Permission is hereby granted, free of charge, to any person +;; obtaining a copy of this software and associated documentation +;; files (the "Software"), to deal in the Software without +;; restriction, including without limitation the rights to use, copy, +;; modify, merge, publish, distribute, sublicense, and/or sell copies +;; of the Software, and to permit persons to whom the Software is +;; furnished to do so, subject to the following conditions: + +;; The above copyright notice and this permission notice shall be +;; included in all copies or substantial portions of the Software. + +;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +;; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +;; NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS +;; BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +;; ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +;; CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +;; SOFTWARE. + +;;; Commentary: +;; +;; Major Mode for editing Noq source code + +(defconst noq-mode-syntax-table + (with-syntax-table (copy-syntax-table) + ;; Python-style comments + (modify-syntax-entry ?# "<") + (modify-syntax-entry ?\n ">") + ;; C/C++ style comments + (modify-syntax-entry ?/ ". 124b") + (modify-syntax-entry ?* ". 23") + (modify-syntax-entry ?\n "> b") + ;; (modify-syntax-entry ?/ ". 124b") + ;; (modify-syntax-entry ?* ". 23") + ;; (modify-syntax-entry ?\n "> b") + ;; Chars are the same as strings + (modify-syntax-entry ?' "\"") + (syntax-table)) + "Syntax table for `noq-mode'.") + +(eval-and-compile + (defconst noq-apply-strategies + '("all" "deep"))) + +(eval-and-compile + (defconst noq-keywords + '("undo" "quit" "delete" "load" "save"))) + +(defconst noq-highlights + `(( + ;; Keywords + ,(regexp-opt noq-keywords 'words) . 'font-lock-keyword-face) + + ;; `Apply` strategies + (,(format "\\(%s\\)[\t ]*|" (mapconcat 'regexp-quote noq-apply-strategies "\\|")) + 1 'font-lock-type-face) + ("\\([0-9]+\\)[\t ]*|" 1 'font-lock-type-face) + + ;; Variables + ("\\(^\\|[^a-zA-Z0-9_]\\)\\([_A-Z][_a-zA-Z0-9]*\\)" 2 'font-lock-variable-name-face) + + ;; Functor names + ("\\([^\n\| ]*\\)[\t ]*::" 1 'font-lock-function-name-face) + )) + +;;;###autoload +(define-derived-mode noq-mode prog-mode "noq" + "Major Mode for editing Noq source code." + :syntax-table noq-mode-syntax-table + (setq font-lock-defaults '(noq-highlights)) + (setq-local comment-start "// ")) + +;;;###autoload +(add-to-list 'auto-mode-alist '("\\.noq\\'" . noq-mode)) + +(provide 'noq-mode) + +;;; noq-mode.el ends here diff --git a/.emacs.local/nothings-mode.el b/.emacs.local/nothings-mode.el new file mode 100755 index 0000000..4d20bca --- /dev/null +++ b/.emacs.local/nothings-mode.el @@ -0,0 +1,26 @@ +(require 'subr-x) + +(defvar nothings-mode-syntax-table + (let ((table (make-syntax-table))) + ;; C/C++ style comments + (modify-syntax-entry ?/ ". 124b" table) + (modify-syntax-entry ?* ". 23" table) + (modify-syntax-entry ?\n "> b" table) + ;; Preprocessor stuff? + (modify-syntax-entry ?# "." table) + ;; Chars are the same as strings + (modify-syntax-entry ?' "\"" table) + table)) + +(defun nothings-font-lock-keywords () + (list + `("# *[a-zA-Z0-9_]+" . font-lock-preprocessor-face) + `("#.*include \\(\\(<\\|\"\\).*\\(>\\|\"\\)\\)" . (1 font-lock-string-face)))) + +(define-derived-mode nothings-mode prog-mode "Nothings" + "Simple major mode for editing C files." + :syntax-table nothings-mode-syntax-table + (setq-local font-lock-defaults '(nothings-font-lock-keywords)) + (setq-local comment-start "//")) + +(provide 'nothings-mode) diff --git a/.emacs.local/porth-mode.el b/.emacs.local/porth-mode.el new file mode 100755 index 0000000..d089a5a --- /dev/null +++ b/.emacs.local/porth-mode.el @@ -0,0 +1,70 @@ +;;; porth-mode.el --- Major Mode for editing Porth source code -*- lexical-binding: t -*- + +;; Copyright (C) 2021 Alexey Kutepov + +;; Author: Alexey Kutepov +;; URL: https://github.com/tsoding/porth + +;; Permission is hereby granted, free of charge, to any person +;; obtaining a copy of this software and associated documentation +;; files (the "Software"), to deal in the Software without +;; restriction, including without limitation the rights to use, copy, +;; modify, merge, publish, distribute, sublicense, and/or sell copies +;; of the Software, and to permit persons to whom the Software is +;; furnished to do so, subject to the following conditions: + +;; The above copyright notice and this permission notice shall be +;; included in all copies or substantial portions of the Software. + +;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +;; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +;; NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS +;; BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +;; ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +;; CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +;; SOFTWARE. + +;;; Commentary: +;; +;; Major Mode for editing Porth source code. It's Forth but written in Python. + +;; TODO: jump to the opposite side of the blocks with C-M-f and C-M-b +;; I think tuareg-mode can do that with similar end-like block, we try +;; to steal their approach +;; TODO: color the names of definitions in const, memory, proc, etc differently + +(defconst porth-mode-syntax-table + (with-syntax-table (copy-syntax-table) + ;; C/C++ style comments + (modify-syntax-entry ?/ ". 124b") + (modify-syntax-entry ?* ". 23") + (modify-syntax-entry ?\n "> b") + ;; Chars are the same as strings + (modify-syntax-entry ?' "\"") + (syntax-table)) + "Syntax table for `porth-mode'.") + +(eval-and-compile + (defconst porth-keywords + '("if" "else" "while" "do" "include" "memory" "proc" + "const" "end" "offset" "reset" "assert" "in" "inline" + "here" "addr-of" "call-like" "let" "peek" "return" + "var" "cast" "struct"))) + +(defconst porth-highlights + `((,(regexp-opt porth-keywords 'symbols) . font-lock-keyword-face))) + +;;;###autoload +(define-derived-mode porth-mode prog-mode "porth" + "Major Mode for editing Porth source code." + :syntax-table porth-mode-syntax-table + (setq font-lock-defaults '(porth-highlights)) + (setq-local comment-start "// ")) + +;;;###autoload +(add-to-list 'auto-mode-alist '("\\.porth\\'" . porth-mode)) + +(provide 'porth-mode) + +;;; porth-mode.el ends here diff --git a/.emacs.local/simpc-mode.el b/.emacs.local/simpc-mode.el new file mode 100755 index 0000000..738c960 --- /dev/null +++ b/.emacs.local/simpc-mode.el @@ -0,0 +1,99 @@ +(require 'subr-x) + +(defvar simpc-mode-syntax-table + (let ((table (make-syntax-table))) + ;; C/C++ style comments + (modify-syntax-entry ?/ ". 124b" table) + (modify-syntax-entry ?* ". 23" table) + (modify-syntax-entry ?\n "> b" table) + ;; Preprocessor stuff? + (modify-syntax-entry ?# "." table) + ;; Chars are the same as strings + (modify-syntax-entry ?' "\"" table) + ;; Treat <> as punctuation (needed to highlight C++ keywords + ;; properly in template syntax) + (modify-syntax-entry ?< "." table) + (modify-syntax-entry ?> "." table) + + (modify-syntax-entry ?& "." table) + (modify-syntax-entry ?% "." table) + table)) + +(defun simpc-types () + '("char" "int" "long" "short" "void" "bool" "float" "double" "signed" "unsigned" + "char16_t" "char32_t" "char8_t" + "int8_t" "uint8_t" "int16_t" "uint16_t" "int32_t" "uint32_t" "int64_t" "uint64_t" + "uintptr_t" + "size_t")) + +(defun simpc-keywords () + '("auto" "break" "case" "const" "continue" "default" "do" + "else" "enum" "extern" "for" "goto" "if" "register" + "return" "sizeof" "static" "struct" "switch" "typedef" + "union" "volatile" "while" "alignas" "alignof" "and" + "and_eq" "asm" "atomic_cancel" "atomic_commit" "atomic_noexcept" "bitand" + "bitor" "catch" "class" "co_await" + "co_return" "co_yield" "compl" "concept" "const_cast" "consteval" "constexpr" + "constinit" "decltype" "delete" "dynamic_cast" "explicit" "export" "false" + "friend" "inline" "mutable" "namespace" "new" "noexcept" "not" "not_eq" + "nullptr" "operator" "or" "or_eq" "private" "protected" "public" "reflexpr" + "reinterpret_cast" "requires" "static_assert" "static_cast" "synchronized" + "template" "this" "thread_local" "throw" "true" "try" "typeid" "typename" + "using" "virtual" "wchar_t" "xor" "xor_eq")) + +(defun simpc-font-lock-keywords () + (list + `("# *[#a-zA-Z0-9_]+" . font-lock-preprocessor-face) + `("#.*include \\(\\(<\\|\"\\).*\\(>\\|\"\\)\\)" . (1 font-lock-string-face)) + `(,(regexp-opt (simpc-keywords) 'symbols) . font-lock-keyword-face) + `(,(regexp-opt (simpc-types) 'symbols) . font-lock-type-face))) + +;;; TODO: try to replace simpc--space-prefix-len with current-indentation +(defun simpc--space-prefix-len (line) + (- (length line) + (length (string-trim-left line)))) + +(defun simpc--previous-non-empty-line () + (save-excursion + (forward-line -1) + (while (and (not (bobp)) + (string-empty-p + (string-trim-right + (thing-at-point 'line t)))) + (forward-line -1)) + (thing-at-point 'line t))) + +(defun simpc--desired-indentation () + (let ((cur-line (string-trim-right (thing-at-point 'line t))) + (prev-line (string-trim-right (simpc--previous-non-empty-line))) + (indent-len 4)) + (cond + ((and (string-suffix-p "{" prev-line) + (string-prefix-p "}" (string-trim-left cur-line))) + (simpc--space-prefix-len prev-line)) + ((string-suffix-p "{" prev-line) + (+ (simpc--space-prefix-len prev-line) indent-len)) + ((string-prefix-p "}" (string-trim-left cur-line)) + (max (- (simpc--space-prefix-len prev-line) indent-len) 0)) + (t (simpc--space-prefix-len prev-line))))) + +;;; TODO: customizable indentation (amount of spaces, tabs, etc) +(defun simpc-indent-line () + (interactive) + (when (not (bobp)) + (let* ((current-indentation + (simpc--space-prefix-len (thing-at-point 'line t))) + (desired-indentation + (simpc--desired-indentation)) + (n (max (- (current-column) current-indentation) 0))) + (indent-line-to desired-indentation) + (forward-char n)))) + +(define-derived-mode simpc-mode prog-mode "Simple C" + "Simple major mode for editing C files." + :syntax-table simpc-mode-syntax-table + (setq-local font-lock-defaults '(simpc-font-lock-keywords)) + (setq-local indent-line-function 'simpc-indent-line) + (setq-local comment-start "// ")) + +(provide 'simpc-mode) diff --git a/.emacs.rc/autocommit-rc.el b/.emacs.rc/autocommit-rc.el new file mode 100755 index 0000000..ca2ddbe --- /dev/null +++ b/.emacs.rc/autocommit-rc.el @@ -0,0 +1,149 @@ +;;; TODO(c3bdae31-4329-4217-98a0-743b9dcbb6d2): extract autocommit into a separate package +;;; +;;; Once e266bfaa-2a01-4881-9e7f-ce2c592f7cdd is done, I think we can do that. + +(defvar rc/autocommit-local-locks + (make-hash-table :test 'equal)) + +(defun rc/file-truename-nilable (filename) + (when filename + (file-truename filename))) + +(defun rc/autocommit--id () + (let ((id (-> default-directory + (locate-dominating-file ".git") + (rc/file-truename-nilable)))) + (when (not id) + (error "%s is not inside of a git repository" default-directory)) + (unless (gethash id rc/autocommit-local-locks) + (puthash id nil rc/autocommit-local-locks)) + id)) + +(defun rc/autocommit--get-lock (lock) + (-> (rc/autocommit--id) + (gethash rc/autocommit-local-locks) + (plist-get lock))) + +(defun rc/autocommit--set-lock (lock value) + (puthash (rc/autocommit--id) + (-> (rc/autocommit--id) + (gethash rc/autocommit-local-locks) + (plist-put lock value)) + rc/autocommit-local-locks)) + +(defun rc/autocommit--toggle-lock (lock) + (-> lock + (rc/autocommit--get-lock) + (not) + (rc/autocommit--set-lock))) + +(defun rc/autocommit--create-dir-locals (file-name) + (write-region "((nil . ((eval . (rc/autocommit-dir-locals)))))" + nil file-name)) + +(defun rc/y-or-n-if (predicate question action) + (when (or (not (funcall predicate)) + (y-or-n-p question)) + (funcall action))) + +;;; TODO(4229cf9a-4768-4f5e-aca1-865256c64a23): rc/autocommit-init-dir should modify dir locals file on AST level +;;; +;;; Right know it just overrides .dir-locals file on text level. I +;;; want it to +;;; - read .dir-locals, +;;; - parse the assoc list, +;;; - check if there is already autocommit stuff +;;; - add autocommit stuff to the assoc list if needed +;;; - and write it back to the file +;;; +;;; That will enable us with modifying dir locals that contains custom +;;; stuff unrelated to autocommit +(defun rc/autocommit-init-dir (&optional dir) + "Initialize autocommit folder." + (interactive "DAutocommit directory: ") + (let* ((autocommit-dir (if dir dir default-directory)) + (file-name (concat autocommit-dir + dir-locals-file))) + (rc/y-or-n-if (-partial #'file-exists-p file-name) + (format "%s already exists. Replace it?" file-name) + (-partial #'rc/autocommit--create-dir-locals file-name)))) + +(defun rc/autocommit-dir-locals () + "The function that has to be put into the .dir-locals.el file +of the autocommit folder as evaluated for any mode." + (interactive) + (auto-revert-mode 1) + (rc/autopull-changes) + (add-hook 'after-save-hook + 'rc/autocommit-changes + nil 'make-it-local)) + +;;; TODO: rc/toggle-autocommit-offline doesn't work correctly +;;; +;;; It should toggle offline for all of the folders at once +(defun rc/toggle-autocommit-offline () + "Toggle between OFFLINE and ONLINE modes. + +Autocommit can be in two modes: OFFLINE and ONLINE. When ONLINE +rc/autocommit-changes does `git commit && git push'. When OFFLINE +rc/autocommit does only `git commit'." + (interactive) + (rc/autocommit--toggle-lock 'autocommit-offline) + (if (rc/autocommit--get-lock 'autocommit-offline) + (message "[OFFLINE] Autocommit Mode") + (message "[ONLINE] Autocommit Mode"))) + +(defun rc/autopull-changes () + "Pull the recent changes. + +Should be invoked once before working with the content under +autocommit. Usually put into the dir locals file." + (interactive) + (when (not (rc/autocommit--get-lock 'autopull-lock)) + (rc/autocommit--set-lock 'autopull-lock t) + (if (rc/autocommit--get-lock 'autocommit-offline) + (message "[OFFLINE] NOT Syncing the Agenda") + (if (y-or-n-p (format "Sync the Agenda? [%s]" (rc/autocommit--id))) + (progn + (message (format "Syncing the Agenda [%s]" (rc/autocommit--id))) + (shell-command "git pull")) + (progn + (rc/autocommit--set-lock 'autocommit-offline t) + (message (format "[OFFLINE] NOT Syncing the Agenda [%s]" + (rc/autocommit--id)))))))) + +(defun rc/autocommit-changes () + "Commit all of the changes under the autocommit folder. + +Should be invoked each time a change is made. Usually put into +dir locals file." + (interactive) + (if (rc/autocommit--get-lock 'autocommit-lock) + (rc/autocommit--set-lock 'autocommit-changed t) + (rc/autocommit--set-lock 'autocommit-lock t) + (rc/autocommit--set-lock 'autocommit-changed nil) + (set-process-sentinel (rc/run-commit-process (rc/autocommit--id)) + (-partial 'rc/autocommit-beat (rc/autocommit--id))))) + +(defun rc/run-commit-process (autocommit-directory) + (let ((default-directory autocommit-directory)) + (let ((autocommit-message (format-time-string "Autocommit %s"))) + (start-process-shell-command + (format "Autocommit-%s" autocommit-directory) + (format "*Autocommit-%s*" autocommit-directory) + (format (if (rc/autocommit--get-lock 'autocommit-offline) + "git add -A && git commit -m \"%s\"" + "git add -A && git commit -m \"%s\" && git push origin master") + autocommit-message))))) + +(defun rc/autocommit-beat (autocommit-directory process event) + (let ((default-directory autocommit-directory)) + (message (if (rc/autocommit--get-lock 'autocommit-offline) + "[OFFLINE] Autocommit: %s" + "Autocommit: %s") + event) + (if (not (rc/autocommit--get-lock 'autocommit-changed)) + (rc/autocommit--set-lock 'autocommit-lock nil) + (rc/autocommit--set-lock 'autocommit-changed nil) + (set-process-sentinel (rc/run-commit-process autocommit-directory) + (-partial 'rc/autocommit-beat autocommit-directory))))) diff --git a/.emacs.rc/misc-rc.el b/.emacs.rc/misc-rc.el new file mode 100755 index 0000000..5720c93 --- /dev/null +++ b/.emacs.rc/misc-rc.el @@ -0,0 +1,137 @@ +(require 'ansi-color) + +(global-set-key (kbd "C-c p") 'find-file-at-point) +(global-set-key (kbd "C-c i m") 'imenu) + +(setq-default inhibit-splash-screen t + make-backup-files nil + tab-width 4 + indent-tabs-mode nil + compilation-scroll-output t + default-input-method "russian-computer" + visible-bell (equal system-type 'windows-nt)) + +(defun rc/colorize-compilation-buffer () + (toggle-read-only) + (ansi-color-apply-on-region compilation-filter-start (point)) + (toggle-read-only)) +(add-hook 'compilation-filter-hook 'rc/colorize-compilation-buffer) + +(defun rc/buffer-file-name () + (if (equal major-mode 'dired-mode) + default-directory + (buffer-file-name))) + +(defun rc/parent-directory (path) + (file-name-directory (directory-file-name path))) + +(defun rc/root-anchor (path anchor) + (cond + ((string= anchor "") nil) + ((file-exists-p (concat (file-name-as-directory path) anchor)) path) + ((string-equal path "/") nil) + (t (rc/root-anchor (rc/parent-directory path) anchor)))) + +(defun rc/clipboard-org-mode-file-link (anchor) + (interactive "sRoot anchor: ") + (let* ((root-dir (rc/root-anchor default-directory anchor)) + (org-mode-file-link (format "file:%s::%d" + (if root-dir + (file-relative-name (rc/buffer-file-name) root-dir) + (rc/buffer-file-name)) + (line-number-at-pos)))) + (kill-new org-mode-file-link) + (message org-mode-file-link))) + +;;; Taken from here: +;;; http://stackoverflow.com/questions/2416655/file-path-to-clipboard-in-emacs +(defun rc/put-file-name-on-clipboard () + "Put the current file name on the clipboard" + (interactive) + (let ((filename (rc/buffer-file-name))) + (when filename + (kill-new filename) + (message filename)))) + +(defun rc/put-buffer-name-on-clipboard () + "Put the current buffer name on the clipboard" + (interactive) + (kill-new (buffer-name)) + (message (buffer-name))) + +(defun rc/kill-autoloads-buffers () + (interactive) + (dolist (buffer (buffer-list)) + (let ((name (buffer-name buffer))) + (when (string-match-p "-autoloads.el" name) + (kill-buffer buffer) + (message "Killed autoloads buffer %s" name))))) + +(defun rc/start-python-simple-http-server () + (interactive) + (shell-command "python -m SimpleHTTPServer 3001 &" + "*Simple Python HTTP Server*")) + +(global-set-key (kbd "C-x p s") 'rc/start-python-simple-http-server) + +;;; Taken from here: +;;; http://blog.bookworm.at/2007/03/pretty-print-xml-with-emacs.html +(defun bf-pretty-print-xml-region (begin end) + "Pretty format XML markup in region. You need to have nxml-mode +http://www.emacswiki.org/cgi-bin/wiki/NxmlMode installed to do +this. The function inserts linebreaks to separate tags that have +nothing but whitespace between them. It then indents the markup +by using nxml's indentation rules." + (interactive "r") + (save-excursion + (nxml-mode) + (goto-char begin) + (while (search-forward-regexp "\>[ \\t]*\<" nil t) + (backward-char) (insert "\n")) + (indent-region begin end)) + (message "Ah, much better!")) + +;;; Stolen from http://ergoemacs.org/emacs/emacs_unfill-paragraph.html +(defun rc/unfill-paragraph () + "Replace newline chars in current paragraph by single spaces. +This command does the inverse of `fill-paragraph'." + (interactive) + (let ((fill-column 90002000)) ; 90002000 is just random. you can use `most-positive-fixnum' + (fill-paragraph nil))) + +(global-set-key (kbd "C-c M-q") 'rc/unfill-paragraph) + +(defun rc/load-path-here () + (interactive) + (add-to-list 'load-path default-directory)) + +(defconst rc/frame-transparency 85) + +(defun rc/toggle-transparency () + (interactive) + (let ((frame-alpha (frame-parameter nil 'alpha))) + (if (or (not frame-alpha) + (= (cadr frame-alpha) 100)) + (set-frame-parameter nil 'alpha + `(,rc/frame-transparency + ,rc/frame-transparency)) + (set-frame-parameter nil 'alpha '(100 100))))) + +(defun rc/duplicate-line () + "Duplicate current line" + (interactive) + (let ((column (- (point) (point-at-bol))) + (line (let ((s (thing-at-point 'line t))) + (if s (string-remove-suffix "\n" s) "")))) + (move-end-of-line 1) + (newline) + (insert line) + (move-beginning-of-line 1) + (forward-char column))) + +(global-set-key (kbd "C-,") 'rc/duplicate-line) + +;;; A little hack which fixes a problem with meta key in fluxbox under VNC. +(setq x-alt-keysym 'meta) + +(setq confirm-kill-emacs 'y-or-n-p) diff --git a/.emacs.rc/org-mode-rc.el b/.emacs.rc/org-mode-rc.el new file mode 100755 index 0000000..0c1d533 --- /dev/null +++ b/.emacs.rc/org-mode-rc.el @@ -0,0 +1,68 @@ +(global-set-key (kbd "C-x a") 'org-agenda) +(global-set-key (kbd "C-c C-x j") #'org-clock-jump-to-current-clock) + +(setq org-agenda-files (list "~/Documents/Agenda/")) + +(setq org-export-backends '(md)) + +(defun rc/org-increment-move-counter () + (interactive) + + (defun default (x d) + (if x x d)) + + (let* ((point (point)) + (move-counter-name "MOVE_COUNTER") + (move-counter-value (-> (org-entry-get point move-counter-name) + (default "0") + (string-to-number) + (1+)))) + (org-entry-put point move-counter-name + (number-to-string move-counter-value))) + nil) + +(defun rc/org-get-heading-name () + (nth 4 (org-heading-components))) + +(defun rc/org-kill-heading-name-save () + (interactive) + (let ((heading-name (rc/org-get-heading-name))) + (kill-new heading-name) + (message "Kill \"%s\"" heading-name))) + +(global-set-key (kbd "C-x p w") 'rc/org-kill-heading-name-save) + +(setq org-agenda-custom-commands + '(("u" "Unscheduled" tags "+personal-SCHEDULED={.+}-DEADLINE={.+}/!+TODO" + ((org-agenda-sorting-strategy '(priority-down)))) + ("p" "Personal" ((agenda "" ((org-agenda-tag-filter-preset (list "+personal")))))) + ("w" "Work" ((agenda "" ((org-agenda-tag-filter-preset (list "+work")))))) + )) + +;;; org-cliplink + +(rc/require 'org-cliplink) + +(global-set-key (kbd "C-x p i") 'org-cliplink) + +(defun rc/cliplink-task () + (interactive) + (org-cliplink-retrieve-title + (substring-no-properties (current-kill 0)) + '(lambda (url title) + (insert (if title + (concat "* TODO " title + "\n [[" url "][" title "]]") + (concat "* TODO " url + "\n [[" url "]]")))))) +(global-set-key (kbd "C-x p t") 'rc/cliplink-task) + +;;; org-capture + +(setq org-capture-templates + '(("p" "Capture task" entry (file "~/Documents/Agenda/Tasks.org") + "* TODO %?\n SCHEDULED: %t\n") + ("K" "Cliplink capture task" entry (file "~/Documents/Agenda/Tasks.org") + "* TODO %(org-cliplink-capture) \n SCHEDULED: %t\n" :empty-lines 1))) +(define-key global-map "\C-cc" 'org-capture) + diff --git a/.emacs.rc/rc.el b/.emacs.rc/rc.el new file mode 100755 index 0000000..c57f380 --- /dev/null +++ b/.emacs.rc/rc.el @@ -0,0 +1,34 @@ +(add-to-list 'package-archives + '("melpa" . "https://melpa.org/packages/") t) +;; (add-to-list 'package-archives +;; '("melpa-stable" . "https://stable.melpa.org/packages/") t) + +(defvar rc/package-contents-refreshed nil) + +(defun rc/package-refresh-contents-once () + (when (not rc/package-contents-refreshed) + (setq rc/package-contents-refreshed t) + (package-refresh-contents))) + +(defun rc/require-one-package (package) + (when (not (package-installed-p package)) + (rc/package-refresh-contents-once) + (package-install package))) + +(defun rc/require (&rest packages) + (dolist (package packages) + (rc/require-one-package package))) + +(defun rc/require-theme (theme) + (let ((theme-package (->> theme + (symbol-name) + (funcall (-flip #'concat) "-theme") + (intern)))) + (rc/require theme-package) + (load-theme theme t))) + +(rc/require 'dash) +(require 'dash) + +(rc/require 'dash-functional) +(require 'dash-functional) diff --git a/.emacs.snippets/c++-mode/.yas-parents b/.emacs.snippets/c++-mode/.yas-parents new file mode 100755 index 0000000..cd49161 --- /dev/null +++ b/.emacs.snippets/c++-mode/.yas-parents @@ -0,0 +1 @@ +c-mode \ No newline at end of file diff --git a/.emacs.snippets/c++-mode/catch b/.emacs.snippets/c++-mode/catch new file mode 100755 index 0000000..7f4744d --- /dev/null +++ b/.emacs.snippets/c++-mode/catch @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: catch (...) { ... } +# key: catch +# -- +catch ($1) { +$0 +} \ No newline at end of file diff --git a/.emacs.snippets/c++-mode/fore b/.emacs.snippets/c++-mode/fore new file mode 100755 index 0000000..d78601b --- /dev/null +++ b/.emacs.snippets/c++-mode/fore @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: for (...: ...) { ... } +# key: fore +# -- +for ($1: $2) { +$0 +} \ No newline at end of file diff --git a/.emacs.snippets/c++-mode/ns b/.emacs.snippets/c++-mode/ns new file mode 100755 index 0000000..48529f2 --- /dev/null +++ b/.emacs.snippets/c++-mode/ns @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: namespace Namespace +# key: ns +# -- +namespace ${1:Namespace} { +$0 +} // namespace $1 \ No newline at end of file diff --git a/.emacs.snippets/c++-mode/once b/.emacs.snippets/c++-mode/once new file mode 100755 index 0000000..c54b47e --- /dev/null +++ b/.emacs.snippets/c++-mode/once @@ -0,0 +1,10 @@ +# -*- mode: snippet -*- +# name: #ifndef XXX; #define XXX; #endif +# key: once +# -- +#ifndef ${1:`(upcase (replace-regexp-in-string "\\." "_" (file-name-nondirectory (buffer-file-name))))`_} +#define $1 + +$0 + +#endif // $1 \ No newline at end of file diff --git a/.emacs.snippets/c++-mode/qdebug b/.emacs.snippets/c++-mode/qdebug new file mode 100755 index 0000000..1d427f7 --- /dev/null +++ b/.emacs.snippets/c++-mode/qdebug @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: qdebug +# key: qdebug +# -- +qDebug() << "----------------------------------------"; +qDebug() << "$0"; +qDebug() << "----------------------------------------"; \ No newline at end of file diff --git a/.emacs.snippets/c++-mode/try b/.emacs.snippets/c++-mode/try new file mode 100755 index 0000000..6991f11 --- /dev/null +++ b/.emacs.snippets/c++-mode/try @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: try { ... } +# key: try +# -- +try { +$0 +} \ No newline at end of file diff --git a/.emacs.snippets/c++-mode/uns b/.emacs.snippets/c++-mode/uns new file mode 100755 index 0000000..8c7db5b --- /dev/null +++ b/.emacs.snippets/c++-mode/uns @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: using namespace std; +# key: uns +# -- +using namespace std; \ No newline at end of file diff --git a/.emacs.snippets/c++-mode/vec b/.emacs.snippets/c++-mode/vec new file mode 100755 index 0000000..f414f06 --- /dev/null +++ b/.emacs.snippets/c++-mode/vec @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: std::vector +# key: vec +# -- +std::vector<$1> $2;$0 \ No newline at end of file diff --git a/.emacs.snippets/c-like-syntax/block b/.emacs.snippets/c-like-syntax/block new file mode 100755 index 0000000..95661e8 --- /dev/null +++ b/.emacs.snippets/c-like-syntax/block @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: { ... } +# key: { +# -- +{ +$0 +} \ No newline at end of file diff --git a/.emacs.snippets/c-like-syntax/elif b/.emacs.snippets/c-like-syntax/elif new file mode 100755 index 0000000..842e9fa --- /dev/null +++ b/.emacs.snippets/c-like-syntax/elif @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: else if (...) { ... } +# key: elif +# -- +else if (${1:condition}) { +$0 +} \ No newline at end of file diff --git a/.emacs.snippets/c-like-syntax/else b/.emacs.snippets/c-like-syntax/else new file mode 100755 index 0000000..ed256b4 --- /dev/null +++ b/.emacs.snippets/c-like-syntax/else @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: else { ... } +# key: else +# -- +else { +$0 +} \ No newline at end of file diff --git a/.emacs.snippets/c-like-syntax/for b/.emacs.snippets/c-like-syntax/for new file mode 100755 index 0000000..ec70b51 --- /dev/null +++ b/.emacs.snippets/c-like-syntax/for @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: for (...; ...; ...) { ... } +# key: for +# -- +for (${1:init}; ${2:condition}; ${3:increment}) { +$0 +} \ No newline at end of file diff --git a/.emacs.snippets/c-like-syntax/if b/.emacs.snippets/c-like-syntax/if new file mode 100755 index 0000000..cde6dd3 --- /dev/null +++ b/.emacs.snippets/c-like-syntax/if @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: if (...) { ... } +# key: if +# -- +if (${1:condition}) { +$0 +} \ No newline at end of file diff --git a/.emacs.snippets/c-like-syntax/while b/.emacs.snippets/c-like-syntax/while new file mode 100755 index 0000000..33097eb --- /dev/null +++ b/.emacs.snippets/c-like-syntax/while @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: while (...) { ... } +# key: while +# -- +while (${1:condition}) { +$0 +} \ No newline at end of file diff --git a/.emacs.snippets/c-mode/.yas-parents b/.emacs.snippets/c-mode/.yas-parents new file mode 100755 index 0000000..d927521 --- /dev/null +++ b/.emacs.snippets/c-mode/.yas-parents @@ -0,0 +1 @@ +c-like-syntax \ No newline at end of file diff --git a/.emacs.snippets/c-mode/inc b/.emacs.snippets/c-mode/inc new file mode 100755 index 0000000..ce7431a --- /dev/null +++ b/.emacs.snippets/c-mode/inc @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: #include <...> +# key: inc +# -- +#include <$0> \ No newline at end of file diff --git a/.emacs.snippets/c-mode/incq b/.emacs.snippets/c-mode/incq new file mode 100755 index 0000000..5c91955 --- /dev/null +++ b/.emacs.snippets/c-mode/incq @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: #include "..." +# key: incq +# -- +#include "$0" \ No newline at end of file diff --git a/.emacs.snippets/c-mode/main b/.emacs.snippets/c-mode/main new file mode 100755 index 0000000..9cf10cd --- /dev/null +++ b/.emacs.snippets/c-mode/main @@ -0,0 +1,9 @@ +# -*- mode: snippet -*- +# name: int main(argc, argv) { ... } +# key: main +# -- +int main(int argc, char *argv[]) +{ +$0 +return 0; +} \ No newline at end of file diff --git a/.emacs.snippets/css-mode/bg b/.emacs.snippets/css-mode/bg new file mode 100755 index 0000000..af38f31 --- /dev/null +++ b/.emacs.snippets/css-mode/bg @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: background-color: ... +# key: bg +# -- +background-color: #${1:DDD}; \ No newline at end of file diff --git a/.emacs.snippets/css-mode/bgi b/.emacs.snippets/css-mode/bgi new file mode 100755 index 0000000..3e9e39b --- /dev/null +++ b/.emacs.snippets/css-mode/bgi @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: background-image: ... +# key: bgi +# -- +background-image: url($1); diff --git a/.emacs.snippets/css-mode/bor b/.emacs.snippets/css-mode/bor new file mode 100755 index 0000000..780979a --- /dev/null +++ b/.emacs.snippets/css-mode/bor @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: border size style color +# key: bor +# -- +border: ${1:1px} ${2:solid} #${3:999}; \ No newline at end of file diff --git a/.emacs.snippets/css-mode/cl b/.emacs.snippets/css-mode/cl new file mode 100755 index 0000000..f4c5dd1 --- /dev/null +++ b/.emacs.snippets/css-mode/cl @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: clear: ... +# key: cl +# -- +clear: $1; \ No newline at end of file diff --git a/.emacs.snippets/css-mode/dispb b/.emacs.snippets/css-mode/dispb new file mode 100755 index 0000000..4019241 --- /dev/null +++ b/.emacs.snippets/css-mode/dispb @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: display: block +# key: dispb +# -- +display: block; \ No newline at end of file diff --git a/.emacs.snippets/css-mode/dispi b/.emacs.snippets/css-mode/dispi new file mode 100755 index 0000000..2aa3bbb --- /dev/null +++ b/.emacs.snippets/css-mode/dispi @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: display: inline +# key: dispi +# -- +display: inline; \ No newline at end of file diff --git a/.emacs.snippets/css-mode/dispn b/.emacs.snippets/css-mode/dispn new file mode 100755 index 0000000..0e6d132 --- /dev/null +++ b/.emacs.snippets/css-mode/dispn @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: display: none +# key: dispn +# -- +display: none; \ No newline at end of file diff --git a/.emacs.snippets/css-mode/ff b/.emacs.snippets/css-mode/ff new file mode 100755 index 0000000..c04faa5 --- /dev/null +++ b/.emacs.snippets/css-mode/ff @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: font-family: ... +# key: ff +# -- +font-family: $1; \ No newline at end of file diff --git a/.emacs.snippets/css-mode/fs b/.emacs.snippets/css-mode/fs new file mode 100755 index 0000000..33498bb --- /dev/null +++ b/.emacs.snippets/css-mode/fs @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: font-size: ... +# key: fs +# -- +font-size: ${12px}; \ No newline at end of file diff --git a/.emacs.snippets/css-mode/mar b/.emacs.snippets/css-mode/mar new file mode 100755 index 0000000..0e8ddaf --- /dev/null +++ b/.emacs.snippets/css-mode/mar @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: margin: ... +# key: mar +# -- +margin: $1; \ No newline at end of file diff --git a/.emacs.snippets/css-mode/marb b/.emacs.snippets/css-mode/marb new file mode 100755 index 0000000..2ed557d --- /dev/null +++ b/.emacs.snippets/css-mode/marb @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: margin-bottom: ... +# key: marb +# -- +margin-bottom: $1; \ No newline at end of file diff --git a/.emacs.snippets/css-mode/marl b/.emacs.snippets/css-mode/marl new file mode 100755 index 0000000..3e0a2d6 --- /dev/null +++ b/.emacs.snippets/css-mode/marl @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: margin-left: ... +# key: marl +# -- +margin-left: $1; \ No newline at end of file diff --git a/.emacs.snippets/css-mode/marr b/.emacs.snippets/css-mode/marr new file mode 100755 index 0000000..dfc0336 --- /dev/null +++ b/.emacs.snippets/css-mode/marr @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: margin-right: ... +# key: marr +# -- +margin-right: $1; \ No newline at end of file diff --git a/.emacs.snippets/css-mode/mart b/.emacs.snippets/css-mode/mart new file mode 100755 index 0000000..e17e451 --- /dev/null +++ b/.emacs.snippets/css-mode/mart @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: margin-top: ... +# key: mart +# -- +margin-top: $1; \ No newline at end of file diff --git a/.emacs.snippets/css-mode/pad b/.emacs.snippets/css-mode/pad new file mode 100755 index 0000000..b40db05 --- /dev/null +++ b/.emacs.snippets/css-mode/pad @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: padding: ... +# key: pad +# -- +padding: $1; \ No newline at end of file diff --git a/.emacs.snippets/css-mode/padb b/.emacs.snippets/css-mode/padb new file mode 100755 index 0000000..d537eed --- /dev/null +++ b/.emacs.snippets/css-mode/padb @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: padding-bottom: ... +# key: padb +# -- +padding-bottom: $1; \ No newline at end of file diff --git a/.emacs.snippets/css-mode/padl b/.emacs.snippets/css-mode/padl new file mode 100755 index 0000000..0ade3f5 --- /dev/null +++ b/.emacs.snippets/css-mode/padl @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: padding-left: ... +# key: padl +# -- +padding-left: $1; \ No newline at end of file diff --git a/.emacs.snippets/css-mode/padr b/.emacs.snippets/css-mode/padr new file mode 100755 index 0000000..73c140c --- /dev/null +++ b/.emacs.snippets/css-mode/padr @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: padding-right: ... +# key: padr +# -- +padding-right: $1; \ No newline at end of file diff --git a/.emacs.snippets/css-mode/padt b/.emacs.snippets/css-mode/padt new file mode 100755 index 0000000..526450d --- /dev/null +++ b/.emacs.snippets/css-mode/padt @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: padding-top: ... +# key: padt +# -- +padding-top: $1; \ No newline at end of file diff --git a/.emacs.snippets/d-mode/.yas-parents b/.emacs.snippets/d-mode/.yas-parents new file mode 100755 index 0000000..d927521 --- /dev/null +++ b/.emacs.snippets/d-mode/.yas-parents @@ -0,0 +1 @@ +c-like-syntax \ No newline at end of file diff --git a/.emacs.snippets/d-mode/imm b/.emacs.snippets/d-mode/imm new file mode 100755 index 0000000..7c71c19 --- /dev/null +++ b/.emacs.snippets/d-mode/imm @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: immutable +# key: imm +# -- +immutable $0 \ No newline at end of file diff --git a/.emacs.snippets/d-mode/import b/.emacs.snippets/d-mode/import new file mode 100755 index 0000000..cbcbfe3 --- /dev/null +++ b/.emacs.snippets/d-mode/import @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: import <...>; +# key: imp +# -- +import $0; \ No newline at end of file diff --git a/.emacs.snippets/emacs-lisp-mode/emacs-lisp-module b/.emacs.snippets/emacs-lisp-mode/emacs-lisp-module new file mode 100755 index 0000000..a18b637 --- /dev/null +++ b/.emacs.snippets/emacs-lisp-mode/emacs-lisp-module @@ -0,0 +1,42 @@ +# -*- mode: snippet -*- +# name: emacs lisp module skeleton +# key: emacs-lisp-module +# -- +;;; ${1:`(file-name-nondirectory (buffer-file-name))`} --- ${2:Package Description} -*- lexical-binding: t -*- + +;; Copyright (C) `(format-time-string "%Y" (current-time))` ${3:Alexey Kutepov } + +;; Author: $3 +;; URL: $4 + +;; Permission is hereby granted, free of charge, to any person +;; obtaining a copy of this software and associated documentation +;; files (the "Software"), to deal in the Software without +;; restriction, including without limitation the rights to use, copy, +;; modify, merge, publish, distribute, sublicense, and/or sell copies +;; of the Software, and to permit persons to whom the Software is +;; furnished to do so, subject to the following conditions: + +;; The above copyright notice and this permission notice shall be +;; included in all copies or substantial portions of the Software. + +;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +;; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +;; NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS +;; BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +;; ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +;; CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +;; SOFTWARE. + +;;; Commentary: + +;; $5 + +;;; Code: + +$0 + +(provide '${6:`(file-name-sans-extension (file-name-nondirectory (buffer-file-name)))`}) + +;;; $1 ends here \ No newline at end of file diff --git a/.emacs.snippets/emacs-lisp-mode/pacmacs-module b/.emacs.snippets/emacs-lisp-mode/pacmacs-module new file mode 100755 index 0000000..a04a9a1 --- /dev/null +++ b/.emacs.snippets/emacs-lisp-mode/pacmacs-module @@ -0,0 +1,41 @@ +# -*- mode: snippet -*- +# name: pacmacs module skeleton +# key: pacmacs-module +# -- +;;; ${1:`(file-name-nondirectory (buffer-file-name))`} --- Pacman for Emacs -*- lexical-binding: t -*- + +;; Copyright (C) `(format-time-string "%Y" (current-time))` Codingteam + +;; Author: Codingteam +;; Maintainer: Alexey Kutepov +;; URL: http://github.com/rexim/pacmacs.el + +;; Permission is hereby granted, free of charge, to any person +;; obtaining a copy of this software and associated documentation +;; files (the "Software"), to deal in the Software without +;; restriction, including without limitation the rights to use, copy, +;; modify, merge, publish, distribute, sublicense, and/or sell copies +;; of the Software, and to permit persons to whom the Software is +;; furnished to do so, subject to the following conditions: + +;; The above copyright notice and this permission notice shall be +;; included in all copies or substantial portions of the Software. + +;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +;; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +;; NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS +;; BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +;; ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +;; CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +;; SOFTWARE. + +;;; Commentary: + +;; $2 + +;;; Code: + +$0 + +;;; $1 ends here \ No newline at end of file diff --git a/.emacs.snippets/fan-mode/.yas-parents b/.emacs.snippets/fan-mode/.yas-parents new file mode 100755 index 0000000..d927521 --- /dev/null +++ b/.emacs.snippets/fan-mode/.yas-parents @@ -0,0 +1 @@ +c-like-syntax \ No newline at end of file diff --git a/.emacs.snippets/fundamental-mode/mit b/.emacs.snippets/fundamental-mode/mit new file mode 100755 index 0000000..417476a --- /dev/null +++ b/.emacs.snippets/fundamental-mode/mit @@ -0,0 +1,24 @@ +# -*- mode: snippet -*- +# name: mit +# key: mit +# -- +Copyright `(format-time-string "%Y")` Alexey Kutepov + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/.emacs.snippets/fundamental-mode/sb b/.emacs.snippets/fundamental-mode/sb new file mode 100755 index 0000000..67bea13 --- /dev/null +++ b/.emacs.snippets/fundamental-mode/sb @@ -0,0 +1,8 @@ +# -*- mode: snippet -*- +# name: sb +# key: sb +# expand-env: ((yas-indent-line 'fixed)) +# -- +${1:$(make-string (+ 2 (string-width yas-text)) ? )}SMOL +${1:$(make-string (+ 2 (string-width yas-text)) ? )}BREK +($1 minutes) \ No newline at end of file diff --git a/.emacs.snippets/html-mode/tag b/.emacs.snippets/html-mode/tag new file mode 100755 index 0000000..ca6b6ca --- /dev/null +++ b/.emacs.snippets/html-mode/tag @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: tag +# key: tag +# -- +<$1> + $0 + \ No newline at end of file diff --git a/.emacs.snippets/html-mode/tagi b/.emacs.snippets/html-mode/tagi new file mode 100755 index 0000000..2d03bef --- /dev/null +++ b/.emacs.snippets/html-mode/tagi @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: tagi +# key: tagi +# -- +<$1>$0 \ No newline at end of file diff --git a/.emacs.snippets/java-mode/.yas-parents b/.emacs.snippets/java-mode/.yas-parents new file mode 100755 index 0000000..d927521 --- /dev/null +++ b/.emacs.snippets/java-mode/.yas-parents @@ -0,0 +1 @@ +c-like-syntax \ No newline at end of file diff --git a/.emacs.snippets/java-mode/ps b/.emacs.snippets/java-mode/ps new file mode 100755 index 0000000..19834c2 --- /dev/null +++ b/.emacs.snippets/java-mode/ps @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: public static +# key: ps +# -- +public static \ No newline at end of file diff --git a/.emacs.snippets/java-mode/psv b/.emacs.snippets/java-mode/psv new file mode 100755 index 0000000..ae30d38 --- /dev/null +++ b/.emacs.snippets/java-mode/psv @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: public static void +# key: psv +# -- +public static void \ No newline at end of file diff --git a/.emacs.snippets/js-mode/.yas-parents b/.emacs.snippets/js-mode/.yas-parents new file mode 100755 index 0000000..d927521 --- /dev/null +++ b/.emacs.snippets/js-mode/.yas-parents @@ -0,0 +1 @@ +c-like-syntax \ No newline at end of file diff --git a/.emacs.snippets/js-mode/item b/.emacs.snippets/js-mode/item new file mode 100755 index 0000000..88d5813 --- /dev/null +++ b/.emacs.snippets/js-mode/item @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: item +# key: item +# -- +${1:Item} { +$0 +} // $1 \ No newline at end of file diff --git a/.emacs.snippets/latex-mode/begin b/.emacs.snippets/latex-mode/begin new file mode 100755 index 0000000..4ddab25 --- /dev/null +++ b/.emacs.snippets/latex-mode/begin @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: \begin{environment} ... \end{environment} +# key: begin +# -- +\begin{${1:environment}} +$0 +\end{$1} \ No newline at end of file diff --git a/.emacs.snippets/makefile-gmake-mode/make b/.emacs.snippets/makefile-gmake-mode/make new file mode 100755 index 0000000..dfb3cc1 --- /dev/null +++ b/.emacs.snippets/makefile-gmake-mode/make @@ -0,0 +1,10 @@ +# -*- mode: snippet -*- +# name: make +# key: make +# expand-env: ((yas-indent-line 'fixed)) +# -- +CFLAGS=-Wall -Wextra -std=c11 -pedantic +LIBS= + +$1: $2 + $(CC) $(CFLAGS) -o $1 $2 $(LIBS) diff --git a/.emacs.snippets/markdown-mode/todo b/.emacs.snippets/markdown-mode/todo new file mode 100755 index 0000000..f1aa870 --- /dev/null +++ b/.emacs.snippets/markdown-mode/todo @@ -0,0 +1,9 @@ +# -*- mode: snippet -*- +# name: todo +# key: todo +# type: command +# binding: C-x t +# -- +(if (region-active-p) + (yas-expand-snippet "`yas-selected-text`") + (yas-expand-snippet "")) \ No newline at end of file diff --git a/.emacs.snippets/nix-mode/.yas-parents b/.emacs.snippets/nix-mode/.yas-parents new file mode 100755 index 0000000..d927521 --- /dev/null +++ b/.emacs.snippets/nix-mode/.yas-parents @@ -0,0 +1 @@ +c-like-syntax \ No newline at end of file diff --git a/.emacs.snippets/nxml-mode/body b/.emacs.snippets/nxml-mode/body new file mode 100755 index 0000000..1fceda3 --- /dev/null +++ b/.emacs.snippets/nxml-mode/body @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: ... +# key: body +# -- + +$0 + \ No newline at end of file diff --git a/.emacs.snippets/nxml-mode/div b/.emacs.snippets/nxml-mode/div new file mode 100755 index 0000000..9234e58 --- /dev/null +++ b/.emacs.snippets/nxml-mode/div @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name:
\n...\n
+# key: div +# -- +
+$0 +
\ No newline at end of file diff --git a/.emacs.snippets/nxml-mode/head b/.emacs.snippets/nxml-mode/head new file mode 100755 index 0000000..0b16f2b --- /dev/null +++ b/.emacs.snippets/nxml-mode/head @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: ... +# key: head +# -- + +$0 + \ No newline at end of file diff --git a/.emacs.snippets/nxml-mode/html b/.emacs.snippets/nxml-mode/html new file mode 100755 index 0000000..f6d9fd4 --- /dev/null +++ b/.emacs.snippets/nxml-mode/html @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: ... +# key: html +# -- + +$0 + \ No newline at end of file diff --git a/.emacs.snippets/nxml-mode/link b/.emacs.snippets/nxml-mode/link new file mode 100755 index 0000000..e9ddd6f --- /dev/null +++ b/.emacs.snippets/nxml-mode/link @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: +# key: link +# -- + \ No newline at end of file diff --git a/.emacs.snippets/nxml-mode/meta b/.emacs.snippets/nxml-mode/meta new file mode 100755 index 0000000..1434071 --- /dev/null +++ b/.emacs.snippets/nxml-mode/meta @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: +# key: meta +# -- + \ No newline at end of file diff --git a/.emacs.snippets/nxml-mode/pom b/.emacs.snippets/nxml-mode/pom new file mode 100755 index 0000000..c1435f2 --- /dev/null +++ b/.emacs.snippets/nxml-mode/pom @@ -0,0 +1,17 @@ +# -*- mode: snippet -*- +# name: ... +# key: pom +# -- + + 4.0.0 + ${1:me.rexim} + ${2:artifactId} + ${3:0.0.1-SNAPSHOT} + + + UTF-8 + + diff --git a/.emacs.snippets/nxml-mode/script b/.emacs.snippets/nxml-mode/script new file mode 100755 index 0000000..482c809 --- /dev/null +++ b/.emacs.snippets/nxml-mode/script @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: \ No newline at end of file diff --git a/.emacs.snippets/nxml-mode/span b/.emacs.snippets/nxml-mode/span new file mode 100755 index 0000000..60c78e2 --- /dev/null +++ b/.emacs.snippets/nxml-mode/span @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: \n...\n +# key: span +# -- +$0 \ No newline at end of file diff --git a/.emacs.snippets/nxml-mode/tag b/.emacs.snippets/nxml-mode/tag new file mode 100755 index 0000000..d555e34 --- /dev/null +++ b/.emacs.snippets/nxml-mode/tag @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: \n...\n +# key: tag +# -- +<${1:tag}$2> +$0 + \ No newline at end of file diff --git a/.emacs.snippets/nxml-mode/tag.1 b/.emacs.snippets/nxml-mode/tag.1 new file mode 100755 index 0000000..fd979eb --- /dev/null +++ b/.emacs.snippets/nxml-mode/tag.1 @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: ... +# key: tag +# -- +<${1:tag}$2>$0 \ No newline at end of file diff --git a/.emacs.snippets/nxml-mode/tag.2 b/.emacs.snippets/nxml-mode/tag.2 new file mode 100755 index 0000000..89c664a --- /dev/null +++ b/.emacs.snippets/nxml-mode/tag.2 @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: +# key: tag +# -- +<${1:tag} $2/>$0 \ No newline at end of file diff --git a/.emacs.snippets/nxml-mode/title b/.emacs.snippets/nxml-mode/title new file mode 100755 index 0000000..0a80a54 --- /dev/null +++ b/.emacs.snippets/nxml-mode/title @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: ... +# key: title +# -- +$0 \ No newline at end of file diff --git a/.emacs.snippets/nxml-mode/xml b/.emacs.snippets/nxml-mode/xml new file mode 100755 index 0000000..60d0f1d --- /dev/null +++ b/.emacs.snippets/nxml-mode/xml @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: +# key: xml +# -- + \ No newline at end of file diff --git a/.emacs.snippets/org-mode/pomo b/.emacs.snippets/org-mode/pomo new file mode 100755 index 0000000..e05b643 --- /dev/null +++ b/.emacs.snippets/org-mode/pomo @@ -0,0 +1,43 @@ +# -*- mode: snippet -*- +# name: pomo table +# key: pomo +# -- +|-------+-------+----------| +| start | type | duration | +|-------+-------+----------| +| | work | 20m | +| | break | 10m | +| | work | 20m | +| | break | 10m | +| | work | 20m | +| | break | 10m | +| | work | 20m | +| | break | 20m | +|-------+-------+----------| +| | work | 20m | +| | break | 10m | +| | work | 20m | +| | break | 10m | +| | work | 20m | +| | break | 10m | +| | work | 20m | +| | break | 20m | +|-------+-------+----------| +| | work | 20m | +| | break | 10m | +| | work | 20m | +| | break | 10m | +| | work | 20m | +| | break | 10m | +| | work | 20m | +| | break | 20m | +|-------+-------+----------| +| | work | 20m | +| | break | 10m | +| | work | 20m | +| | break | 10m | +| | work | 20m | +| | break | 10m | +| | work | 20m | +| | break | 20m | +|-------+-------+----------| diff --git a/.emacs.snippets/perl-mode/.yas-parents b/.emacs.snippets/perl-mode/.yas-parents new file mode 100755 index 0000000..d927521 --- /dev/null +++ b/.emacs.snippets/perl-mode/.yas-parents @@ -0,0 +1 @@ +c-like-syntax \ No newline at end of file diff --git a/.emacs.snippets/perl-mode/fore b/.emacs.snippets/perl-mode/fore new file mode 100755 index 0000000..319ab36 --- /dev/null +++ b/.emacs.snippets/perl-mode/fore @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: foreach (...) { ... } +# key: fore +# -- +foreach ($1) { +$0 +} \ No newline at end of file diff --git a/.emacs.snippets/porth-mode/main b/.emacs.snippets/porth-mode/main new file mode 100755 index 0000000..af40b93 --- /dev/null +++ b/.emacs.snippets/porth-mode/main @@ -0,0 +1,9 @@ +# -*- mode: snippet -*- +# name: main +# key: main +# -- +include "std.porth" + +proc main in + $0 +end \ No newline at end of file diff --git a/.emacs.snippets/porth-mode/ras b/.emacs.snippets/porth-mode/ras new file mode 100755 index 0000000..d509e93 --- /dev/null +++ b/.emacs.snippets/porth-mode/ras @@ -0,0 +1,6 @@ +# -*- mode: snippet -*- +# name: ras +# key: ras +# -- +here eputs ": Assertion Failed: $0" eputs +1 exit \ No newline at end of file diff --git a/.emacs.snippets/porth-mode/todo b/.emacs.snippets/porth-mode/todo new file mode 100755 index 0000000..14d163f --- /dev/null +++ b/.emacs.snippets/porth-mode/todo @@ -0,0 +1,6 @@ +# -*- mode: snippet -*- +# name: todo +# key: todo +# -- +here eputs ": TODO: $0" eputs +1 exit \ No newline at end of file diff --git a/.emacs.snippets/porth-mode/unreach b/.emacs.snippets/porth-mode/unreach new file mode 100755 index 0000000..8ef0a5a --- /dev/null +++ b/.emacs.snippets/porth-mode/unreach @@ -0,0 +1,6 @@ +# -*- mode: snippet -*- +# name: unreach +# key: unreach +# -- +here eputs ": unreachable: $0" eputs +69 exit \ No newline at end of file diff --git a/.emacs.snippets/rust-mode/.yas-parents b/.emacs.snippets/rust-mode/.yas-parents new file mode 100755 index 0000000..d927521 --- /dev/null +++ b/.emacs.snippets/rust-mode/.yas-parents @@ -0,0 +1 @@ +c-like-syntax \ No newline at end of file diff --git a/.emacs.snippets/scala-mode/.yas-parents b/.emacs.snippets/scala-mode/.yas-parents new file mode 100755 index 0000000..d927521 --- /dev/null +++ b/.emacs.snippets/scala-mode/.yas-parents @@ -0,0 +1 @@ +c-like-syntax \ No newline at end of file diff --git a/.emacs.snippets/snippet-mode/snip b/.emacs.snippets/snippet-mode/snip new file mode 100755 index 0000000..94524d1 --- /dev/null +++ b/.emacs.snippets/snippet-mode/snip @@ -0,0 +1,9 @@ +# -*- mode: snippet -*- +# name: snippet snippet +# key: snip +# -- +# -*- mode: snippet -*- +# name: $1 +# key: ${2:`(file-name-nondirectory (file-name-sans-extension (buffer-file-name)))`} +# -- +$0 \ No newline at end of file diff --git a/.emacs.snippets/typescript-mode/.yas-parents b/.emacs.snippets/typescript-mode/.yas-parents new file mode 100755 index 0000000..d927521 --- /dev/null +++ b/.emacs.snippets/typescript-mode/.yas-parents @@ -0,0 +1 @@ +c-like-syntax \ No newline at end of file diff --git a/.ghci b/.ghci new file mode 100755 index 0000000..c398bcf --- /dev/null +++ b/.ghci @@ -0,0 +1,3 @@ +:set prompt "λ> " +:set -XOverloadedStrings +:set editor vim diff --git a/.gitconfig b/.gitconfig new file mode 100755 index 0000000..a9924e5 --- /dev/null +++ b/.gitconfig @@ -0,0 +1,18 @@ +[user] + email = maxime@patate.dev + name = ALittlePatate + signingkey = 3160243661FE9E9D +[merge] + conflictStyle = diff3 +[magit] + hideCampaign = true +[alias] + tree = log --graph --decorate --pretty=oneline --abbrev-commit --all +[commit] + gpgsign = true +[credential "https://github.com"] + helper = + helper = !/usr/bin/gh auth git-credential +[credential "https://gist.github.com"] + helper = + helper = !/usr/bin/gh auth git-credential diff --git a/.gitignore b/.gitignore new file mode 100755 index 0000000..b25c15b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*~ diff --git a/.i3status.conf b/.i3status.conf new file mode 100755 index 0000000..6dff295 --- /dev/null +++ b/.i3status.conf @@ -0,0 +1,52 @@ +# i3status configuration file. +# see "man i3status" for documentation. + +# It is important that this file is edited as UTF-8. +# The following line should contain a sharp s: +# ß +# If the above line is not correctly displayed, fix your editor first! + +general { + colors = true + interval = 5 +} + +order += "wireless _first_" +order += "battery all" +order += "volume master" +order += "disk /" +order += "load" +order += "cpu_temperature 0" +order += "tztime local" + +volume master { + format = "Volume: %volume" + format_muted = "Muted" + device = "pulse:alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__sink" +} + +cpu_temperature 0 { + format = "Tea: %degrees °C" +} + +wireless _first_ { + # format_up = "W: (%quality at %essid) %ip" + format_up = "W: up" + format_down = "W: down" +} + +battery all { + format = "Focus: %percentage" +} + +tztime local { + format = "%Y-%m-%d %H:%M:%S" +} + +load { + format = "Hot Loads: %1min" +} + +disk "/" { + format = "Porn folder: %avail" +} diff --git a/.jmacsrc b/.jmacsrc new file mode 100755 index 0000000..b80a776 --- /dev/null +++ b/.jmacsrc @@ -0,0 +1,3 @@ +* +-linums +:include /etc/joe/jmacsrc \ No newline at end of file diff --git a/.nexrc b/.nexrc new file mode 100755 index 0000000..9da581c --- /dev/null +++ b/.nexrc @@ -0,0 +1,2 @@ +set number +set autoindent diff --git a/.npmrc b/.npmrc new file mode 100755 index 0000000..e60ae71 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +ignore-scripts=false diff --git a/.rexim/icons/terminal-icon.png b/.rexim/icons/terminal-icon.png new file mode 100755 index 0000000000000000000000000000000000000000..122e51cbf26ae865a6ecddd5d09377b3cdf3b27f GIT binary patch literal 1809 zcma)+c~DbV6o=0X#2{;}GOS7z1O!6@NU(89Sd|fweTM`=96=4p5)?_EisK+!DAuZj zgD5Di$f78ysE?VBRi`cy1w^JqgeoLJS`0>Ce7rt8j@4-$`^TMg&$;*9`@7$rb4tTP zSD6@E8v=ky&}#n(0EC(%V4z2ttg~@Zl+oYd6XFAKuH5KtDxLC~X{#eb0Jb{` z@v*T9adC-K>2514D{E_O8yg#2TidyF=gylq&(6+{$z;x-KYzi31@`v#4h{}f_|Tza z0)cOQd{TAw>BoyIbMoec)Vqai7C#`&PhqaMT-_CCyQKMTwGmUQ&LhFFJ3GZu4A!SB2k*#-=~z6 zl#(Pl`!utPdONai%_{%3TQYotC}(E&>iAp=a__r=_&Qe=Qb9&uP)GpdsiB$09P`R} zel^8x zsDC`G4eQ%kz^Iy=*)AW;?zn+fO+lBo3f|~efB>TlMkMeRF#~Fa3{>+gd@nVJhiqEj z`EuJ8KU|Uhd5I<;RY=x7AO7hMvBpramb@e0>7`Qe2c`5H)oVVX>poaN`N{}FNaoHZ zL=M{Ya{6eiYxD7C$1n1Y<+;Ciw7AHNj2)EaG)=OOVU(^kqis5BowC&5^Xrnj_J=B_VxbxH|!c_3$iq>rBfdMh($zEEyv<&L< z(E;^!KYgwgGnSL84K;#YQu7*uD7tKZOU|YlOA2?Oil4od~vFWwt zf=Ve}^qOeSY7k$oJ|zUp0a@BqvG+sGO+-YbLV|1#^xEk^=3O9rlto+Wl@jF1eSSPP zvjS7-fhG}3qzustomuD^1&A~%sE}HrUClHR9sr@(3{YaVa8{$Z);@_7vMKiR*ByI_ z#3NFSCcivRjtne4P7a-rP2AS#=;#E4FVhdSC1;_f+MCFBJA(Mya*DKrBRgc4HRPcB zV7>i)*^plF3BI9x<+O}D`IgV^T!I&)4|=f|?3AmvS7RTl+mWsmve$rF{E0w#AO;Se z534a_!DuYPAr?SAc`u6&kFc{)fty1V2A#@sy-xgRxG?S9nXa?w!T1I(CcSD}o!T3j z)D{6MHA3ZTVB#hah?&CZVZ@nmfzv|$ry4dE4gx}K4iOj)Ra!tCkppouOSH$1-Z{lU z+J^AW=osN9z@@X9GK>Ku?O;Hd!pRTBMCXYzRnL2BWWU4^ek8Ba1j<+lBWTdTHwBfM zo*b`*OVi9w(1qk`#d6HXu^rJAb;X>|P|wKuhd5_yT3hhB!p_FMAdHmI(MQctgVP~K zW(z%bGis(*A=$)A!KBoNS@a*o&1hrQ<70)bu0vz_9o}~b4z!lvUD>YVW%7ODqn7l( zLHSKMDW9zn{POhGQmO?m%nOLiOHa*P&r937o-*LUap$t!IV^XtC=XAb2Z!h3?#kiv zIGpIgOw}g|o5krHGq!y`!QpCGER|sO?uJNlMxG>f>w1t#ByJnGWaXx%X0LY>Z{1Ke SvD}*41VI6z{!PB3U4H>HED&S> literal 0 HcmV?d00001 diff --git a/.rexim/icons/terminal-icon.svg b/.rexim/icons/terminal-icon.svg new file mode 100755 index 0000000..2c424c5 --- /dev/null +++ b/.rexim/icons/terminal-icon.svg @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/.screenlayout/home-setup-b590.sh b/.screenlayout/home-setup-b590.sh new file mode 100755 index 0000000..36c1c5e --- /dev/null +++ b/.screenlayout/home-setup-b590.sh @@ -0,0 +1,2 @@ +#!/bin/sh +xrandr --output HDMI1 --off --output LVDS1 --mode 1366x768 --pos 1920x312 --rotate normal --output VIRTUAL1 --off --output DP1 --off --output VGA1 --primary --mode 1920x1080 --pos 0x0 --rotate normal diff --git a/.screenlayout/home-setup-g50.sh b/.screenlayout/home-setup-g50.sh new file mode 100755 index 0000000..403e0d9 --- /dev/null +++ b/.screenlayout/home-setup-g50.sh @@ -0,0 +1,2 @@ +#!/bin/sh +xrandr --output DP-1 --mode 1920x1080 --pos 0x0 --rotate normal --output HDMI-1 --off --output eDP-1 --mode 1366x768 --pos 1920x312 --rotate normal --output HDMI-2 --off diff --git a/.screenlayout/home-setup.sh b/.screenlayout/home-setup.sh new file mode 100755 index 0000000..49ab597 --- /dev/null +++ b/.screenlayout/home-setup.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +if [ `hostname` = "rexim-B590" ]; then + ~/.screenlayout/home-setup-b590.sh +else + ~/.screenlayout/home-setup-g50.sh +fi diff --git a/.screenlayout/portable-setup-b590.sh b/.screenlayout/portable-setup-b590.sh new file mode 100755 index 0000000..5c2372d --- /dev/null +++ b/.screenlayout/portable-setup-b590.sh @@ -0,0 +1,2 @@ +#!/bin/sh +xrandr --output HDMI1 --off --output LVDS1 --primary --mode 1366x768 --pos 0x0 --rotate normal --output VIRTUAL1 --off --output DP1 --off --output VGA1 --off diff --git a/.screenlayout/portable-setup-g50.sh b/.screenlayout/portable-setup-g50.sh new file mode 100755 index 0000000..ece1ec4 --- /dev/null +++ b/.screenlayout/portable-setup-g50.sh @@ -0,0 +1,2 @@ +#!/bin/sh +xrandr --output DP-1 --off --output HDMI-1 --off --output eDP-1 --primary --mode 1366x768 --pos 0x0 --rotate normal --output HDMI-2 --off diff --git a/.screenlayout/portable-setup.sh b/.screenlayout/portable-setup.sh new file mode 100755 index 0000000..99b54c9 --- /dev/null +++ b/.screenlayout/portable-setup.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +if [ `hostname` = "rexim-B590" ]; then + ~/.screenlayout/portable-setup-b590.sh +else + ~/.screenlayout/portable-setup-g50.sh +fi diff --git a/.tmux.conf b/.tmux.conf new file mode 100755 index 0000000..a571a51 --- /dev/null +++ b/.tmux.conf @@ -0,0 +1,6 @@ +unbind C-b +set -g prefix C-x +bind C-x send-prefix +set -g mode-keys emacs +set -g status-keys emacs +set -s escape-time 0 diff --git a/.urxvt/ext/resize-font b/.urxvt/ext/resize-font new file mode 100755 index 0000000..dcf76c0 --- /dev/null +++ b/.urxvt/ext/resize-font @@ -0,0 +1,170 @@ +# vim:ft=perl:fenc=utf-8:tw=80 +# Copyright (c) 2009-, Simon Lundström +# Copyright (c) 2014 Maarten de Vries +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +# https://github.com/simmel/urxvt-resize-font + +my @fonts = ( + {'name' => 'font', 'code' => 710}, + {'name' => 'boldFont', 'code' => 711}, + {'name' => 'italicFont', 'code' => 712}, + {'name' => 'boldItalicFont', 'code' => 713}, +); + +my @fixed = qw(4x6 5x7 5x8 6x9 6x10 6x12 6x13 7x13 7x14 8x13 8x16 9x15 9x18 + 10x20 12x24); +my $step; + +sub on_start { + my ($self) = @_; + + foreach (@fonts) { + $_->{'default'} = $self->resource($_->{'name'}); + } + + $step = $self->x_resource("%.step") || 2; +} + +sub on_init { + my ($self) = @_; + my $commands = { + "smaller" => "C-minus", + "bigger" => "C-plus", + "reset" => "C-equal", + "show" => "C-question", + }; + bind_hotkeys($self, $commands); + + () +} + +sub bind_hotkeys { + my ($self, $commands) = @_; + + for (keys %$commands) { + my $hotkey = $$commands{$_}; + my $hotkey_bound = $self->{'term'}->x_resource("keysym.$hotkey"); + if (!defined($hotkey_bound) ) { + # Support old-style key bindings + if ($self->x_resource("%.$_")) { + $hotkey = $self->x_resource("%.$_"); + } + + # FIXME If we're bound to a keysym, don't bind the default. + $self->bind_action($hotkey, "%:$_") or + warn "unable to register '$hotkey' as hotkey for $_"; + } + else { + if ($hotkey_bound !~ /^resize-font:/) { + warn "Hotkey $$commands{$_} already bound to $hotkey_bound, not ". + "binding to resize-font:$_ by default."; + } + } + } +} + +sub on_action { + my ($self, $string) = @_; + + if ($string eq "bigger") { + foreach (@fonts) { + next if not defined($_->{'default'}); + update_font_size($self, $_, +$step); + } + } + elsif ($string eq "smaller") { + foreach (@fonts) { + next if not defined($_->{'default'}); + update_font_size($self, $_, -$step); + } + } + elsif ($string eq "reset") { + foreach (@fonts) { + next if not defined($_->{'default'}); + set_font($self, $_, $_->{'default'}); + } + } + elsif ($string eq "show") { + + my $term = $self->{'term'}; + $term->{'resize-font'}{'overlay'} = { + ov => $term->overlay_simple(0, -1, format_font_info($self)), + to => urxvt::timer + ->new + ->start(urxvt::NOW + 1) + ->cb(sub { + delete $term->{'resize-font'}{'overlay'}; + }), + }; + } + + () +} + +sub get_font { + my ($self, $name) = @_; + return $self->resource($name); +} + +sub set_font { + my ($self, $font, $new) = @_; + $self->cmd_parse(sprintf("\33]%d;%s\007", $font->{'code'}, $new)); +} + +sub update_font_size { + my ($self, $font, $delta) = @_; + my $regex = qr"(?<=size=)(\d+)"; + my $current = get_font($self, $font->{'name'}); + + my ($index) = grep { $fixed[$_] eq $current } 0..$#fixed; + if ($index or $index eq 0) { + my $inc = $delta / abs($delta); + $index += $inc; + if ($index < 0) { $index = 0; } + if ($index > $#fixed) { $index = $#fixed; } + $current = $fixed[$index]; + } + elsif ($current =~ /^-/) { + my @font = split(/-/, $current); + # https://en.wikipedia.org/wiki/X_logical_font_description + my $newsize = $font[7]+$delta; + $font[7] = $newsize if ($newsize > 0); + $current = join('-', @font); + } + else { + my $newsize = $1+$delta if ($current =~ /$regex/); + $current =~ s/$regex/$newsize/ge if ($newsize > 0); + } + set_font($self, $font, $current); +} + +sub format_font_info { + my ($self) = @_; + + my $width = 0; + foreach (@fonts) { + my $length = length($_->{'name'}); + $width = $length > $width ? $length : $width; + } + ++$width; + + my $info = ''; + foreach (@fonts) { + $info .= sprintf("%-${width}s %s\n", $_->{'name'} . ':', + get_font($self, $_->{'name'})); + } + + return $info; +} diff --git a/.vimrc b/.vimrc new file mode 100755 index 0000000..2d39de2 --- /dev/null +++ b/.vimrc @@ -0,0 +1,17 @@ +syntax on +filetype plugin indent on +set tabstop=4 +set shiftwidth=4 +set expandtab +set guifont=Iosevka\ 20 +set guioptions-=m +set guioptions-=T +set noesckeys +set relativenumber +set number +set ignorecase +set smartcase +set incsearch +set autochdir +set cinoptions=l1 +colorscheme desert diff --git a/MANIFEST b/MANIFEST new file mode 100755 index 0000000..ab548a6 --- /dev/null +++ b/MANIFEST @@ -0,0 +1,10 @@ +.emacs|symlink| +.emacs.rc|symlink| +.emacs.snippets|symlink| +.emacs.local|symlink| +.gitconfig|symlink| +.rexim|symlink| +.npmrc|symlink| +.jmacsrc|symlink| +.apvlvrc|symlink| +.nexrc|symlink| diff --git a/MANIFEST.linux b/MANIFEST.linux new file mode 100755 index 0000000..fc5460d --- /dev/null +++ b/MANIFEST.linux @@ -0,0 +1,11 @@ +.Xresources|symlink| +.tmux.conf|symlink| +.vimrc|symlink| +i3|symlink|.config +.screenlayout|symlink| +.ghci|symlink| +.i3status.conf|symlink| +bin/hhkb-i3|symlink| +bin/map-wacom|symlink| +settings.ini|symlink|.config/gtk-3.0 +.urxvt/ext/resize-font|symlink| diff --git a/README.md b/README.md new file mode 100755 index 0000000..0cc37dc --- /dev/null +++ b/README.md @@ -0,0 +1,16 @@ +# dotfiles # + +dotfiles for my arch, based on rexim's ones. +stuff are missing (like proper emacs conf but whatever). + +# Requirements # + +* Emacs 24.5+ +* rxvt-unicode v9.19+ +* zsh 5.0.2+ (with oh-my-zsh) +* tmux 1.8+ +* Git +* feh +* maim +* xclip +* blight diff --git a/aide.txt b/aide.txt new file mode 100755 index 0000000..112fdf2 --- /dev/null +++ b/aide.txt @@ -0,0 +1 @@ +installer sof-firmware si pulseaudio marche pas diff --git a/bg.png b/bg.png new file mode 100644 index 0000000000000000000000000000000000000000..48006deaa14e0c77454e6bd25ffbe4211d075b41 GIT binary patch literal 189830 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

EDlWy88t9G3|6>pJj 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 echo "Usage ./png_to_ora " + exit 1 +fi + +set -xe + +PNG_PATH="$1" +PNG_FILE=$(basename "${PNG_PATH}") +PNG_NAME="${PNG_FILE%.*}" + +mkdir -p "${PNG_NAME}/data" + +echo "image/openraster" > "${PNG_NAME}/mimetype" +cp "${PNG_FILE}" "${PNG_NAME}/data/layer-00.png" +echo "}" > "${PNG_NAME}/data/layer-00-strokemap.dat" +cat < "${PNG_NAME}/stack.xml" + + + + + + +EOF + +pushd "${PNG_NAME}" +zip -r ../"${PNG_NAME}.ora" * +popd +rm -r "${PNG_NAME}" diff --git a/bin/prepare-pdf-noting b/bin/prepare-pdf-noting new file mode 100755 index 0000000..e9af0e3 --- /dev/null +++ b/bin/prepare-pdf-noting @@ -0,0 +1,40 @@ +#!/bin/sh + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +pdf_to_pngs() { + mkdir -p "$2" + pdftoppm -rx 300 -ry 300 -png "$1" "$2/page" +} + +invert_pngs() { + pushd "$1" + for page in page-*.png; do + convert -negate "${page}" "neg-${page}" + mv "neg-${page}" "${page}" + done + popd +} + +pngs_to_oras() { + pushd "$1" + for page in page-*.png; do + "${SCRIPT_DIR}/png_to_ora" "${page}" + rm "${page}" + done + popd +} + +if [[ $# -ne 2 ]]; then + >&2 echo "Usage ./prepare-pdf-noting " + exit 1 +fi + +set -xe + +PDF_FILE="$1" +NOTES_FOLDER="$2" + +pdf_to_pngs "${PDF_FILE}" "${NOTES_FOLDER}" +invert_pngs "${NOTES_FOLDER}" +pngs_to_oras "${NOTES_FOLDER}" diff --git a/bin/region-to-gif b/bin/region-to-gif new file mode 100755 index 0000000..7460ace --- /dev/null +++ b/bin/region-to-gif @@ -0,0 +1,3 @@ +#!/bin/sh + +byzanz-record $(xrectsel "--x=%x --y=%y --width=%w --height=%h") out.gif diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 0000000..44e03bb --- /dev/null +++ b/deploy.sh @@ -0,0 +1,44 @@ +#!/bin/sh + +SCRIPT_DIR="$( cd "$( dirname "$BASH_SOURCE[0]" )" && pwd )" + +symlinkFile() { + filename="$SCRIPT_DIR/$1" + destination="$HOME/$2/$1" + + mkdir -p $(dirname "$destination") + + if [ ! -L "$destination" ]; then + if [ -e "$destination" ]; then + echo "[ERROR] $destination exists but it's not a symlink. Please fix that manually" && exit 1 + else + ln -s "$filename" "$destination" + echo "[OK] $filename -> $destination" + fi + else + echo "[WARNING] $filename already symlinked" + fi +} + +deployManifest() { + for row in $(cat $SCRIPT_DIR/$1); do + filename=$(echo $row | cut -d \| -f 1) + operation=$(echo $row | cut -d \| -f 2) + destination=$(echo $row | cut -d \| -f 3) + + case $operation in + symlink) + symlinkFile $filename $destination + ;; + + *) + echo "[WARNING] Unknown operation $operation. Skipping..." + ;; + esac + done +} + +echo "--- Common configs ---" +deployManifest MANIFEST +echo "--- Linux configs ---" +deployManifest MANIFEST.linux diff --git a/i3/config b/i3/config new file mode 100755 index 0000000..cf9ae1b --- /dev/null +++ b/i3/config @@ -0,0 +1,188 @@ +# This file has been auto-generated by i3-config-wizard(1). +# It will not be overwritten, so edit it as you like. +# +# Should you change your keyboard layout some time, delete +# this file and re-run i3-config-wizard(1). +# + +# i3 config file (v4) +# +# Please see http://i3wm.org/docs/userguide.html for a complete reference! + +set $mod Mod4 + +exec_always feh --bg-scale ~/dotfiles/bg.png + +# Font for window titles. Will also be used by the bar unless a different font +# is used in the bar {} block below. +# font pango:monospace 8 + +# This font is widely installed, provides lots of unicode glyphs, right-to-left +# text rendering and scalability on retina/hidpi displays (thanks to pango). +#font pango:DejaVu Sans Mono 8 + +font pango:Iosevka 9 + +# Before i3 v4.8, we used to recommend this one as the default: +# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 +# The font above is very space-efficient, that is, it looks good, sharp and +# clear in small sizes. However, its unicode glyph coverage is limited, the old +# X core fonts rendering does not support right-to-left and this being a bitmap +# font, it doesn’t scale on retina/hidpi displays. + +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +# start a terminal +bindsym $mod+Return exec i3-sensible-terminal + +# Pulse Audio controls +#alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__sink + +# Pulse Audio controls +bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +5% #increase sound volume +bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -5% #decrease sound volume +bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle # mute sound + +# Sreen brightness controls +bindsym XF86MonBrightnessUp exec blight set +20% # increase screen brightness +bindsym XF86MonBrightnessDown exec blight set -20% # decrease screen brightness + +# Screen capture +bindsym $mod+Print exec maim -s | xclip -selection clipboard -t image/png + +# kill focused window +bindsym $mod+Shift+q kill + +# start dmenu (a program launcher) +bindsym $mod+d exec dmenu_run +# There also is the (new) i3-dmenu-desktop which only displays applications +# shipping a .desktop file. It is a wrapper around dmenu, so you need that +# installed. +# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop + +# change focus +bindsym $mod+l focus left +bindsym $mod+semicolon focus down +bindsym $mod+k focus up +bindsym $mod+m focus right + +# alternatively, you can use the cursor keys: +bindsym $mod+Left focus left +bindsym $mod+Down focus down +bindsym $mod+Up focus up +bindsym $mod+Right focus right + +# move focused window +bindsym $mod+Shift+l move left +bindsym $mod+Shift+m move right +bindsym $mod+Shift+semicolon move down + +# alternatively, you can use the cursor keys: +bindsym $mod+Shift+Left move left +bindsym $mod+Shift+Down move down +bindsym $mod+Shift+Up move up +bindsym $mod+Shift+Right move right + +# split in horizontal orientation +bindsym $mod+h split h + +# split in vertical orientation +bindsym $mod+v split v + +# enter fullscreen mode for the focused container +bindsym $mod+f fullscreen toggle + +# change container layout (stacked, tabbed, toggle split) +bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+e layout toggle split + +# toggle tiling / floating +bindsym $mod+Shift+space floating toggle + +# change focus between tiling / floating windows +bindsym $mod+space focus mode_toggle + +# focus the parent container +bindsym $mod+a focus parent + +# focus the child container +#bindsym $mod+d focus child + +# switch to workspace +bindsym $mod+1 workspace 1 +bindsym $mod+2 workspace 2 +bindsym $mod+3 workspace 3 +bindsym $mod+4 workspace 4 +bindsym $mod+5 workspace 5 +bindsym $mod+6 workspace 6 +bindsym $mod+7 workspace 7 +bindsym $mod+8 workspace 8 +bindsym $mod+9 workspace 9 +bindsym $mod+0 workspace 10 + +# move focused container to workspace +bindsym $mod+Shift+1 move container to workspace 1 +bindsym $mod+Shift+2 move container to workspace 2 +bindsym $mod+Shift+3 move container to workspace 3 +bindsym $mod+Shift+4 move container to workspace 4 +bindsym $mod+Shift+5 move container to workspace 5 +bindsym $mod+Shift+6 move container to workspace 6 +bindsym $mod+Shift+7 move container to workspace 7 +bindsym $mod+Shift+8 move container to workspace 8 +bindsym $mod+Shift+9 move container to workspace 9 +bindsym $mod+Shift+0 move container to workspace 10 + +# reload the configuration file +bindsym $mod+Shift+c reload +# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) +bindsym $mod+Shift+r restart +# exit i3 (logs you out of your X session) +bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'" + +# resize window (you can also use the mouse for that) +mode "resize" { + # These bindings trigger as soon as you enter the resize mode + + # Pressing left will shrink the window’s width. + # Pressing right will grow the window’s width. + # Pressing up will shrink the window’s height. + # Pressing down will grow the window’s height. + bindsym j resize shrink width 10 px or 10 ppt + bindsym k resize grow height 10 px or 10 ppt + bindsym l resize shrink height 10 px or 10 ppt + bindsym semicolon resize grow width 10 px or 10 ppt + + # same bindings, but for the arrow keys + bindsym Left resize shrink width 10 px or 10 ppt + bindsym Down resize grow height 10 px or 10 ppt + bindsym Up resize shrink height 10 px or 10 ppt + bindsym Right resize grow width 10 px or 10 ppt + + # back to normal: Enter or Escape + bindsym Return mode "default" + bindsym Escape mode "default" +} + +bindsym $mod+r mode "resize" + +# Start i3bar to display a workspace bar (plus the system information i3status +# finds out, if available) +bar { + status_command i3status +} + +bindsym Mod1+F1 exec "~/bin/hhkb-i3" +bindsym $mod+Shift+h exec "~/.screenlayout/home-setup.sh" +bindsym $mod+Shift+p exec "~/.screenlayout/portable-setup.sh" +bindsym $mod+Shift+w exec "~/bin/map-wacom" +bindsym $mod+b exec "boomer" +bindsym $mod+Shift+n exec "i3lock --image ~/dotfiles/bg.png" +bindsym --release $mod+Shift+l exec "slock" + +focus_follows_mouse no + +hide_edge_borders both + +exec xinput set-prop "Elan Touchpad" "libinput Tapping Enabled" 1 diff --git a/settings.ini b/settings.ini new file mode 100755 index 0000000..2e6a497 --- /dev/null +++ b/settings.ini @@ -0,0 +1,6 @@ +# https://wiki.archlinux.org/index.php/GTK +[Settings] +#gtk-icon-theme-name = Adwaita +#gtk-theme-name = Adwaita +#gtk-font-name = DejaVu Sans 11 +gtk-application-prefer-dark-theme = true