From 41565d70081e2f0ba0bec8b852894237e2995b6f Mon Sep 17 00:00:00 2001 From: Ryan Kavanagh Date: Mon, 13 Dec 2021 17:06:32 -0500 Subject: more stuff --- .emacs.d/themes/ryanakca-theme.el | 50 ----- .gnupg/dirmngr.conf | 2 - .gnupg/gpg.conf | 6 - .pulse/daemon.conf | 4 - .pulse/default.pa | 6 - .s-nail.rc | 149 ------------ .xkb/keycodes/sunt6fix | 4 - .xkb/symbols/dpr | 106 --------- .xkb/symbols/icd | 111 --------- .xkb/symbols/lalt_meta | 4 - .xkb/symbols/myswap | 5 - .xmonad/xmonad.hs | 423 ----------------------------------- dot_emacs.d/themes/ryanakca-theme.el | 50 +++++ dot_gnupg/dirmngr.conf | 2 + dot_gnupg/gpg.conf | 6 + dot_pulse/daemon.conf | 4 + dot_pulse/default.pa | 6 + dot_s-nail.rc | 149 ++++++++++++ dot_xkb/keycodes/sunt6fix | 4 + dot_xkb/symbols/dpr | 106 +++++++++ dot_xkb/symbols/icd | 111 +++++++++ dot_xkb/symbols/lalt_meta | 4 + dot_xkb/symbols/myswap | 5 + dot_xmonad/xmonad.hs | 423 +++++++++++++++++++++++++++++++++++ 24 files changed, 870 insertions(+), 870 deletions(-) delete mode 100644 .emacs.d/themes/ryanakca-theme.el delete mode 100644 .gnupg/dirmngr.conf delete mode 100644 .gnupg/gpg.conf delete mode 100644 .pulse/daemon.conf delete mode 100644 .pulse/default.pa delete mode 100644 .s-nail.rc delete mode 100644 .xkb/keycodes/sunt6fix delete mode 100644 .xkb/symbols/dpr delete mode 100644 .xkb/symbols/icd delete mode 100644 .xkb/symbols/lalt_meta delete mode 100644 .xkb/symbols/myswap delete mode 100644 .xmonad/xmonad.hs create mode 100644 dot_emacs.d/themes/ryanakca-theme.el create mode 100644 dot_gnupg/dirmngr.conf create mode 100644 dot_gnupg/gpg.conf create mode 100644 dot_pulse/daemon.conf create mode 100644 dot_pulse/default.pa create mode 100644 dot_s-nail.rc create mode 100644 dot_xkb/keycodes/sunt6fix create mode 100644 dot_xkb/symbols/dpr create mode 100644 dot_xkb/symbols/icd create mode 100644 dot_xkb/symbols/lalt_meta create mode 100644 dot_xkb/symbols/myswap create mode 100644 dot_xmonad/xmonad.hs diff --git a/.emacs.d/themes/ryanakca-theme.el b/.emacs.d/themes/ryanakca-theme.el deleted file mode 100644 index 52f9616..0000000 --- a/.emacs.d/themes/ryanakca-theme.el +++ /dev/null @@ -1,50 +0,0 @@ -(deftheme ryanakca - "Created 2013-03-01.") - -(custom-theme-set-faces - 'ryanakca - '(default ((t (:inherit nil :stipple nil :background "#080808" :foreground "#eeeeee" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 83 :width normal :foundry "unknown" :family "Inconsolata")))) - '(cursor ((t (:background "green" :foreground "black")))) - '(fixed-pitch ((t (:family "courier")))) - '(variable-pitch ((t (:family "helv")))) - '(escape-glyph ((t (:foreground "purple2")))) - '(minibuffer-prompt ((t (:foreground "chartreuse" :weight bold)))) - '(highlight ((t (:underline t :foreground "#ffffff" :background "DodgerBlue4")))) - '(region ((t (:foreground "#f6f3e8" :background "#103050")))) - '(shadow ((((class color grayscale) (min-colors 88) (background light)) (:foreground "grey50")) (((class color grayscale) (min-colors 88) (background dark)) (:foreground "grey70")) (((class color) (min-colors 8) (background light)) (:foreground "green")) (((class color) (min-colors 8) (background dark)) (:foreground "yellow")))) - '(secondary-selection ((t (:foreground "#f6f3e8" :background "#333366")))) - '(trailing-whitespace ((t (:background "#a40000")))) - '(font-lock-builtin-face ((t (:foreground "LightCoral")))) - '(font-lock-comment-delimiter-face ((t (:foreground "#DC45DC" :inherit font-lock-comment-face)))) - '(font-lock-comment-face ((t (:foreground "#DC45DC" :slant oblique)))) - '(font-lock-constant-face ((t (:foreground "orchid" :weight bold)))) - '(font-lock-doc-face ((t (:slant oblique :foreground "moccasin" :inherit (font-lock-string-face))))) - '(font-lock-function-name-face ((t (:foreground "deep sky blue" :weight bold :height 1.1)))) - '(font-lock-keyword-face ((t (:foreground "yellow" :weight bold)))) - '(font-lock-negation-char-face ((t nil))) - '(font-lock-preprocessor-face ((t (:slant italic :foreground "gold" :inherit (font-lock-builtin-face))))) - '(font-lock-regexp-grouping-backslash ((t (:weight bold :inherit (bold))))) - '(font-lock-regexp-grouping-construct ((t (:weight bold :inherit (bold))))) - '(font-lock-string-face ((t (:foreground "burlywood")))) - '(font-lock-type-face ((t (:weight bold :foreground "CadetBlue1")))) - '(font-lock-variable-name-face ((t (:weight bold :foreground "SeaGreen2")))) - '(font-lock-warning-face ((t (:inherit error :foreground "red" :weight bold)))) - '(button ((t (:weight bold :underline t :box (:line-width 2 :color "grey" :style released-button) :foreground "#f6f3e8" :background "#333333" :inherit (link))))) - '(link ((t (:foreground "#afffff" :underline t)))) - '(link-visited ((t (:underline t :foreground "#afd7ff" :inherit link)))) - '(fringe ((t (:foreground "Wheat" :background "black")))) - '(header-line ((t (:height 0.9 :box (:line-width -1 :color "grey20" :style released-button) :inverse-video t :foreground "#e7f6da" :background "#303030" :inherit (mode-line))))) - '(tooltip ((t (:family "helv" :foreground "black" :background "lightyellow" :inherit (variable-pitch))))) - '(mode-line ((t (:family "DejaVu Sans" :height 0.9 :box (:line-width 1 :color nil :style released-button) :foreground "black" :background "gray75")))) - '(mode-line-buffer-id ((t (:height 0.9 :weight bold :underline "red" :overline "red" :foreground "blue4")))) - '(mode-line-emphasis ((t (:weight bold)))) - '(mode-line-highlight ((t (:box (:line-width 2 :color "grey40" :style released-button))))) - '(mode-line-inactive ((t (:height 0.9 :weight light :box (:line-width 1 :color "gray40" :style nil) :foreground "black" :background "gray40" :inherit (mode-line))))) - '(isearch ((t (:background "#d7afff" :foreground "#5f0000")))) - '(isearch-fail ((((class color) (min-colors 88) (background light)) (:background "RosyBrown1")) (((class color) (min-colors 88) (background dark)) (:background "red4")) (((class color) (min-colors 16)) (:background "red")) (((class color) (min-colors 8)) (:background "red")) (((class color grayscale)) (:foreground "grey")) (t (:inverse-video t)))) - '(lazy-highlight ((t (:foreground "white" :background "cadetblue")))) - '(match ((t (:background "DeepPink4")))) - '(next-error ((t (:background "blue3" :inherit (region))))) - '(query-replace ((t (:foreground "brown4" :background "palevioletred2" :inherit (isearch)))))) - -(provide-theme 'ryanakca) diff --git a/.gnupg/dirmngr.conf b/.gnupg/dirmngr.conf deleted file mode 100644 index 44352fb..0000000 --- a/.gnupg/dirmngr.conf +++ /dev/null @@ -1,2 +0,0 @@ -use-tor -keyserver hkp://jirk5u4osbsr34t5.onion diff --git a/.gnupg/gpg.conf b/.gnupg/gpg.conf deleted file mode 100644 index 43d7b92..0000000 --- a/.gnupg/gpg.conf +++ /dev/null @@ -1,6 +0,0 @@ -keyserver hkp://keys.gnupg.net -use-agent -default-key 8F7BF8FC4A11C97A -personal-digest-preferences SHA512 -cert-digest-algo SHA512 -default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB ZIP Uncompressed diff --git a/.pulse/daemon.conf b/.pulse/daemon.conf deleted file mode 100644 index 24708e5..0000000 --- a/.pulse/daemon.conf +++ /dev/null @@ -1,4 +0,0 @@ -default-sample-channels = 6 -default-sample-format = s24le -default-sample-rate = 96000 -flat-volumes = no diff --git a/.pulse/default.pa b/.pulse/default.pa deleted file mode 100644 index 6046260..0000000 --- a/.pulse/default.pa +++ /dev/null @@ -1,6 +0,0 @@ -load-module module-native-protocol-unix -load-module module-stream-restore -load-module module-rescue-streams -load-module module-always-sink -load-module module-suspend-on-idle -load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 diff --git a/.s-nail.rc b/.s-nail.rc deleted file mode 100644 index 9ada463..0000000 --- a/.s-nail.rc +++ /dev/null @@ -1,149 +0,0 @@ -# vim: set commentstring=#%s: - -# This example assumes v15.0 compatibility mode -set v15-compat - -# Request strict TLL transport layer security checks -set tls-verify=strict - -# Do not load the default CA locations that are built into the used to TLS -# library to verify TLS server certificates. -set tls-ca-no-defaults -set tls-ca-file=SSL_CERTS - -# Send mail in utf-8, unless the original poster used a different charset -set sendcharsets=utf-8 -set reply-in-same-charset - -# When replying, do not merge From: and To: of the original message into To:. -# Instead old From: -> new To:, old To: -> merge Cc:. -set recipients-in-cc - -# Wait on the MTA for errors reported through exit status (including the -# built-in SMTP one)! -set sendwait=mta - -# Don't move read messages to MBOX -set hold - -# cache imap -set imap-cache=~/.cache/mailx - -# make sure less displays colours -set PAGER="less -FXQR" - -# always use the pager when needed -set crt - -# set colour display -set colour-pager - -# set colours -if terminal && "$features" =% +colour - colour 256 view-header fg=brown "date,from,to,cc,bcc" - colour 256 view-header fg=green "subject" - colour 256 view-msginfo fg=white,bg=blue - - colour 256 sum-dotmark ft=bold,fg=cyan dot - colour 256 sum-header fg=magenta older - colour 256 sum-thread bg=red dot - colour 256 sum-thread fg=cyan -endif - -# Default to a threaded display -set autosort=thread -# Don't automatically collapse threads -unset autocollapse - -# automatically launch visual editor when typing messages -set editalong=v - -# Only include the selected header fields when typing messages -headerpick type retain from_ date from to cc bcc subject \ - message-id mail-followup-to reply-to - -# keep names when replying to messages -set fullnames - -# Add my signature -# Requires me to manually add the leading '-- ' -define ocs_signature { - read version - echo '' - echo '-- ' - echo '~< ~/.signature' -} -set on-compose-splice=ocs_signature - -# When replying, quote message -set quote -# and prefix them with "> " -set indentprefix="> " -# and wrap lines to 72 characters -set quote-fold=72 -# with the header -set quote-inject-head="On %d, %f wrote:" - -# Be nice with mailing lists. -set followup-to followup-to-honour=ask-yes reply-to-honour=ask-yes - -# use the system sendmail for sending mail -set mta=SENDMAIL - -# and lookup passwords in netrc -set netrc-lookup - -############# -# ACCOUNTS # -############ - -set alternates="ryanakca@gmail.com,rak@debian.org,ryanakca@ubuntu.com,ryanakca@kubuntu.org,rak@rak.ac,rak@ryanak.ca,rkavanag@andrew.cmu.edu,rkavanag@alumni.cmu.edu,rkavanag@cs.cmu.edu,rkavanagh@cs.cmu.edu,ryan@cs.queensu.ca" - -define gmail { - set from="Ryan Kavanagh " - set folder=imaps://ryanakca%40gmail.com@imap.gmail.com/ - unset MBOX - set record=+"[Google Mail]/Sent Items" -} - -define queensu { - set from="Ryan Kavanagh " - set folder=imaps://9rak%40queensu.ca@pod51018.outlook.com/ - set MBOX=+Read - set record=+"Sent Items" -} - -define rak { - set from="Ryan Kavanagh " - set folder=imaps://rak@imap.rak.ac/ - set MBOX=+RAK - set record=+Sent -} - -define cmu { - set from="Ryan Kavanagh " - set folder=imaps://rkavanag%40alumni.cmu.edu@imap.gmail.com/ - set MBOX=+Read - set record=+"[Gmail]/Sent Mail" -} - -# rak is the default account -call rak -set inbox=+INBOX - -account g { - call gmail -} - -account q { - call queensu -} - -account r { - call rak -} - -account c { - call cmu -} - diff --git a/.xkb/keycodes/sunt6fix b/.xkb/keycodes/sunt6fix deleted file mode 100644 index e599b3c..0000000 --- a/.xkb/keycodes/sunt6fix +++ /dev/null @@ -1,4 +0,0 @@ -xkb_keycodes { - = 86; - = 104; -}; diff --git a/.xkb/symbols/dpr b/.xkb/symbols/dpr deleted file mode 100644 index 580b68a..0000000 --- a/.xkb/symbols/dpr +++ /dev/null @@ -1,106 +0,0 @@ -// Phonetic Russian (Dvorak) -// By: Ryan Kavanagh , http://ryanak.ca/ -// -// Based on the ICD layout -// -// SHIFT: ~ % 7 5 3 1 9 0 2 4 6 8 Ц BCKSP -// NORMAL: $ & [ { } ( = * ) + ] ! ц BCKSP -// AltGr: d~ ø € ¥ d˘ d¨ d¸ d`` d` d´ d˝ ¡ # BCKSP -// SFT-AG: ¢ Ø £ ¤ ` BCKSP -// -// TAB : < > П Ы Ф Г Ч Р Л Щ Й ? -// TAB ; , . п ы ф г ч р л щ й / -// TAB ä « » p y f g c r l ? @ | -// TAB Ä · P Y F G C R L / ^ \ -// -// CAPL А О Е У И Д Х Т Н С ъ ENTER -// CAPL а о е у и д х т н с ь ENTER -// CAPL a o e u i d h t n s - ENTER -// CAPL A O E U I D H T N S _ ENTER -// -// SHIFT " Я Ж К Ё Б М Ш В З SHIFT -// SHIFT ' я ж к ё б м ш в з SHIFT -// SHIFT â q j k x b m w v z SHIFT -// SHIFT  Q J K X B M W V Z -// -// Legend: dX -> dead_X -// -// en dash: AltGr-hyphen_minus -// em dash: Shift-AltGr-hyphen_minus -// dead_doublegrave: AltGr-asterisk -// dead_abovedot: on AltGr-backslash -// dead_belowdot: on Shift-AltGr-backslash - -partial alphanumeric_keys -xkb_symbols "dpr" { - include "ru(phonetic)" - - name[Group1] = "Russia - Dvorak Phonetic"; - - // Unmodified Shift AltGr Shift+AltGr - // symbols row, left side - key { [ dollar, asciitilde, dead_tilde, cent ] }; - key { [ ampersand, percent, oslash, Ooblique ] }; - key { [ bracketleft, 7, EuroSign, sterling ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; - key { [ braceleft, 5, yen, currency ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; - key { [ braceright, 3, dead_hook ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; - key { [ parenleft, 1, dead_diaeresis ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; - key { [ equal, 9, dead_cedilla ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; - - // symbols row, right side - key { [ asterisk, 0, dead_doublegrave ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; - key { [ parenright, 2, dead_grave ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; - key { [ plus, 4, dead_acute ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; - key { [ bracketright, 6, dead_doubleacute ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; - key { [ exclam, 8, exclamdown ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; - key { [ Cyrillic_tse, Cyrillic_TSE, numbersign, grave ] }; - key { [ BackSpace ] }; - - // upper row, left side - key { [ semicolon, colon, adiaeresis, Adiaeresis ] }; - key { [ comma, less, guillemotleft, degree ] }; - key { [ period, greater, guillemotright, periodcentered ] }; - key { [ Cyrillic_pe, Cyrillic_PE, p, P ] }; - key { [ Cyrillic_yeru, Cyrillic_YERU, y, Y ] }; - - // upper row, right side - key { [ Cyrillic_ef, Cyrillic_EF, f, F ] }; - key { [ Cyrillic_ghe, Cyrillic_GHE, g, G ] }; - key { [ Cyrillic_che, Cyrillic_CHE, c, C ] }; - key { [ Cyrillic_er, Cyrillic_ER, r, R ] }; - key { [ Cyrillic_el, Cyrillic_EL, l, L ] }; - key { [ Cyrillic_shcha, Cyrillic_SHCHA, question, slash ] }; - key { [ Cyrillic_shorti, Cyrillic_SHORTI,at, asciicircum] }; - key { [ question, slash, bar, backslash ] }; - - // home row, left side - key { [ Cyrillic_a, Cyrillic_A, a, A ] }; - key { [ Cyrillic_o, Cyrillic_O, o, O ] }; - key { [ Cyrillic_ie, Cyrillic_IE, e, E ] }; - key { [ Cyrillic_u, Cyrillic_U, u, U ] }; - key { [ Cyrillic_i, Cyrillic_I, i, I ] }; - - // home row, right side - key { [ Cyrillic_de, Cyrillic_DE, d, D ] }; - key { [ Cyrillic_ha, Cyrillic_HA, h, H ] }; - key { [ Cyrillic_te, Cyrillic_TE, t, T ] }; - key { [ Cyrillic_en, Cyrillic_EN, n, N ] }; - key { [ Cyrillic_es, Cyrillic_ES, s, S ] }; - key { [ Cyrillic_softsign,Cyrillic_hardsign,minus, underscore ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; - - // lower row, left side - key { [ apostrophe, quotedbl, acircumflex, Acircumflex] }; - key { [ Cyrillic_ya, Cyrillic_YA, q, Q ] }; - key { [ Cyrillic_zhe, Cyrillic_ZHE, j, J ] }; - key { [ Cyrillic_ka, Cyrillic_KA, k, K ] }; - key { [ Cyrillic_yu, Cyrillic_YU, x, X ] }; - - // lower row, right side - key { [ Cyrillic_be, Cyrillic_BE, b, B ] }; - key { [ Cyrillic_em, Cyrillic_EM, m, M ] }; - key { [ Cyrillic_sha, Cyrillic_SHA, w, W ] }; - key { [ Cyrillic_ve, Cyrillic_VE, v, V ] }; - key { [ Cyrillic_ze, Cyrillic_ZE, z, Z ] }; - key { [ Shift_R, Shift_R, Shift_R, Shift_R ] }; - -}; diff --git a/.xkb/symbols/icd b/.xkb/symbols/icd deleted file mode 100644 index 9ace6b7..0000000 --- a/.xkb/symbols/icd +++ /dev/null @@ -1,111 +0,0 @@ -// International Coder Dvorak -// By: Ryan Kavanagh , http://ryanak.ca/ -// -// Optimised for typing in English, French and Spanish. -// -// Based on the Dvorak International (dvorak-intl) layout: -// Stephane Magnenat (stephane at magnenat dot net, http://stephane.magnenat.net) -// Based on information from http://www.poupinou.org/dvorak/index.html -// Based on the Programmer Dvorak (dvp) layout: -// Programmer Dvorak, by Roland Kaufmann -// License: BSD, available at -// -// SHIFT: ~ % 7 5 3 1 9 0 2 4 6 8 ` BCKSP -// NORMAL: $ & [ { } ( = * ) + ] ! # BCKSP -// AltGr: ¢ ¤ € £ d˘ d¨ d¸ d`` d` d´ d˝ ¡ d˚ BCKSP -// SFT-AG: d~ ₽ ¥ d˳ BCKSP -// -// TAB : < > P Y F G C R L ? ^ | -// TAB ; , . p y f g c r l / @ \ -// TAB ä « » ü í ç þ ¿ dˆ d' -// TAB Ä ° · Ü Í Ç Þ dˇ d. -// -// CAPL A O E U I D H T N S _ ENTER -// CAPL a o e u i d h t n s - ENTER -// CAPL à ó é û î ð œ æ ñ ß – ENTER -// CAPL À Ó É Û Î Ð Œ Æ Ñ ‾ — ENTER -// -// SHIFT " Q J K X B M W V Z SHIFT -// SHIFT ' q j k x b m w v z SHIFT -// SHIFT â ô è ù ï ê ¶ SHIFT -// SHIFT Â Ô È Ù Ï Ê § -// -// Legend: dX -> dead_X -// -// en dash: AltGr-hyphen_minus -// em dash: Shift-AltGr-hyphen_minus -// dead_doublegrave: AltGr-asterisk -// dead_abovedot: on AltGr-backslash -// dead_belowdot: on Shift-AltGr-backslash - -partial alphanumeric_keys -xkb_symbols "icd" { - include "us(dvp)" - - name[Group1] = "USA - International Coder Dvorak"; - - // Unmodified Shift AltGr Shift+AltGr - // symbols row, left side - key { [ dollar, asciitilde, cent, dead_tilde ] }; - key { [ ampersand, percent, currency, U20BD ] }; - key { [ bracketleft, 7, EuroSign, yen ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; - key { [ braceleft, 5, sterling ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; - key { [ braceright, 3, dead_hook ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; - key { [ parenleft, 1, dead_diaeresis ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; - key { [ equal, 9, dead_cedilla ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; - - // symbols row, right side - key { [ asterisk, 0, dead_doublegrave ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; - key { [ parenright, 2, dead_grave ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; - key { [ plus, 4, dead_acute ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; - key { [ bracketright, 6, dead_doubleacute ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; - key { [ exclam, 8, exclamdown ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; - key { [ numbersign, grave, dead_abovering, dead_belowring ] }; - key { [ BackSpace ] }; - - // upper row, left side - key { [ semicolon, colon, adiaeresis, Adiaeresis ] }; - key { [ comma, less, guillemotleft, degree ] }; - key { [ period, greater, guillemotright, periodcentered ] }; - key { [ p, P, udiaeresis, Udiaeresis ] }; - key { [ y, Y, iacute, Iacute ] }; - - // upper row, right side - key { [ f, F, udiaeresis, Udiaeresis ] }; - key { [ g, G ] }; - key { [ c, C, ccedilla, Ccedilla ] }; - key { [ r, R ] }; - key { [ l, L, thorn, THORN ] }; - key { [ slash, question, questiondown ] }; - key { [ at, asciicircum, dead_circumflex, dead_caron ] }; - key { [ backslash, bar, dead_abovedot, dead_belowdot ] }; - - // home row, left side - key { [ a, A, agrave, Agrave ] }; - key { [ o, O, oacute, Oacute ] }; - key { [ e, E, eacute, Eacute ] }; - key { [ u, U, ucircumflex, Ucircumflex] }; - key { [ i, I, icircumflex, Icircumflex] }; - - // home row, right side - key { [ d, D, eth, ETH ] }; - key { [ h, H, oe, OE ] }; - key { [ t, T, ae, AE ] }; - key { [ n, N, ntilde, Ntilde ] }; - key { [ s, S, ssharp, overline ] }; - key { [ minus, underscore, endash, emdash ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; - - // lower row, left side - key { [ apostrophe, quotedbl, acircumflex, Acircumflex] }; - key { [ q, Q, ocircumflex, Ocircumflex] }; - key { [ j, J, egrave, Egrave ] }; - key { [ k, K, ugrave, Ugrave ] }; - key { [ x, X, idiaeresis, Idiaeresis ] }; - - // lower row, right side - key { [ b, B ] }; - key { [ m, M, ecircumflex, Ecircumflex] }; - key { [ w, W, paragraph, section ] }; - key { [ Shift_R, Shift_R, Shift_R, Shift_R ] }; - -}; diff --git a/.xkb/symbols/lalt_meta b/.xkb/symbols/lalt_meta deleted file mode 100644 index 9e27570..0000000 --- a/.xkb/symbols/lalt_meta +++ /dev/null @@ -1,4 +0,0 @@ -partial modifier_keys -xkb_symbols "lalt_meta" { - key { [ Meta_L ] } ; -}; diff --git a/.xkb/symbols/myswap b/.xkb/symbols/myswap deleted file mode 100644 index 474d7d7..0000000 --- a/.xkb/symbols/myswap +++ /dev/null @@ -1,5 +0,0 @@ -partial modifier_keys -xkb_symbols "switch_lalt_lsuper" { - key { [ Super_L ] } ; - key { [ Alt_L ] }; -}; diff --git a/.xmonad/xmonad.hs b/.xmonad/xmonad.hs deleted file mode 100644 index 60b435c..0000000 --- a/.xmonad/xmonad.hs +++ /dev/null @@ -1,423 +0,0 @@ -{-# OPTIONS_GHC -W -fwarn-unused-imports -fno-warn-missing-signatures -O2 #-} -import Control.Monad (liftM2) -import Data.Map (fromList, toList, union) -import System.Environment (getEnv, setEnv) -import System.IO (hPutStrLn) -import XMonad -import XMonad.Actions.CopyWindow (copy, kill1, killAllOtherCopies) -import XMonad.Actions.CycleWS (moveTo, nextWS, WSType(NonEmptyWS) - , prevWS, shiftToNext, shiftToPrev, toggleWS) -import XMonad.Actions.DynamicWorkspaces (addWorkspacePrompt, removeWorkspace - , renameWorkspace, selectWorkspace - , withWorkspace) -import XMonad.Actions.GridSelect (HasColorizer, GSConfig, buildDefaultGSConfig - , defaultColorizer, goToSelected - , gridselectWorkspace, gs_navigate, navNSearch) -import XMonad.Actions.Submap (submap) -import XMonad.Hooks.DynamicLog (dzenColor, dynamicLogWithPP - , ppCurrent, ppVisible, ppSep, ppHidden - , ppUrgent, ppTitle, ppExtras - , ppOrder, ppOutput, trim, wrap) -import XMonad.Hooks.ManageDocks (avoidStruts, docks, docksEventHook - , ToggleStruts(ToggleStruts)) -import XMonad.Hooks.ManageHelpers (isFullscreen, doFullFloat) -import XMonad.Hooks.UrgencyHook (focusUrgent) -import XMonad.Layout.Accordion (Accordion(Accordion)) -import XMonad.Layout.Dishes (Dishes(Dishes)) -import XMonad.Layout.FixedColumn (FixedColumn(FixedColumn)) -import XMonad.Layout.Grid (Grid(Grid)) -import XMonad.Layout.LimitWindows (limitWindows) -import XMonad.Layout.Magnifier (magnifiercz') -import XMonad.Layout.MultiToggle (mkToggle, single, Toggle(Toggle)) -import XMonad.Layout.MultiToggle.Instances (StdTransformers(MIRROR)) -import XMonad.Layout.NoBorders (smartBorders) -import XMonad.Layout.NoFrillsDecoration (activeBorderColor, activeColor - , activeTextColor, decoHeight, fontName - , inactiveBorderColor, inactiveColor - , inactiveTextColor, urgentColor - , urgentTextColor) -import XMonad.Layout.PerWorkspace (onWorkspace) -import XMonad.Layout.ResizableTile (ResizableTall(ResizableTall)) -import XMonad.Layout.Tabbed (shrinkText, tabbed) -import XMonad.Layout.ThreeColumns (ThreeCol(ThreeColMid)) -import XMonad.Layout.ToggleLayouts (toggleLayouts, ToggleLayout(ToggleLayout)) -import XMonad.Layout.WindowNavigation (Navigate(Move)) -import XMonad.Prompt (fgColor, bgColor, XPPosition(Bottom), height - , position, promptBorderWidth) -import XMonad.Prompt.Shell (shellPrompt) -import XMonad.Util.Loggers (date, logCmd) -import XMonad.Util.Run (spawnPipe) -import XMonad.Util.Themes (theme, themeAuthor, themeDescription, ThemeInfo(TI) - , themeName) -import XMonad.Util.Types (Direction1D(Next, Prev), Direction2D(L, R, U, D)) -import XMonad.StackSet (shiftMaster, greedyView, shift) - ---------------- --- BINDINGS ---------------- - -myMod = mod4Mask -- windows key -myCtrl = controlMask -myTerminal = "urxvtc" - --- Mouse bindings: default actions bound to mouse events -myMouseBindings (XConfig {XMonad.modMask = modMask}) = fromList $ - -- mod-button1 %! Set the window to floating mode and move by dragging - [ ((modMask, button1), (\w -> focus w >> mouseMoveWindow w - >> windows shiftMaster)) - -- mod-button2 %! Raise the window to the top of the stack - , ((modMask, button2), (\w -> focus w >> windows shiftMaster)) - -- mod-button3 %! Set the window to floating mode and resize by dragging - , ((modMask, button3), (\w -> focus w >> mouseResizeWindow w - >> windows shiftMaster)) - -- you may also bind events to the mouse scroll wheel (button4 and button5) - , ((modMask, button5), (\_ -> moveTo Next NonEmptyWS)) - , ((modMask, button4), (\_ -> moveTo Prev NonEmptyWS )) - -- scroll wheel click, bottom right corner on trackball - , ((modMask, 6), (\w -> focus w >> kill)) - , ((modMask, 8), (\w -> focus w >> kill)) - ] - -mykeys x = [ - ((myMod, xK_Left), prevWS) - , ((myMod, xK_Right), nextWS) - , ((myMod .|. shiftMask, xK_Left), shiftToPrev >> prevWS) - , ((myMod .|. shiftMask, xK_Right), shiftToNext >> nextWS) - , ((myMod, xK_a), toggleWS) - , ((myMod, xK_z), shellPrompt myXPConfig) - , ((myMod, xK_g), goToSelected myGSConfig) - , ((myMod .|. shiftMask, xK_m), sendMessage $ Toggle MIRROR) - , ((myMod .|. shiftMask, xK_g), gridselectWorkspace myGSConfig greedyView) - , ((myMod, xK_x), sendMessage ToggleStruts) - , ((myMod, xK_F1), spawn "${HOME}/.screenlayout/`hostname`-work.sh") - , ((myMod, xK_F2), spawn "${HOME}/.screenlayout/`hostname`-home.sh") - , ((myMod, xK_F3), spawn "${HOME}/.screenlayout/`hostname`-solo.sh") - , ((myMod, xK_F4), spawn "sleep 0.5 && xset dpms force suspend") - , ((myMod, xK_F5), spawn "sleep 0.5 && xset dpms force off") - , ((myMod, xK_F6), spawn "sleep 0.5 && ${HOME}/bin/icd && ${HOME}/bin/mice.sh") - , ((myMod, xK_Up), spawn "sleep 0.5 && b u") - , ((myMod, xK_Down), spawn "sleep 0.5 && b d") - , ((myMod, xK_l), spawn "slock") - , ((myMod .|. myCtrl .|. shiftMask, xK_Right), sendMessage $ Move R) - , ((myMod .|. myCtrl .|. shiftMask, xK_Left), sendMessage $ Move L) - , ((myMod .|. myCtrl .|. shiftMask, xK_Up), sendMessage $ Move U) - , ((myMod .|. myCtrl .|. shiftMask, xK_Down), sendMessage $ Move D) - , ((myMod, xK_BackSpace), focusUrgent) - , ((myMod, xK_s), sendMessage $ ToggleLayout) - , ((myMod, xK_b), submap . fromList $ - [ ((m, k), f) - | m <- [0, myMod] - , (k, f) <- [ (xK_a, addWorkspacePrompt myXPConfig) - , (xK_c, withWorkspace myXPConfig - (windows . copy)) - , (xK_d, kill1) - , (xK_k, removeWorkspace) - , (xK_m, withWorkspace myXPConfig - (windows . shift)) - , (xK_o, killAllOtherCopies) - , (xK_r, renameWorkspace myXPConfig) - , (xK_s, selectWorkspace myXPConfig) - ] - ] - )] - -dvorakify kl = fromList $ map (\((m, k), d) -> ((m, dk k), d)) $ toList kl - where - dk :: KeySym -> KeySym - dk k | k == xK_grave = xK_dollar - | k == xK_asciitilde = xK_asciitilde - - | k == xK_1 = xK_ampersand - | k == xK_exclam = xK_percent - - | k == xK_2 = xK_bracketleft - | k == xK_at = xK_7 - - | k == xK_3 = xK_braceleft - | k == xK_numbersign = xK_5 - - | k == xK_4 = xK_braceright - | k == xK_dollar = xK_3 - - | k == xK_5 = xK_parenleft - | k == xK_percent = xK_1 - - | k == xK_6 = xK_equal - | k == xK_asciicircum = xK_9 - - | k == xK_7 = xK_asterisk - | k == xK_ampersand = xK_0 - - | k == xK_8 = xK_parenright - | k == xK_asterisk = xK_2 - - | k == xK_9 = xK_plus - | k == xK_parenleft = xK_4 - - | k == xK_0 = xK_bracketright - | k == xK_parenright = xK_6 - - | k == xK_minus = xK_exclam - | k == xK_underscore = xK_8 - - | k == xK_equal = xK_numbersign - | k == xK_plus = xK_grave - - | k == xK_q = xK_semicolon -- upper row, left side - | k == xK_Q = xK_colon - - | k == xK_w = xK_comma - | k == xK_W = xK_less - - | k == xK_e = xK_period - | k == xK_E = xK_greater - - | k == xK_bracketleft = xK_slash -- upper row, top right - | k == xK_braceleft = xK_question - - | k == xK_bracketright = xK_at - | k == xK_braceright = xK_asciicircum - - | k == xK_R = xK_P - | k == xK_T = xK_Y - | k == xK_Y = xK_F - | k == xK_U = xK_G - | k == xK_I = xK_C - | k == xK_O = xK_R - | k == xK_P = xK_L - | k == xK_A = xK_A - | k == xK_S = xK_O - | k == xK_D = xK_E - | k == xK_F = xK_U - | k == xK_G = xK_I - | k == xK_H = xK_D - | k == xK_J = xK_H - | k == xK_K = xK_T - | k == xK_L = xK_N - | k == xK_Z = xK_quotedbl - | k == xK_X = xK_Q - | k == xK_C = xK_J - | k == xK_V = xK_K - | k == xK_B = xK_X - | k == xK_N = xK_B - | k == xK_M = xK_M - - | k == xK_r = xK_p - | k == xK_t = xK_y - | k == xK_y = xK_f - | k == xK_u = xK_g - | k == xK_i = xK_c - | k == xK_o = xK_r - | k == xK_p = xK_l - | k == xK_a = xK_a - | k == xK_s = xK_o - | k == xK_d = xK_e - | k == xK_f = xK_u - | k == xK_g = xK_i - | k == xK_h = xK_d - | k == xK_j = xK_h - | k == xK_k = xK_t - | k == xK_l = xK_n - | k == xK_z = xK_apostrophe - | k == xK_x = xK_q - | k == xK_c = xK_j - | k == xK_v = xK_k - | k == xK_b = xK_x - | k == xK_n = xK_b - | k == xK_m = xK_m - - | k == xK_comma = xK_w -- bottom right - | k == xK_less = xK_W - - | k == xK_period = xK_v - | k == xK_greater = xK_V - - | k == xK_slash = xK_z - | k == xK_question = xK_Z - - | otherwise = k - -------------- --- THEMES -------------- - --- Color names are easier to remember: -colorBlack = "#000000" -colorOrange = "#ff7701" --- colorDarkGray = "#171717" --- colorPink = "#e3008d" -colorGreen = "#00aa4a" -colorBlue = "#008dd5" -colorYellow = "#fee100" -colorWhite = "#cfbfad" --- colorBrightGreen = "#00FF00" -colorRed = "#FF0000" - -xftFont = "Inconsolata:size=8" - -newTheme :: ThemeInfo -newTheme = TI "" "" "" def - -rakTheme :: ThemeInfo -rakTheme = - newTheme { themeName = "rakTheme" - , themeAuthor = "Ryan Kavanagh" - , themeDescription = "Small decorations: orange and blue theme" - , theme = def { activeColor = colorBlack - , inactiveColor = colorBlack - , activeBorderColor = colorOrange - , inactiveBorderColor = colorBlack - , activeTextColor = colorOrange - , inactiveTextColor = colorBlue - , urgentColor = colorRed - , urgentTextColor = colorYellow - , decoHeight = 13 - , fontName = "Inconsolata" - } - } - -myTheme = theme rakTheme - -myXPConfig = def { - fgColor = "white" - , bgColor = "black" - , promptBorderWidth = 0 - , position = Bottom - , height = 15 - } - ------------------ --- LAYOUTS ------------------ - --- My workspaces - -myWorkspaces = ["term", "web", "chatter", "reading", "5", "music", "LaTeX"] - ++ (map show [8..20]) - --- smartBorders removes borders when there's no ambiguity -myLayout = mkToggle (single MIRROR) (smartBorders $ toggleLayouts Full - $ avoidStruts perWS) - where - -- Per workspace layout selection. - perWS = onWorkspace "term" (myTall ||| customRyan) $ - onWorkspace "web" (tabbed shrinkText myTheme - ||| mySplit ||| myTCM) $ - onWorkspace "LaTeX" latexFirst $ - customRyan - - -- Each of these allows toggling through a set of layouts - -- in the same logical order, but from a different starting point. - customRyan = myGrid ||| myDish ||| Accordion ||| myCode - ||| myFixed ||| myTall - latexFirst = myFixed ||| customRyan - - -- This is a three column mode, with the master in the middle. - myTCM = ThreeColMid 1 (3/100) (1/2) - -- This is a tall-like layout with magnification. - -- The master window is fixed at 80 columns wide, making this good - -- for coding. Limited to 3 visible windows at a time to ensure all - -- are a good size. - myCode = limitWindows 3 $ magnifiercz' 1.4 $ FixedColumn 1 20 80 10 - - -- Stack with one large master window. - -- It's easy to overflow a stack to the point that windows are too - -- small, so only show first 5. - myDish = limitWindows 5 $ Dishes nmaster ratio - where - -- The default number of windows in the master pane - nmaster = 1 - -- Default proportion of screen occupied by other panes - ratio = 1/5 - - -- Split screen, optimized for web browsing. - mySplit = magnifiercz' 1.4 $ Tall nmaster delta ratio - where - -- The default number of windows in the master pane - nmaster = 1 - -- Percent of screen to increment by when resizing panes - delta = 3/100 - -- Default proportion of screen occupied by master pane - ratio = 60/100 - - -- Standard grid. - myGrid = Grid - - myFixed = FixedColumn 1 20 80 10 - - myTall = ResizableTall nmaster delta ratio [50/100] - where - nmaster = 1 - delta = 3/100 - ratio = 1/2 - -------------------- --- STATUS BAR -------------------- - -statusBarCmd = "dzen2" ++ - " -dock" ++ - " -bg '" ++ colorBlack ++ "'" ++ - " -fg '" ++ colorBlue ++ "'" ++ - " -sa c" ++ - " -fn '" ++ xftFont ++ "'" ++ - " -w 925 -x 0 -y 0 -ta l -e ''" - --- dynamiclog pretty printer for dzen -mPP h = def - { ppCurrent = dzenColor colorOrange colorBlack - , ppVisible = dzenColor colorGreen colorBlack - , ppHidden = dzenColor colorBlue colorBlack - , ppUrgent = dzenColor colorRed colorBlack . wrap "[" "]" - , ppSep = dzenColor "grey60" colorBlack " ^r(1x8) " - , ppTitle = dzenColor colorWhite colorBlack . trim - , ppOrder = \(ws:l:t:d:b:o) -> [b,d,ws,l,t] ++ o - , ppExtras = [date "%H:%M:%S", batteryCheck] - , ppOutput = hPutStrLn h - } - where - batteryCheck = logCmd ("${HOME}/.dzen/battery.sh") - ---------------------- --- GENERAL CONFIG --------------------- - -myGSConfig :: HasColorizer a => GSConfig a -myGSConfig = (buildDefaultGSConfig defaultColorizer) { gs_navigate = navNSearch } - -myManageHook = composeAll . concat $ - [ [ className =? c --> doFloat | c <- floats] - , [ className =? c --> viewShift "web" | c <- web] - , [ className =? c --> viewShift "chatter" | c <- chatter] - , [ className =? c --> viewShift "music" | c <- music] - , [ isFullscreen --> doFullFloat ] - ] - where - viewShift = doF . liftM2 (.) greedyView shift - floats = ["MPlayer"] - web = ["Firefox", "Firefox-esr", "Navigator", "google-chrome", "Google-chrome"] - chatter = ["slack", "Slack"] - music = ["pavucontrol", "Pavucontrol"] - -myConfig dzenPipe = docks $ def { - workspaces = myWorkspaces - , modMask = myMod - , terminal = myTerminal - , normalBorderColor = inactiveBorderColor myTheme - , focusedBorderColor = activeBorderColor myTheme - , borderWidth = 1 - , layoutHook = myLayout - , manageHook = manageHook def <+> myManageHook - , mouseBindings = myMouseBindings - , keys = \x -> (fromList $ mykeys x) - `union` dvorakify (keys def x) - , logHook = dynamicLogWithPP $ mPP dzenPipe - , handleEventHook = docksEventHook - } - -main = do - dzenPipe <- spawnPipe statusBarCmd - path <- getEnv "PATH" - home <- getEnv "HOME" - setEnv "PATH" (home ++ "/bin:" ++ path) - xmonad $ myConfig dzenPipe diff --git a/dot_emacs.d/themes/ryanakca-theme.el b/dot_emacs.d/themes/ryanakca-theme.el new file mode 100644 index 0000000..52f9616 --- /dev/null +++ b/dot_emacs.d/themes/ryanakca-theme.el @@ -0,0 +1,50 @@ +(deftheme ryanakca + "Created 2013-03-01.") + +(custom-theme-set-faces + 'ryanakca + '(default ((t (:inherit nil :stipple nil :background "#080808" :foreground "#eeeeee" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 83 :width normal :foundry "unknown" :family "Inconsolata")))) + '(cursor ((t (:background "green" :foreground "black")))) + '(fixed-pitch ((t (:family "courier")))) + '(variable-pitch ((t (:family "helv")))) + '(escape-glyph ((t (:foreground "purple2")))) + '(minibuffer-prompt ((t (:foreground "chartreuse" :weight bold)))) + '(highlight ((t (:underline t :foreground "#ffffff" :background "DodgerBlue4")))) + '(region ((t (:foreground "#f6f3e8" :background "#103050")))) + '(shadow ((((class color grayscale) (min-colors 88) (background light)) (:foreground "grey50")) (((class color grayscale) (min-colors 88) (background dark)) (:foreground "grey70")) (((class color) (min-colors 8) (background light)) (:foreground "green")) (((class color) (min-colors 8) (background dark)) (:foreground "yellow")))) + '(secondary-selection ((t (:foreground "#f6f3e8" :background "#333366")))) + '(trailing-whitespace ((t (:background "#a40000")))) + '(font-lock-builtin-face ((t (:foreground "LightCoral")))) + '(font-lock-comment-delimiter-face ((t (:foreground "#DC45DC" :inherit font-lock-comment-face)))) + '(font-lock-comment-face ((t (:foreground "#DC45DC" :slant oblique)))) + '(font-lock-constant-face ((t (:foreground "orchid" :weight bold)))) + '(font-lock-doc-face ((t (:slant oblique :foreground "moccasin" :inherit (font-lock-string-face))))) + '(font-lock-function-name-face ((t (:foreground "deep sky blue" :weight bold :height 1.1)))) + '(font-lock-keyword-face ((t (:foreground "yellow" :weight bold)))) + '(font-lock-negation-char-face ((t nil))) + '(font-lock-preprocessor-face ((t (:slant italic :foreground "gold" :inherit (font-lock-builtin-face))))) + '(font-lock-regexp-grouping-backslash ((t (:weight bold :inherit (bold))))) + '(font-lock-regexp-grouping-construct ((t (:weight bold :inherit (bold))))) + '(font-lock-string-face ((t (:foreground "burlywood")))) + '(font-lock-type-face ((t (:weight bold :foreground "CadetBlue1")))) + '(font-lock-variable-name-face ((t (:weight bold :foreground "SeaGreen2")))) + '(font-lock-warning-face ((t (:inherit error :foreground "red" :weight bold)))) + '(button ((t (:weight bold :underline t :box (:line-width 2 :color "grey" :style released-button) :foreground "#f6f3e8" :background "#333333" :inherit (link))))) + '(link ((t (:foreground "#afffff" :underline t)))) + '(link-visited ((t (:underline t :foreground "#afd7ff" :inherit link)))) + '(fringe ((t (:foreground "Wheat" :background "black")))) + '(header-line ((t (:height 0.9 :box (:line-width -1 :color "grey20" :style released-button) :inverse-video t :foreground "#e7f6da" :background "#303030" :inherit (mode-line))))) + '(tooltip ((t (:family "helv" :foreground "black" :background "lightyellow" :inherit (variable-pitch))))) + '(mode-line ((t (:family "DejaVu Sans" :height 0.9 :box (:line-width 1 :color nil :style released-button) :foreground "black" :background "gray75")))) + '(mode-line-buffer-id ((t (:height 0.9 :weight bold :underline "red" :overline "red" :foreground "blue4")))) + '(mode-line-emphasis ((t (:weight bold)))) + '(mode-line-highlight ((t (:box (:line-width 2 :color "grey40" :style released-button))))) + '(mode-line-inactive ((t (:height 0.9 :weight light :box (:line-width 1 :color "gray40" :style nil) :foreground "black" :background "gray40" :inherit (mode-line))))) + '(isearch ((t (:background "#d7afff" :foreground "#5f0000")))) + '(isearch-fail ((((class color) (min-colors 88) (background light)) (:background "RosyBrown1")) (((class color) (min-colors 88) (background dark)) (:background "red4")) (((class color) (min-colors 16)) (:background "red")) (((class color) (min-colors 8)) (:background "red")) (((class color grayscale)) (:foreground "grey")) (t (:inverse-video t)))) + '(lazy-highlight ((t (:foreground "white" :background "cadetblue")))) + '(match ((t (:background "DeepPink4")))) + '(next-error ((t (:background "blue3" :inherit (region))))) + '(query-replace ((t (:foreground "brown4" :background "palevioletred2" :inherit (isearch)))))) + +(provide-theme 'ryanakca) diff --git a/dot_gnupg/dirmngr.conf b/dot_gnupg/dirmngr.conf new file mode 100644 index 0000000..44352fb --- /dev/null +++ b/dot_gnupg/dirmngr.conf @@ -0,0 +1,2 @@ +use-tor +keyserver hkp://jirk5u4osbsr34t5.onion diff --git a/dot_gnupg/gpg.conf b/dot_gnupg/gpg.conf new file mode 100644 index 0000000..43d7b92 --- /dev/null +++ b/dot_gnupg/gpg.conf @@ -0,0 +1,6 @@ +keyserver hkp://keys.gnupg.net +use-agent +default-key 8F7BF8FC4A11C97A +personal-digest-preferences SHA512 +cert-digest-algo SHA512 +default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB ZIP Uncompressed diff --git a/dot_pulse/daemon.conf b/dot_pulse/daemon.conf new file mode 100644 index 0000000..24708e5 --- /dev/null +++ b/dot_pulse/daemon.conf @@ -0,0 +1,4 @@ +default-sample-channels = 6 +default-sample-format = s24le +default-sample-rate = 96000 +flat-volumes = no diff --git a/dot_pulse/default.pa b/dot_pulse/default.pa new file mode 100644 index 0000000..6046260 --- /dev/null +++ b/dot_pulse/default.pa @@ -0,0 +1,6 @@ +load-module module-native-protocol-unix +load-module module-stream-restore +load-module module-rescue-streams +load-module module-always-sink +load-module module-suspend-on-idle +load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 diff --git a/dot_s-nail.rc b/dot_s-nail.rc new file mode 100644 index 0000000..8e6cb10 --- /dev/null +++ b/dot_s-nail.rc @@ -0,0 +1,149 @@ +# vim: set commentstring=#%s: + +# This example assumes v15.0 compatibility mode +set v15-compat + +# Request strict TLL transport layer security checks +set tls-verify=strict + +# Do not load the default CA locations that are built into the used to TLS +# library to verify TLS server certificates. +set tls-ca-no-defaults +set tls-ca-file=SSL_CERTS + +# Send mail in utf-8, unless the original poster used a different charset +set sendcharsets=utf-8 +set reply-in-same-charset + +# When replying, do not merge From: and To: of the original message into To:. +# Instead old From: -> new To:, old To: -> merge Cc:. +set recipients-in-cc + +# Wait on the MTA for errors reported through exit status (including the +# built-in SMTP one)! +set sendwait=mta + +# Don't move read messages to MBOX +set hold + +# cache imap +set imap-cache=~/.cache/mailx + +# make sure less displays colours +set PAGER="less -FXQR" + +# always use the pager when needed +set crt + +# set colour display +set colour-pager + +# set colours +if terminal && "$features" =% +colour + colour 256 view-header fg=brown "date,from,to,cc,bcc" + colour 256 view-header fg=green "subject" + colour 256 view-msginfo fg=white,bg=blue + + colour 256 sum-dotmark ft=bold,fg=cyan dot + colour 256 sum-header fg=magenta older + colour 256 sum-thread bg=red dot + colour 256 sum-thread fg=cyan +endif + +# Default to a threaded display +set autosort=thread +# Don't automatically collapse threads +unset autocollapse + +# automatically launch visual editor when typing messages +set editalong=v + +# Only include the selected header fields when typing messages +headerpick type retain from_ date from to cc bcc subject \ + message-id mail-followup-to reply-to + +# keep names when replying to messages +set fullnames + +# Add my signature +# Requires me to manually add the leading '-- ' +define ocs_signature { + read version + echo '' + echo '-- ' + echo '~< ~/.signature' +} +set on-compose-splice=ocs_signature + +# When replying, quote message +set quote +# and prefix them with "> " +set indentprefix="> " +# and wrap lines to 72 characters +set quote-fold=72 +# with the header +set quote-inject-head="On %d, %f wrote:" + +# Be nice with mailing lists. +set followup-to followup-to-honour=ask-yes reply-to-honour=ask-yes + +# use the system sendmail for sending mail +set mta=sendmail + +# and lookup passwords in netrc +set netrc-lookup + +############# +# ACCOUNTS # +############ + +set alternates="ryanakca@gmail.com,rak@debian.org,ryanakca@ubuntu.com,ryanakca@kubuntu.org,rak@rak.ac,rak@ryanak.ca,rkavanag@andrew.cmu.edu,rkavanag@alumni.cmu.edu,rkavanag@cs.cmu.edu,rkavanagh@cs.cmu.edu,ryan@cs.queensu.ca" + +define gmail { + set from="Ryan Kavanagh " + set folder=imaps://ryanakca%40gmail.com@imap.gmail.com/ + unset MBOX + set record=+"[Google Mail]/Sent Items" +} + +define queensu { + set from="Ryan Kavanagh " + set folder=imaps://9rak%40queensu.ca@pod51018.outlook.com/ + set MBOX=+Read + set record=+"Sent Items" +} + +define rak { + set from="Ryan Kavanagh " + set folder=imaps://rak@imap.rak.ac/ + set MBOX=+RAK + set record=+Sent +} + +define cmu { + set from="Ryan Kavanagh " + set folder=imaps://rkavanag%40alumni.cmu.edu@imap.gmail.com/ + set MBOX=+Read + set record=+"[Gmail]/Sent Mail" +} + +# rak is the default account +call rak +set inbox=+INBOX + +account g { + call gmail +} + +account q { + call queensu +} + +account r { + call rak +} + +account c { + call cmu +} + diff --git a/dot_xkb/keycodes/sunt6fix b/dot_xkb/keycodes/sunt6fix new file mode 100644 index 0000000..e599b3c --- /dev/null +++ b/dot_xkb/keycodes/sunt6fix @@ -0,0 +1,4 @@ +xkb_keycodes { + = 86; + = 104; +}; diff --git a/dot_xkb/symbols/dpr b/dot_xkb/symbols/dpr new file mode 100644 index 0000000..580b68a --- /dev/null +++ b/dot_xkb/symbols/dpr @@ -0,0 +1,106 @@ +// Phonetic Russian (Dvorak) +// By: Ryan Kavanagh , http://ryanak.ca/ +// +// Based on the ICD layout +// +// SHIFT: ~ % 7 5 3 1 9 0 2 4 6 8 Ц BCKSP +// NORMAL: $ & [ { } ( = * ) + ] ! ц BCKSP +// AltGr: d~ ø € ¥ d˘ d¨ d¸ d`` d` d´ d˝ ¡ # BCKSP +// SFT-AG: ¢ Ø £ ¤ ` BCKSP +// +// TAB : < > П Ы Ф Г Ч Р Л Щ Й ? +// TAB ; , . п ы ф г ч р л щ й / +// TAB ä « » p y f g c r l ? @ | +// TAB Ä · P Y F G C R L / ^ \ +// +// CAPL А О Е У И Д Х Т Н С ъ ENTER +// CAPL а о е у и д х т н с ь ENTER +// CAPL a o e u i d h t n s - ENTER +// CAPL A O E U I D H T N S _ ENTER +// +// SHIFT " Я Ж К Ё Б М Ш В З SHIFT +// SHIFT ' я ж к ё б м ш в з SHIFT +// SHIFT â q j k x b m w v z SHIFT +// SHIFT  Q J K X B M W V Z +// +// Legend: dX -> dead_X +// +// en dash: AltGr-hyphen_minus +// em dash: Shift-AltGr-hyphen_minus +// dead_doublegrave: AltGr-asterisk +// dead_abovedot: on AltGr-backslash +// dead_belowdot: on Shift-AltGr-backslash + +partial alphanumeric_keys +xkb_symbols "dpr" { + include "ru(phonetic)" + + name[Group1] = "Russia - Dvorak Phonetic"; + + // Unmodified Shift AltGr Shift+AltGr + // symbols row, left side + key { [ dollar, asciitilde, dead_tilde, cent ] }; + key { [ ampersand, percent, oslash, Ooblique ] }; + key { [ bracketleft, 7, EuroSign, sterling ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ braceleft, 5, yen, currency ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ braceright, 3, dead_hook ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ parenleft, 1, dead_diaeresis ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ equal, 9, dead_cedilla ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + + // symbols row, right side + key { [ asterisk, 0, dead_doublegrave ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ parenright, 2, dead_grave ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ plus, 4, dead_acute ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ bracketright, 6, dead_doubleacute ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ exclam, 8, exclamdown ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ Cyrillic_tse, Cyrillic_TSE, numbersign, grave ] }; + key { [ BackSpace ] }; + + // upper row, left side + key { [ semicolon, colon, adiaeresis, Adiaeresis ] }; + key { [ comma, less, guillemotleft, degree ] }; + key { [ period, greater, guillemotright, periodcentered ] }; + key { [ Cyrillic_pe, Cyrillic_PE, p, P ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU, y, Y ] }; + + // upper row, right side + key { [ Cyrillic_ef, Cyrillic_EF, f, F ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE, g, G ] }; + key { [ Cyrillic_che, Cyrillic_CHE, c, C ] }; + key { [ Cyrillic_er, Cyrillic_ER, r, R ] }; + key { [ Cyrillic_el, Cyrillic_EL, l, L ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA, question, slash ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI,at, asciicircum] }; + key { [ question, slash, bar, backslash ] }; + + // home row, left side + key { [ Cyrillic_a, Cyrillic_A, a, A ] }; + key { [ Cyrillic_o, Cyrillic_O, o, O ] }; + key { [ Cyrillic_ie, Cyrillic_IE, e, E ] }; + key { [ Cyrillic_u, Cyrillic_U, u, U ] }; + key { [ Cyrillic_i, Cyrillic_I, i, I ] }; + + // home row, right side + key { [ Cyrillic_de, Cyrillic_DE, d, D ] }; + key { [ Cyrillic_ha, Cyrillic_HA, h, H ] }; + key { [ Cyrillic_te, Cyrillic_TE, t, T ] }; + key { [ Cyrillic_en, Cyrillic_EN, n, N ] }; + key { [ Cyrillic_es, Cyrillic_ES, s, S ] }; + key { [ Cyrillic_softsign,Cyrillic_hardsign,minus, underscore ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + + // lower row, left side + key { [ apostrophe, quotedbl, acircumflex, Acircumflex] }; + key { [ Cyrillic_ya, Cyrillic_YA, q, Q ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE, j, J ] }; + key { [ Cyrillic_ka, Cyrillic_KA, k, K ] }; + key { [ Cyrillic_yu, Cyrillic_YU, x, X ] }; + + // lower row, right side + key { [ Cyrillic_be, Cyrillic_BE, b, B ] }; + key { [ Cyrillic_em, Cyrillic_EM, m, M ] }; + key { [ Cyrillic_sha, Cyrillic_SHA, w, W ] }; + key { [ Cyrillic_ve, Cyrillic_VE, v, V ] }; + key { [ Cyrillic_ze, Cyrillic_ZE, z, Z ] }; + key { [ Shift_R, Shift_R, Shift_R, Shift_R ] }; + +}; diff --git a/dot_xkb/symbols/icd b/dot_xkb/symbols/icd new file mode 100644 index 0000000..9ace6b7 --- /dev/null +++ b/dot_xkb/symbols/icd @@ -0,0 +1,111 @@ +// International Coder Dvorak +// By: Ryan Kavanagh , http://ryanak.ca/ +// +// Optimised for typing in English, French and Spanish. +// +// Based on the Dvorak International (dvorak-intl) layout: +// Stephane Magnenat (stephane at magnenat dot net, http://stephane.magnenat.net) +// Based on information from http://www.poupinou.org/dvorak/index.html +// Based on the Programmer Dvorak (dvp) layout: +// Programmer Dvorak, by Roland Kaufmann +// License: BSD, available at +// +// SHIFT: ~ % 7 5 3 1 9 0 2 4 6 8 ` BCKSP +// NORMAL: $ & [ { } ( = * ) + ] ! # BCKSP +// AltGr: ¢ ¤ € £ d˘ d¨ d¸ d`` d` d´ d˝ ¡ d˚ BCKSP +// SFT-AG: d~ ₽ ¥ d˳ BCKSP +// +// TAB : < > P Y F G C R L ? ^ | +// TAB ; , . p y f g c r l / @ \ +// TAB ä « » ü í ç þ ¿ dˆ d' +// TAB Ä ° · Ü Í Ç Þ dˇ d. +// +// CAPL A O E U I D H T N S _ ENTER +// CAPL a o e u i d h t n s - ENTER +// CAPL à ó é û î ð œ æ ñ ß – ENTER +// CAPL À Ó É Û Î Ð Œ Æ Ñ ‾ — ENTER +// +// SHIFT " Q J K X B M W V Z SHIFT +// SHIFT ' q j k x b m w v z SHIFT +// SHIFT â ô è ù ï ê ¶ SHIFT +// SHIFT Â Ô È Ù Ï Ê § +// +// Legend: dX -> dead_X +// +// en dash: AltGr-hyphen_minus +// em dash: Shift-AltGr-hyphen_minus +// dead_doublegrave: AltGr-asterisk +// dead_abovedot: on AltGr-backslash +// dead_belowdot: on Shift-AltGr-backslash + +partial alphanumeric_keys +xkb_symbols "icd" { + include "us(dvp)" + + name[Group1] = "USA - International Coder Dvorak"; + + // Unmodified Shift AltGr Shift+AltGr + // symbols row, left side + key { [ dollar, asciitilde, cent, dead_tilde ] }; + key { [ ampersand, percent, currency, U20BD ] }; + key { [ bracketleft, 7, EuroSign, yen ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ braceleft, 5, sterling ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ braceright, 3, dead_hook ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ parenleft, 1, dead_diaeresis ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ equal, 9, dead_cedilla ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + + // symbols row, right side + key { [ asterisk, 0, dead_doublegrave ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ parenright, 2, dead_grave ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ plus, 4, dead_acute ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ bracketright, 6, dead_doubleacute ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ exclam, 8, exclamdown ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ numbersign, grave, dead_abovering, dead_belowring ] }; + key { [ BackSpace ] }; + + // upper row, left side + key { [ semicolon, colon, adiaeresis, Adiaeresis ] }; + key { [ comma, less, guillemotleft, degree ] }; + key { [ period, greater, guillemotright, periodcentered ] }; + key { [ p, P, udiaeresis, Udiaeresis ] }; + key { [ y, Y, iacute, Iacute ] }; + + // upper row, right side + key { [ f, F, udiaeresis, Udiaeresis ] }; + key { [ g, G ] }; + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ r, R ] }; + key { [ l, L, thorn, THORN ] }; + key { [ slash, question, questiondown ] }; + key { [ at, asciicircum, dead_circumflex, dead_caron ] }; + key { [ backslash, bar, dead_abovedot, dead_belowdot ] }; + + // home row, left side + key { [ a, A, agrave, Agrave ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ e, E, eacute, Eacute ] }; + key { [ u, U, ucircumflex, Ucircumflex] }; + key { [ i, I, icircumflex, Icircumflex] }; + + // home row, right side + key { [ d, D, eth, ETH ] }; + key { [ h, H, oe, OE ] }; + key { [ t, T, ae, AE ] }; + key { [ n, N, ntilde, Ntilde ] }; + key { [ s, S, ssharp, overline ] }; + key { [ minus, underscore, endash, emdash ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + + // lower row, left side + key { [ apostrophe, quotedbl, acircumflex, Acircumflex] }; + key { [ q, Q, ocircumflex, Ocircumflex] }; + key { [ j, J, egrave, Egrave ] }; + key { [ k, K, ugrave, Ugrave ] }; + key { [ x, X, idiaeresis, Idiaeresis ] }; + + // lower row, right side + key { [ b, B ] }; + key { [ m, M, ecircumflex, Ecircumflex] }; + key { [ w, W, paragraph, section ] }; + key { [ Shift_R, Shift_R, Shift_R, Shift_R ] }; + +}; diff --git a/dot_xkb/symbols/lalt_meta b/dot_xkb/symbols/lalt_meta new file mode 100644 index 0000000..9e27570 --- /dev/null +++ b/dot_xkb/symbols/lalt_meta @@ -0,0 +1,4 @@ +partial modifier_keys +xkb_symbols "lalt_meta" { + key { [ Meta_L ] } ; +}; diff --git a/dot_xkb/symbols/myswap b/dot_xkb/symbols/myswap new file mode 100644 index 0000000..474d7d7 --- /dev/null +++ b/dot_xkb/symbols/myswap @@ -0,0 +1,5 @@ +partial modifier_keys +xkb_symbols "switch_lalt_lsuper" { + key { [ Super_L ] } ; + key { [ Alt_L ] }; +}; diff --git a/dot_xmonad/xmonad.hs b/dot_xmonad/xmonad.hs new file mode 100644 index 0000000..60b435c --- /dev/null +++ b/dot_xmonad/xmonad.hs @@ -0,0 +1,423 @@ +{-# OPTIONS_GHC -W -fwarn-unused-imports -fno-warn-missing-signatures -O2 #-} +import Control.Monad (liftM2) +import Data.Map (fromList, toList, union) +import System.Environment (getEnv, setEnv) +import System.IO (hPutStrLn) +import XMonad +import XMonad.Actions.CopyWindow (copy, kill1, killAllOtherCopies) +import XMonad.Actions.CycleWS (moveTo, nextWS, WSType(NonEmptyWS) + , prevWS, shiftToNext, shiftToPrev, toggleWS) +import XMonad.Actions.DynamicWorkspaces (addWorkspacePrompt, removeWorkspace + , renameWorkspace, selectWorkspace + , withWorkspace) +import XMonad.Actions.GridSelect (HasColorizer, GSConfig, buildDefaultGSConfig + , defaultColorizer, goToSelected + , gridselectWorkspace, gs_navigate, navNSearch) +import XMonad.Actions.Submap (submap) +import XMonad.Hooks.DynamicLog (dzenColor, dynamicLogWithPP + , ppCurrent, ppVisible, ppSep, ppHidden + , ppUrgent, ppTitle, ppExtras + , ppOrder, ppOutput, trim, wrap) +import XMonad.Hooks.ManageDocks (avoidStruts, docks, docksEventHook + , ToggleStruts(ToggleStruts)) +import XMonad.Hooks.ManageHelpers (isFullscreen, doFullFloat) +import XMonad.Hooks.UrgencyHook (focusUrgent) +import XMonad.Layout.Accordion (Accordion(Accordion)) +import XMonad.Layout.Dishes (Dishes(Dishes)) +import XMonad.Layout.FixedColumn (FixedColumn(FixedColumn)) +import XMonad.Layout.Grid (Grid(Grid)) +import XMonad.Layout.LimitWindows (limitWindows) +import XMonad.Layout.Magnifier (magnifiercz') +import XMonad.Layout.MultiToggle (mkToggle, single, Toggle(Toggle)) +import XMonad.Layout.MultiToggle.Instances (StdTransformers(MIRROR)) +import XMonad.Layout.NoBorders (smartBorders) +import XMonad.Layout.NoFrillsDecoration (activeBorderColor, activeColor + , activeTextColor, decoHeight, fontName + , inactiveBorderColor, inactiveColor + , inactiveTextColor, urgentColor + , urgentTextColor) +import XMonad.Layout.PerWorkspace (onWorkspace) +import XMonad.Layout.ResizableTile (ResizableTall(ResizableTall)) +import XMonad.Layout.Tabbed (shrinkText, tabbed) +import XMonad.Layout.ThreeColumns (ThreeCol(ThreeColMid)) +import XMonad.Layout.ToggleLayouts (toggleLayouts, ToggleLayout(ToggleLayout)) +import XMonad.Layout.WindowNavigation (Navigate(Move)) +import XMonad.Prompt (fgColor, bgColor, XPPosition(Bottom), height + , position, promptBorderWidth) +import XMonad.Prompt.Shell (shellPrompt) +import XMonad.Util.Loggers (date, logCmd) +import XMonad.Util.Run (spawnPipe) +import XMonad.Util.Themes (theme, themeAuthor, themeDescription, ThemeInfo(TI) + , themeName) +import XMonad.Util.Types (Direction1D(Next, Prev), Direction2D(L, R, U, D)) +import XMonad.StackSet (shiftMaster, greedyView, shift) + +--------------- +-- BINDINGS +--------------- + +myMod = mod4Mask -- windows key +myCtrl = controlMask +myTerminal = "urxvtc" + +-- Mouse bindings: default actions bound to mouse events +myMouseBindings (XConfig {XMonad.modMask = modMask}) = fromList $ + -- mod-button1 %! Set the window to floating mode and move by dragging + [ ((modMask, button1), (\w -> focus w >> mouseMoveWindow w + >> windows shiftMaster)) + -- mod-button2 %! Raise the window to the top of the stack + , ((modMask, button2), (\w -> focus w >> windows shiftMaster)) + -- mod-button3 %! Set the window to floating mode and resize by dragging + , ((modMask, button3), (\w -> focus w >> mouseResizeWindow w + >> windows shiftMaster)) + -- you may also bind events to the mouse scroll wheel (button4 and button5) + , ((modMask, button5), (\_ -> moveTo Next NonEmptyWS)) + , ((modMask, button4), (\_ -> moveTo Prev NonEmptyWS )) + -- scroll wheel click, bottom right corner on trackball + , ((modMask, 6), (\w -> focus w >> kill)) + , ((modMask, 8), (\w -> focus w >> kill)) + ] + +mykeys x = [ + ((myMod, xK_Left), prevWS) + , ((myMod, xK_Right), nextWS) + , ((myMod .|. shiftMask, xK_Left), shiftToPrev >> prevWS) + , ((myMod .|. shiftMask, xK_Right), shiftToNext >> nextWS) + , ((myMod, xK_a), toggleWS) + , ((myMod, xK_z), shellPrompt myXPConfig) + , ((myMod, xK_g), goToSelected myGSConfig) + , ((myMod .|. shiftMask, xK_m), sendMessage $ Toggle MIRROR) + , ((myMod .|. shiftMask, xK_g), gridselectWorkspace myGSConfig greedyView) + , ((myMod, xK_x), sendMessage ToggleStruts) + , ((myMod, xK_F1), spawn "${HOME}/.screenlayout/`hostname`-work.sh") + , ((myMod, xK_F2), spawn "${HOME}/.screenlayout/`hostname`-home.sh") + , ((myMod, xK_F3), spawn "${HOME}/.screenlayout/`hostname`-solo.sh") + , ((myMod, xK_F4), spawn "sleep 0.5 && xset dpms force suspend") + , ((myMod, xK_F5), spawn "sleep 0.5 && xset dpms force off") + , ((myMod, xK_F6), spawn "sleep 0.5 && ${HOME}/bin/icd && ${HOME}/bin/mice.sh") + , ((myMod, xK_Up), spawn "sleep 0.5 && b u") + , ((myMod, xK_Down), spawn "sleep 0.5 && b d") + , ((myMod, xK_l), spawn "slock") + , ((myMod .|. myCtrl .|. shiftMask, xK_Right), sendMessage $ Move R) + , ((myMod .|. myCtrl .|. shiftMask, xK_Left), sendMessage $ Move L) + , ((myMod .|. myCtrl .|. shiftMask, xK_Up), sendMessage $ Move U) + , ((myMod .|. myCtrl .|. shiftMask, xK_Down), sendMessage $ Move D) + , ((myMod, xK_BackSpace), focusUrgent) + , ((myMod, xK_s), sendMessage $ ToggleLayout) + , ((myMod, xK_b), submap . fromList $ + [ ((m, k), f) + | m <- [0, myMod] + , (k, f) <- [ (xK_a, addWorkspacePrompt myXPConfig) + , (xK_c, withWorkspace myXPConfig + (windows . copy)) + , (xK_d, kill1) + , (xK_k, removeWorkspace) + , (xK_m, withWorkspace myXPConfig + (windows . shift)) + , (xK_o, killAllOtherCopies) + , (xK_r, renameWorkspace myXPConfig) + , (xK_s, selectWorkspace myXPConfig) + ] + ] + )] + +dvorakify kl = fromList $ map (\((m, k), d) -> ((m, dk k), d)) $ toList kl + where + dk :: KeySym -> KeySym + dk k | k == xK_grave = xK_dollar + | k == xK_asciitilde = xK_asciitilde + + | k == xK_1 = xK_ampersand + | k == xK_exclam = xK_percent + + | k == xK_2 = xK_bracketleft + | k == xK_at = xK_7 + + | k == xK_3 = xK_braceleft + | k == xK_numbersign = xK_5 + + | k == xK_4 = xK_braceright + | k == xK_dollar = xK_3 + + | k == xK_5 = xK_parenleft + | k == xK_percent = xK_1 + + | k == xK_6 = xK_equal + | k == xK_asciicircum = xK_9 + + | k == xK_7 = xK_asterisk + | k == xK_ampersand = xK_0 + + | k == xK_8 = xK_parenright + | k == xK_asterisk = xK_2 + + | k == xK_9 = xK_plus + | k == xK_parenleft = xK_4 + + | k == xK_0 = xK_bracketright + | k == xK_parenright = xK_6 + + | k == xK_minus = xK_exclam + | k == xK_underscore = xK_8 + + | k == xK_equal = xK_numbersign + | k == xK_plus = xK_grave + + | k == xK_q = xK_semicolon -- upper row, left side + | k == xK_Q = xK_colon + + | k == xK_w = xK_comma + | k == xK_W = xK_less + + | k == xK_e = xK_period + | k == xK_E = xK_greater + + | k == xK_bracketleft = xK_slash -- upper row, top right + | k == xK_braceleft = xK_question + + | k == xK_bracketright = xK_at + | k == xK_braceright = xK_asciicircum + + | k == xK_R = xK_P + | k == xK_T = xK_Y + | k == xK_Y = xK_F + | k == xK_U = xK_G + | k == xK_I = xK_C + | k == xK_O = xK_R + | k == xK_P = xK_L + | k == xK_A = xK_A + | k == xK_S = xK_O + | k == xK_D = xK_E + | k == xK_F = xK_U + | k == xK_G = xK_I + | k == xK_H = xK_D + | k == xK_J = xK_H + | k == xK_K = xK_T + | k == xK_L = xK_N + | k == xK_Z = xK_quotedbl + | k == xK_X = xK_Q + | k == xK_C = xK_J + | k == xK_V = xK_K + | k == xK_B = xK_X + | k == xK_N = xK_B + | k == xK_M = xK_M + + | k == xK_r = xK_p + | k == xK_t = xK_y + | k == xK_y = xK_f + | k == xK_u = xK_g + | k == xK_i = xK_c + | k == xK_o = xK_r + | k == xK_p = xK_l + | k == xK_a = xK_a + | k == xK_s = xK_o + | k == xK_d = xK_e + | k == xK_f = xK_u + | k == xK_g = xK_i + | k == xK_h = xK_d + | k == xK_j = xK_h + | k == xK_k = xK_t + | k == xK_l = xK_n + | k == xK_z = xK_apostrophe + | k == xK_x = xK_q + | k == xK_c = xK_j + | k == xK_v = xK_k + | k == xK_b = xK_x + | k == xK_n = xK_b + | k == xK_m = xK_m + + | k == xK_comma = xK_w -- bottom right + | k == xK_less = xK_W + + | k == xK_period = xK_v + | k == xK_greater = xK_V + + | k == xK_slash = xK_z + | k == xK_question = xK_Z + + | otherwise = k + +------------- +-- THEMES +------------- + +-- Color names are easier to remember: +colorBlack = "#000000" +colorOrange = "#ff7701" +-- colorDarkGray = "#171717" +-- colorPink = "#e3008d" +colorGreen = "#00aa4a" +colorBlue = "#008dd5" +colorYellow = "#fee100" +colorWhite = "#cfbfad" +-- colorBrightGreen = "#00FF00" +colorRed = "#FF0000" + +xftFont = "Inconsolata:size=8" + +newTheme :: ThemeInfo +newTheme = TI "" "" "" def + +rakTheme :: ThemeInfo +rakTheme = + newTheme { themeName = "rakTheme" + , themeAuthor = "Ryan Kavanagh" + , themeDescription = "Small decorations: orange and blue theme" + , theme = def { activeColor = colorBlack + , inactiveColor = colorBlack + , activeBorderColor = colorOrange + , inactiveBorderColor = colorBlack + , activeTextColor = colorOrange + , inactiveTextColor = colorBlue + , urgentColor = colorRed + , urgentTextColor = colorYellow + , decoHeight = 13 + , fontName = "Inconsolata" + } + } + +myTheme = theme rakTheme + +myXPConfig = def { + fgColor = "white" + , bgColor = "black" + , promptBorderWidth = 0 + , position = Bottom + , height = 15 + } + +----------------- +-- LAYOUTS +----------------- + +-- My workspaces + +myWorkspaces = ["term", "web", "chatter", "reading", "5", "music", "LaTeX"] + ++ (map show [8..20]) + +-- smartBorders removes borders when there's no ambiguity +myLayout = mkToggle (single MIRROR) (smartBorders $ toggleLayouts Full + $ avoidStruts perWS) + where + -- Per workspace layout selection. + perWS = onWorkspace "term" (myTall ||| customRyan) $ + onWorkspace "web" (tabbed shrinkText myTheme + ||| mySplit ||| myTCM) $ + onWorkspace "LaTeX" latexFirst $ + customRyan + + -- Each of these allows toggling through a set of layouts + -- in the same logical order, but from a different starting point. + customRyan = myGrid ||| myDish ||| Accordion ||| myCode + ||| myFixed ||| myTall + latexFirst = myFixed ||| customRyan + + -- This is a three column mode, with the master in the middle. + myTCM = ThreeColMid 1 (3/100) (1/2) + -- This is a tall-like layout with magnification. + -- The master window is fixed at 80 columns wide, making this good + -- for coding. Limited to 3 visible windows at a time to ensure all + -- are a good size. + myCode = limitWindows 3 $ magnifiercz' 1.4 $ FixedColumn 1 20 80 10 + + -- Stack with one large master window. + -- It's easy to overflow a stack to the point that windows are too + -- small, so only show first 5. + myDish = limitWindows 5 $ Dishes nmaster ratio + where + -- The default number of windows in the master pane + nmaster = 1 + -- Default proportion of screen occupied by other panes + ratio = 1/5 + + -- Split screen, optimized for web browsing. + mySplit = magnifiercz' 1.4 $ Tall nmaster delta ratio + where + -- The default number of windows in the master pane + nmaster = 1 + -- Percent of screen to increment by when resizing panes + delta = 3/100 + -- Default proportion of screen occupied by master pane + ratio = 60/100 + + -- Standard grid. + myGrid = Grid + + myFixed = FixedColumn 1 20 80 10 + + myTall = ResizableTall nmaster delta ratio [50/100] + where + nmaster = 1 + delta = 3/100 + ratio = 1/2 + +------------------- +-- STATUS BAR +------------------- + +statusBarCmd = "dzen2" ++ + " -dock" ++ + " -bg '" ++ colorBlack ++ "'" ++ + " -fg '" ++ colorBlue ++ "'" ++ + " -sa c" ++ + " -fn '" ++ xftFont ++ "'" ++ + " -w 925 -x 0 -y 0 -ta l -e ''" + +-- dynamiclog pretty printer for dzen +mPP h = def + { ppCurrent = dzenColor colorOrange colorBlack + , ppVisible = dzenColor colorGreen colorBlack + , ppHidden = dzenColor colorBlue colorBlack + , ppUrgent = dzenColor colorRed colorBlack . wrap "[" "]" + , ppSep = dzenColor "grey60" colorBlack " ^r(1x8) " + , ppTitle = dzenColor colorWhite colorBlack . trim + , ppOrder = \(ws:l:t:d:b:o) -> [b,d,ws,l,t] ++ o + , ppExtras = [date "%H:%M:%S", batteryCheck] + , ppOutput = hPutStrLn h + } + where + batteryCheck = logCmd ("${HOME}/.dzen/battery.sh") + +--------------------- +-- GENERAL CONFIG +-------------------- + +myGSConfig :: HasColorizer a => GSConfig a +myGSConfig = (buildDefaultGSConfig defaultColorizer) { gs_navigate = navNSearch } + +myManageHook = composeAll . concat $ + [ [ className =? c --> doFloat | c <- floats] + , [ className =? c --> viewShift "web" | c <- web] + , [ className =? c --> viewShift "chatter" | c <- chatter] + , [ className =? c --> viewShift "music" | c <- music] + , [ isFullscreen --> doFullFloat ] + ] + where + viewShift = doF . liftM2 (.) greedyView shift + floats = ["MPlayer"] + web = ["Firefox", "Firefox-esr", "Navigator", "google-chrome", "Google-chrome"] + chatter = ["slack", "Slack"] + music = ["pavucontrol", "Pavucontrol"] + +myConfig dzenPipe = docks $ def { + workspaces = myWorkspaces + , modMask = myMod + , terminal = myTerminal + , normalBorderColor = inactiveBorderColor myTheme + , focusedBorderColor = activeBorderColor myTheme + , borderWidth = 1 + , layoutHook = myLayout + , manageHook = manageHook def <+> myManageHook + , mouseBindings = myMouseBindings + , keys = \x -> (fromList $ mykeys x) + `union` dvorakify (keys def x) + , logHook = dynamicLogWithPP $ mPP dzenPipe + , handleEventHook = docksEventHook + } + +main = do + dzenPipe <- spawnPipe statusBarCmd + path <- getEnv "PATH" + home <- getEnv "HOME" + setEnv "PATH" (home ++ "/bin:" ++ path) + xmonad $ myConfig dzenPipe -- cgit v1.2.3