Code Monkey home page Code Monkey logo

dotfiles's Introduction

hrs’s dotfiles

I hope you like fiddling with your .emacs.d ad nauseam, ‘cause I obviously do.

I’m currently running Debian on a desktop with a single monitor. I use the i3 window manager, Firefox, and Emacs.

You’re probably here for my literate Emacs config! Most of my time is spent in either Emacs or Firefox. I think a text editor is just a terrific environment for editing text, so I use Emacs for all kinds of things that “normal” people use specialized tools for, including:

  • Task management and general writing with Org,
  • Email browsing with mu4e, backed by:
    • mbsync for synchronization over IMAP,
    • msmtp for sending messages over SMTP,
    • mu for managing a local searchable index,
    • gpg for encryption and signatures,
    • org-contacts for managing contacts and addresses, and
    • Fastmail for hosting,
  • RSS feed reading and management with elfeed and elfeed-org, with keybindings to send articles to Instapaper to read on my phone later,
  • Git with magit, and
  • File management with dired and async.

There’s also a lot of programming-specific configuration in there. I write a lot of Ruby, but there’s plenty of other stuff in there.

I also use some non-Emacs tools! I like:

  • zathura as a PDF viewer,
  • feh as my image viewer,
  • pass for password management,
  • rofi for launching applications, and to use with a few custom scripts,
  • mpv and youtube-dl for watching videos,
  • calibre for managing books and syncing to my Kindle, and
  • a hodgepodge of Signal, Telegram, Skype, Zoom, and Slack for synchronous communication. I can’t say I really like any of them, aside from Signal (most of the time), but network effects mean the matter’s mostly out of my hands.

This whole repository isn’t really intended for anyone’s use but my own, and of course it’s catered to my way of doing things, so, you know, be prepared for that.

Enjoy! =)

Installation

Clone this thing wherever you like (I use ~/.dotfiles) and run the install.sh script. That will:

  • Install a bunch of Debian packages,
  • Set up a bunch of symlinks in your home directory (e.g., ~/.bashrc~/.dotfiles/bash/.bashrc), and
  • Install a handful of required Ruby gems.

It (mostly) won’t overwrite existing files, so move those out of the way first.

Wallpaper

To ensure that wallpaper is set correctly, create a ~/.wallpaper-directory symlink to the directory where you keep your wallpapers:

$ ln -s /where/your/wallpapers/live ~/.wallpaper-directory

dotfiles's People

Contributors

albertyw avatar artyhedgehog avatar benreyn avatar bitdeli-chef avatar hrs avatar parjanya avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dotfiles's Issues

What about .emacs.d

Hello Harry,

I've been using your talks (on youtube and Sacha Chua's interview) to get up to speed using emacs and org-mode. I'm much indebted and thank you.

Question about stowing my .emacs.d directory. I'm using your "Literate Config.org" recommendation which has my ~/.emacs file pointing to ~/.emacs.d/config.org (init). I want to git my emacs setup so it can be cloned on any computer. Trouble is, I don't know what to do with .emacs.d directory. Its CHOCK full of stuff that I likely don't want/need to put under VC.

Can you give some direction on how you handle yours?

Take care!

Spacemacs compatibility

Hello Harry,
Emacs newbie here (mainly use vim) for your epic org-mode configs. I'm currently on spacemacs because it was recommended to me by my emacs buddies. Would you recommend folding your configs into spacemacs, or starting over on vanilla emacs?
Thanks,
Nick

Use ensure-system-package where appropriate

A number of my Emacs packages rely on system binaries. use-package includes an extension to make that dependency explicit and to install the packages using the system's package manager if they're not already available.

I'm currently installing all my system binaries in a shell script, but maybe some of 'em would be more appropriate in use-package declarations instead?

Some blocks don't evaluate. Must `M-x eval-r` to initialize.

I've been having a great time setting up my literate emacs init file using your method. Not sure how to debug a code block that won't initialize during startup though. Here is an example block that I have to run M-x eval-r to initialize. Why isn't this "firing" up with the rest of the source blocks in my config.org file?

Any ideas?

