diff --git a/dotfiles/config/autorandr/home_tv/config b/dotfiles/config/autorandr/home_tv/config
index cd55f623..e32fd517 100644
--- a/dotfiles/config/autorandr/home_tv/config
+++ b/dotfiles/config/autorandr/home_tv/config
@@ -14,6 +14,6 @@ pos 0x0
rate 60.00
output DVI-D-0
mode 2560x1440
-pos 3840x0
+pos 0x2160
primary
rate 59.95
diff --git a/dotfiles/local/share/themes/MyEmacs/gtk-3.0/gtk-keys.css b/dotfiles/config/gtk-3.0/gtk.css
similarity index 72%
rename from dotfiles/local/share/themes/MyEmacs/gtk-3.0/gtk-keys.css
rename to dotfiles/config/gtk-3.0/gtk.css
index a3ee5a5c..e0db194f 100644
--- a/dotfiles/local/share/themes/MyEmacs/gtk-3.0/gtk-keys.css
+++ b/dotfiles/config/gtk-3.0/gtk.css
@@ -1,35 +1,3 @@
-/*
- * GTK - The GIMP Toolkit
- * Copyright (C) 2002 Owen Taylor
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see .
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
- * file for a list of people on the GTK+ Team. See the ChangeLog
- * files for a list of changes. These files are distributed with
- * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
- */
-
-/*
- * A keybinding set implementing Emacs-like keybindings
- */
-
-/*
- * Bindings for GtkTextView and GtkEntry
- */
@binding-set gtk-emacs-text-entry
{
bind "b" { "move-cursor" (logical-positions, -1, 0) };
@@ -53,6 +21,7 @@
bind "d" { "delete-from-cursor" (chars, 1) };
bind "d" { "delete-from-cursor" (word-ends, 1) };
bind "BackSpace" { "delete-from-cursor" (word-ends, -1) };
+ bind "backspace" { "delete-from-cursor" (word-ends, -1) };
bind "k" { "delete-from-cursor" (paragraph-ends, 1) };
bind "backslash" { "delete-from-cursor" (whitespace, 1) };
diff --git a/dotfiles/config/gtk-3.0/settings.ini b/dotfiles/config/gtk-3.0/settings.ini
index aafa871c..b80bbc3e 100644
--- a/dotfiles/config/gtk-3.0/settings.ini
+++ b/dotfiles/config/gtk-3.0/settings.ini
@@ -1,11 +1,11 @@
[Settings]
-gtk-key-theme-name=MyEmacs
+gtk-key-theme-name=Emacs
gtk-application-prefer-dark-theme=false
-gtk-theme-name=Adwaita-dark
+gtk-theme-name=Arc
gtk-fallback-icon-theme=gnome
-gtk-icon-theme-name=Paper
+gtk-icon-theme-name=Numix-Circle
gtk-font-name=Roboto 11
-gtk-cursor-theme-name=Paper
+gtk-cursor-theme-name=Breeze_Snow
gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_BOTH
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
@@ -15,5 +15,5 @@ gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-xft-antialias=1
gtk-xft-hinting=1
-gtk-xft-hintstyle=hintfull
+gtk-xft-hintstyle=hintslight
gtk-xft-rgba=rgb
diff --git a/dotfiles/config/mimeapps.list b/dotfiles/config/mimeapps.list
index 6be41579..a25ad93d 100644
--- a/dotfiles/config/mimeapps.list
+++ b/dotfiles/config/mimeapps.list
@@ -10,8 +10,8 @@ image/png=okularApplication_kimgio.desktop;
video/mp4=vlc.desktop;org.gnome.Totem.desktop;
[Default Applications]
-text/html=google-chrome-unstable.desktop
-x-scheme-handler/http=google-chrome-unstable.desktop
-x-scheme-handler/https=google-chrome-unstable.desktop
-x-scheme-handler/about=google-chrome-unstable.desktop
-x-scheme-handler/unknown=google-chrome-unstable.desktop
+text/html=google-chrome.desktop
+x-scheme-handler/http=google-chrome.desktop
+x-scheme-handler/https=google-chrome.desktop
+x-scheme-handler/about=google-chrome.desktop
+x-scheme-handler/unknown=google-chrome.desktop
diff --git a/dotfiles/config/xmonad/xmonad.hs b/dotfiles/config/xmonad/xmonad.hs
index faca85c5..f41efd79 100644
--- a/dotfiles/config/xmonad/xmonad.hs
+++ b/dotfiles/config/xmonad/xmonad.hs
@@ -436,7 +436,8 @@ chromeTabAction doSplit action selected =
-- done with the existing window bringer interface
myWindowAct c@WindowBringerConfig {menuCommand = cmd, menuArgs = args} action = do
visible <- visibleWindows
- ws <- windowMap' c {windowFilter = not . flip elem visible}
+ -- Uncomment filter to remove windows that are visible
+ ws <- windowMap' c -- {windowFilter = not . flip elem visible}
-- chromeTabs <- liftIO getChromeTabInfo
let options = M.union (M.map Left ws) (M.map Right M.empty)
selection <- DM.menuMapArgs cmd args options
@@ -704,7 +705,7 @@ getWindowWS a = withWindowSet $ \ws -> return $ listToMaybe
replaceWindow original replacement =
W.delete original . swapWindows original replacement
-myKill =
+chromeReplaceKill =
withFocused $ \w -> do
vClass <- getClass w
if vClass == "Chrome" then
@@ -906,7 +907,7 @@ addKeys conf@XConfig { modMask = modm } =
, ((modalt, xK_Return), deactivateFullAnd restoreAllMinimized)
, ((modm .|. controlMask, xK_t),
setReplaceTarget >> spawn "chromix-too open chrome://newtab")
- , ((modm .|. shiftMask, xK_c), myKill)
+ , ((mod .|. controlMask, xK_c), chromeReplaceKill)
, ((hyper, xK_g), gatherThisClass)
-- Directional navigation
diff --git a/dotfiles/emacs.d/README.org b/dotfiles/emacs.d/README.org
index f7c6518f..b8c43549 100644
--- a/dotfiles/emacs.d/README.org
+++ b/dotfiles/emacs.d/README.org
@@ -1043,6 +1043,20 @@ I keep it around just in case I need it.
(fset 'extract-and-name-use-package-block
[?\C-a return ?\C-p ?# ?+ ?E ?N ?D ?_ ?S ?R ?C return ?# ?+ ?B ?E ?G ?I ?N ?_ ?S ?R ?C ? ?e ?m ?a ?c ?s ?- ?l ?i ?s ?p ?\C-a ?\C-p ?\C- ?\C-n ?\C-e ?\M-w ?\C-n ?\C-a ?\C-\M-f return ?\C-y ?\C-p ?\C-p ?\C-c ?\' ?\M-< ?\C-s ?u ?s ?e ?- ?p ?a ?c ?k return ?\C-\M-f ?\C-f ?\C- ?\C-\M-f ?\M-w ?\C-c ?\' ?\C-r ?B ?E ?G ?I ?N return ?\C-a ?\C-p ?\C-e return ?* ? ?\C-y])
#+END_SRC
+* Man-mode
+Man page escape sequences aren't properly handled by emacs pager. This function
+fixes that, but for now, it needs to be run manually, since I haven't figured
+out how to detect that a buffer is a man mode buffer.
+#+BEGIN_SRC emacs-lisp
+(use-package man
+ :config
+ (progn
+ (defun imalison:fontify-man-page-buffer ()
+ (interactive)
+ (read-only-mode -1)
+ (Man-fontify-manpage)
+ (read-only-mode +1))))
+#+END_SRC
* General
** User Info
#+BEGIN_SRC emacs-lisp
@@ -1154,7 +1168,7 @@ Disabling line numbers because they are slow as fuck.
#+END_SRC
*** frame-mode
#+BEGIN_SRC emacs-lisp
-(defvar imalison:use-frame-mode t)
+(defvar imalison:use-frame-mode nil)
(use-package frame-mode
:if imalison:use-frame-mode
:demand t
@@ -2758,7 +2772,6 @@ The following is taken from [[https://github.com/syl20bnr/spacemacs/blob/a650877
**** haskell-ide-engine
#+BEGIN_SRC emacs-lisp
(use-package lsp-haskell
- :disabled t
:config
(add-hook 'haskell-mode-hook 'lsp-haskell-enable))
#+END_SRC
@@ -3057,14 +3070,19 @@ Intero seems to be causing hangs, so it has been disabled
(add-hook 'org-mode-hook 'imalison:load-babel-languages)
(defun imalison:load-babel-languages ()
- (org-babel-do-load-languages
- 'org-babel-load-languages
- '((sh . t)
- (python . t)
- (ruby . t)
- (octave . t)
- (sqlite . t)
- (plantuml . t))))
+ (let* ((loaded-ob (or (require 'ob-sh nil t) (require 'ob-shell nil t)))
+ (ob-shell-name
+ (when loaded-ob
+ (intern (substring-no-properties (imalison:maybe-symbol-name loaded-ob) 3))))
+ (added-modes (when ob-shell-name `((,ob-shell-name . t)))))
+ (org-babel-do-load-languages
+ 'org-babel-load-languages
+ `((python . t)
+ (ruby . t)
+ (octave . t)
+ (sqlite . t)
+ (plantuml . t)
+ ,@added-modes))))
(setq org-log-into-drawer t
org-log-reschedule t
@@ -3201,6 +3219,7 @@ Intero seems to be causing hangs, so it has been disabled
(add-to-list 'org-capture-templates
`("c" "Calendar entry" entry
+ (file ,imalison:org-calendar-file)
,(format "%s\n%s\n%s" "* %?" imalison:created-property-string "%^T")))
(add-to-list 'org-capture-templates
@@ -3484,6 +3503,11 @@ alphanumeric characters only."
:after org-projectile
:bind (("C-c n p" . org-projectile-helm-template-or-project)))
#+END_SRC
+**** org-pomodoro
+#+BEGIN_SRC emacs-lisp
+(use-package org-pomodoro
+ :after org)
+#+END_SRC
**** org-super-agenda
#+BEGIN_SRC emacs-lisp
(use-package org-super-agenda
@@ -4506,23 +4530,7 @@ This is useful with server mode when editing gmail messages. I think that it is
:defer t
:config
(progn
- (defun alert-notifier-notify (info)
- (if alert-notifier-command
- (let ((args
- (list "-title" (alert-encode-string (plist-get info :title))
- "-activate" "org.gnu.Emacs"
- "-message" (alert-encode-string (plist-get info :message))
- "-execute" (format "\"%s\"" (switch-to-buffer-command (plist-get info :buffer))))))
- (apply #'call-process alert-notifier-command nil nil nil args))
- (alert-message-notify info)))
-
- (defun switch-to-buffer-command (buffer-name)
- (emacsclient-command (format "(switch-to-buffer \\\"%s\\\")" buffer-name)))
-
- (defun emacsclient-command (command)
- (format "emacsclient --server-file='%s' -e '%s'" server-name command))
-
- (setq alert-default-style 'notifier)))
+ (setq alert-default-style 'libnotify)))
#+END_SRC
** sauron
#+BEGIN_SRC emacs-lisp
@@ -4859,7 +4867,8 @@ Ensure all themes that I use are installed:
(spaceline-helm-mode)
;; 'spaceline-gh-notifier and 'imalison:muni disabled for now
- (spaceline-spacemacs-theme)))
+ (spaceline-spacemacs-theme)
+ (spaceline-toggle-org-pomodoro-on)))
#+END_SRC
** page-break-lines
#+BEGIN_SRC emacs-lisp
diff --git a/dotfiles/lib/bin/taffybar b/dotfiles/lib/bin/taffybar
index c3b3e0bd..3d838f78 100755
--- a/dotfiles/lib/bin/taffybar
+++ b/dotfiles/lib/bin/taffybar
@@ -2,4 +2,12 @@
# -*- mode:sh
cd "$HOME/.config/taffybar"
-stack run
+stack install
+
+if command_exists "imalison-taffybar"; then
+ imalison-taffybar "$@"
+else
+ # Move .lib/bin to the end of PATH so that this script is not called again
+ add_to_path "$HOME/.lib/bin" --after
+ taffybar "$@"
+fi
diff --git a/dotfiles/lib/python/boggle.py b/dotfiles/lib/python/boggle.py
index a021bf2b..e3292201 100644
--- a/dotfiles/lib/python/boggle.py
+++ b/dotfiles/lib/python/boggle.py
@@ -42,6 +42,15 @@ def build_board(size=4):
]
+def board_string(board_to_draw):
+ border_line = "+{0}+".format((len(board_to_draw[0]) * 2 - 1) * "-")
+ return "{border_line}\n{contents}\n{border_line}".format(
+ contents="\n".join("|{0}|".format(" ".join(letter_line))
+ for letter_line in board_to_draw),
+ border_line=border_line,
+ )
+
+
def build_trie():
node = TrieNode()
with open('/usr/share/dict/words') as the_file:
@@ -57,7 +66,7 @@ class Boggle(object):
@classmethod
def new_random(cls, trie):
- return cls(build_board(), trie)
+ return cls(build_Board(), trie)
def __init__(self, board, trie):
self.height = len(board)
@@ -154,5 +163,5 @@ def build_board_from_dice_roll(dice=None, row_size=4):
if __name__ == '__main__':
dict_trie = build_trie()
board = build_board_from_dice_roll()
- print(board)
+ print(board_string(board))
print(list(Boggle(board, dict_trie).run()))