* Calfw setup
#+BEGIN_SRC 
(require 'calfw)
(require 'calfw-org)

(defun my-open-calendar ()
  (interactive)
  (cfw:open-calendar-buffer
   :contents-sources
   (list
    (cfw:org-create-source "Green")  ; orgmode source
)))
#+END_SRC

Thanks

`hrs/set-font-size` gets 'stuck' for new frames

Hi, I've been trying your font changing functions and found that the font size setting for new frames gets 'stuck'. Because hrs/set-font-size uses (add-to-list 'default-frame-alist (cons 'font font-code)), if default-frame-alist contains that same cell already it won't be prepended again. If you increase and decrease the font size you end up with it having a value such as:

((font . "Inconsolata-14")
 (font . "Inconsolata-16"))

And then if you increase again, the setting of 16 will not be added and new frames will be size 14, out of sync with existing frames. I am using a local change to use setcdr if 'font is already set:

(defun hrs/set-font-size ()
  "Set the font to `hrs/default-font' at `hrs/current-font-size'.
Set that for the current frame, and also make it the default for
other, future frames."
  (let ((font-code (hrs/font-code)))
    (if (assoc 'font default-frame-alist)
        (setcdr (assoc 'font default-frame-alist) font-code)
      (add-to-list 'default-frame-alist (cons 'font font-code)))
    (set-frame-font font-code nil t)))

use-package-always-ensure doesn't work (missing require)

In your configuration.org, you use (setq use-package-always-ensure t) to make sure that when you use a package with use-package <package>, it automatically gets installed if not present (at lest this is what I understand).

I've tried this, and the next line fails: (use-package auto-compile [...]) fails with something like cannot find auto-compile. By looking at use-package github page here, I see that they use (require 'use-package-ensure) before. So I tried adding this before, and it works.

So it might be useful :-)

Error installing and loading some packages

Hello,

I get following errors after using configuration.org file:

Error (use-package): Failed to install evil: Failed to verify signature: "undo-tree-0.6.5.el.sig"
Error (use-package): Cannot load evil
Error (use-package): Failed to install evil-collection: Failed to verify signature: "undo-tree-0.6.5.el.sig"
Error (use-package): Failed to install evil-surround: Failed to verify signature: "undo-tree-0.6.5.el.sig"
Error (use-package): Cannot load evil-surround
Error (use-package): Failed to install evil-org: Failed to verify signature: "undo-tree-0.6.5.el.sig"
Error (use-package): Cannot load evil-org
Error (use-package): Failed to install moody: Package ‘emacs-25.3’ is unavailable
Error (use-package): Cannot load moody
Warning (initialization): An error occurred while loading ‘/home/khan/.emacs’:

error: Font not available, #<font-spec nil nil Inconsolata-11 nil nil nil nil nil nil nil nil nil ((:name . Inconsolata-11) (:user-spec . Inconsolata-11))>

To ensure normal operation, you should investigate and remove the
cause of the error in your initialization file. Start Emacs with
the ‘--debug-init’ option to view a complete error backtrace.

Can anyone help me here?

Thanks,
Mohsin

Install pygmentize

We need that for syntax highlighting with minted, which is used when generating LaTeX documents from Org.

This'll entail adding the python3 package. We'll also need to run pip3 install pygmentize somewhere, probably in a new script.

Error installing packages

I get the following errors when rebooting emacs.

Error (use-package): Cannot load evil-magit
Error (use-package): Cannot load git-timemachine

Org-ellipsis from your video?

The current ellipsis is . However, when I put it in my config file, it does not look like the one in your video "Getting Started With Org Mode". I prefer that one, as it resembles a healthier looking penis than the current one. Do you happen to know where I can get it?

Thanks. And I'm glad I came across that video and then see your well-documented and organized org-mode style config, very valuable for a newbie.

P.S. It seems that you don't use line numbers? (Just did a quick search of linum--I'm curious because I've read that the solutions to using relative numbers in Emacs are not deal as they usually don't deal with folding, have performance issues, etc.)

Errors after opening emacs using configuration.org

Hey,

I am receiving a bunch of errors after opening emacs. I ran "emacs --debug-init". Following are the errors I am having:

Debugger entered--Lisp error: (error "Font not available" #<font-spec nil nil Inconsolata-11 nil nil nil nil nil nil nil nil nil ((:name . "Inconsolata-11") (:user-spec . "Inconsolata-11"))>) internal-set-lisp-face-attribute(default :font "Inconsolata-11" #<frame emacs@khan-Latitude-5491 0x1432c30>) set-face-attribute(default #<frame emacs@khan-Latitude-5491 0x1432c30> :width normal :weight normal :slant normal :font "Inconsolata-11") set-frame-font("Inconsolata-11") (let ((font-code (hrs/font-code))) (if (assoc (quote font) default-frame-alist) (setcdr (assoc (quote font) default-frame-alist) font-code) (add-to-list (quote default-frame-alist) (cons (quote font) font-code))) (set-frame-font font-code)) hrs/set-font-size() hrs/reset-font-size() eval-buffer(#<buffer *load*-23261> nil "/home/khan/Documents/Development/emacs/configuration.el" nil t) ; Reading at buffer position 6590 load-with-code-conversion("/home/khan/Documents/Development/emacs/configuration.el" "/home/khan/Documents/Development/emacs/configuration.el" nil nil) load("/home/khan/Documents/Development/emacs/configuration.el" nil nil t) load-file("~/Documents/Development/emacs/configuration.el") org-babel-load-file("~/Documents/Development/emacs/configuration.org") eval-buffer(#<buffer *load*> nil "/home/khan/.emacs" nil t) ; Reading at buffer position 758 load-with-code-conversion("/home/khan/.emacs" "/home/khan/.emacs" t t) load("~/.emacs" t t) #f(compiled-function () #<bytecode 0x25e919>)() command-line() normal-top-level()

Can anybody help me here?

Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.