Hello world

This commit is contained in:
Frederik Hanghøj Iversen 2018-08-23 21:41:28 +02:00
commit a99279b996
6 changed files with 736 additions and 0 deletions

188
emacs.el Normal file
View file

@ -0,0 +1,188 @@
;;;; Initialization
(require 'package)
(add-to-list 'package-archives
'("MELPA Stable" . "https://stable.melpa.org/packages/") t)
(package-initialize)
;;; Variables
(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.
'(agda2-program-args nil)
'(blink-cursor-mode nil)
'(custom-enabled-themes (quote (spacemacs-dark)))
'(custom-safe-themes
(quote
("bffa9739ce0752a37d9b1eee78fc00ba159748f50dc328af4be661484848e476")))
'(echo-keystrokes 0.001)
'(package-selected-packages
(quote
(purescript-mode dash-functional dash lsp-mode yaml-mode spacemacs-theme restart-emacs markdown-mode magit idris-mode helm haskell-mode haml-mode form-feed dashboard))))
(menu-bar-mode -1)
(tool-bar-mode -1)
;;;; Fonts
(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.
'(default ((t (:inherit nil :stipple nil :background "#292b2e" :foreground "#b2b2b2" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 145 :width normal :foundry "ADBE" :family "Source Code Pro"))))
'(agda2-highlight-catchall-clause-face ((t (:box (:line-width 1 :color "white smoke")))))
'(agda2-highlight-coverage-problem-face ((t (:box (:line-width 1 :color "wheat")))))
'(agda2-highlight-datatype-face ((t (:foreground "royal blue"))))
'(agda2-highlight-function-face ((t (:foreground "dodger blue"))))
'(agda2-highlight-number-face ((t (:foreground "purple"))))
'(agda2-highlight-postulate-face ((t (:foreground "royal blue"))))
'(agda2-highlight-primitive-face ((t (:foreground "royal blue"))))
'(agda2-highlight-primitive-type-face ((t (:foreground "royal blue"))))
'(agda2-highlight-reachability-problem-face ((t (:box (:line-width 1 :color "dark gray")))))
'(agda2-highlight-record-face ((t (:foreground "royal blue"))))
'(agda2-highlight-termination-problem-face ((t (:box (:line-width 1 :color "light salmon")))))
'(agda2-highlight-unsolved-constraint-face ((t (:box (:line-width 1 :color "Gold")))))
'(agda2-highlight-unsolved-meta-face ((t (:box (:line-width 1 :color "Gold")))))
'(custom-group-tag ((t (:inherit variable-pitch :foreground "light blue" :weight bold :height 1))))
'(custom-group-tag-1 ((t (:inherit variable-pitch :foreground "pink" :weight bold :height 1))))
'(markdown-header-face-1 ((t (:inherit bold :foreground "#4f97d7" :height 1.0))))
'(markdown-header-face-2 ((t (:inherit bold :foreground "#2d9574" :height 1.0))))
'(markdown-header-face-3 ((t (:foreground "#67b11d" :weight normal :height 1.0))))
'(whitespace-trailing ((t (:background "#542b2e")))))
;;;; Agda
(load-file (let ((coding-system-for-read 'utf-8))
(shell-command-to-string "agda-mode locate")))
;; ;; This will make e.g. make Agda's input-method avaiable for
;; ;; activation globally.
(require 'agda-input)
;;;; Captain Hook
(add-hook 'text-mode-hook 'recentf-mode)
(add-hook 'text-mode-hook 'column-number-mode)
(add-hook 'text-mode-hook 'flyspell-mode)
(add-hook 'prog-mode-hook 'form-feed-mode)
;; I think this breaks e.g. the color-picker
; (add-hook 'text-mode-hook 'form-feed-mode)
(add-hook 'haskell-mode-hook 'interactive-haskell-mode)
;; global-company-mode keeps recentering the point on the screen for
;; some reason
; (add-hook 'after-init-hook 'global-company-mode)
;; (add-hook 'after-init-hook 'flycheck-mode)
;; ;; (require 'haskell-unicode-input-method)
;;;; Flycheck
(global-set-key (kbd "C-c f") 'flyckeck-next-error)
(global-set-key (kbd "C-c b") 'flycheck-prev-error)
;;;; Dashboard
(dashboard-setup-startup-hook)
;; (setq dashboard-startup-banner 'logo)
;;;; Helm
;; ;; Enable helm's recent files
;; (setq recentf-max-menu-items 25)
;; (global-set-key (kbd "C-x C-r") 'helm-recentf)
;; ;; Use helm by default
;; (define-key global-map [remap find-file] 'helm-find-files)
;; (define-key global-map [remap occur] 'helm-occur)
;; (define-key global-map [remap list-buffers] 'helm-buffers-list)
;; (define-key global-map [remap dabbrev-expand] 'helm-dabbrev)
;; (define-key global-map [remap execute-extended-command] 'helm-M-x)
;; ;; Swap TAB and C-j
;; (define-key helm-find-files-map "\t" 'helm-execute-persistent-action)
;; (define-key helm-find-files-map (kbd "C-j") 'helm-select-action)
;; ;; (defun scroll-down-half ()
;; ;; (interactive)
;; ;; (move-to-window-line nil)
;; ;; (recenter-top-bottom 0))
;; ;; (defun scroll-up-half ()
;; ;; (interactive)
;; ;; (move-to-window-line nil)
;; ;; (recenter-top-bottom -1))
;; (global-set-key (kbd "C-S-v") 'scroll-down-half)
;; (global-set-key (kbd "C-M-v") 'scroll-up-half)
(setenv "MANWIDTH" "72")
(setq-default indent-tabs-mode nil)
(put 'downcase-region 'disabled nil)
(setq ring-bell-function
(lambda ()
(let ((orig-fg (face-foreground 'mode-line)))
(set-face-foreground 'mode-line "#F2804F")
(run-with-idle-timer 0.1 nil
(lambda (fg) (set-face-foreground 'mode-line fg))
orig-fg))))
(global-unset-key (kbd "C-z"))
(require 'haskell-unicode-input-method)
(add-hook 'haskell-mode-hook
(lambda () (set-input-method "haskell-unicode")))
;; (turn-on-purescript-indentation)
(global-set-key (kbd "C-x g") 'magit-status)
;; Haskell IDE
(add-to-list 'load-path "/home/fredefox/.emacs.d/git/lsp-mode")
(add-to-list 'load-path "/home/fredefox/.emacs.d/git/lsp-ui")
(add-to-list 'load-path "/home/fredefox/.emacs.d/git/lsp-haskell")
;; (require 'lsp-mode)
;; (require 'lsp-ui)
;; (require 'lsp-haskell)
;; (lsp-define-stdio-client
;; ;; This can be a symbol of your choosing. It will be used as a the
;; ;; prefix for a dynamically generated function "-enable"; in this
;; ;; case: lsp-prog-major-mode-enable
;; lsp-prog-major-mode
;; "language-id"
;; ;; This will be used to report a project's root directory to the LSP
;; ;; server.
;; (lambda () default-directory)
;; ;; This is the command to start the LSP server. It may either be a
;; ;; string containing the path of the command, or a list wherein the
;; ;; car is a string containing the path of the command, and the cdr
;; ;; are arguments to that command.
;; '("/my/lsp/server" "and" "args"))
;; ;; Here we'll add the function that was dynamically generated by the
;; ;; call to lsp-define-stdio-client to the major-mode hook of the
;; ;; language we want to run it under.
;; ;;
;; ;; This function will turn lsp-mode on and call the command given to
;; ;; start the LSP server.
;; ;; (add-hook 'prog-major-mode #'lsp-prog-major-mode-enable)
;; ;; (add-hook 'lsp-mode-hook 'lsp-ui-mode)
;; ;; (add-hook 'haskell-mode-hook #'lsp-haskell-enable)
;; ;; (add-hook 'haskell-mode-hook 'flycheck-mode)
(show-paren-mode)
(fset 'haskell/def
[M-backspace ?\C-y ? ?: ?: ? ?_ return ?\C-y ? ?= ? ?_ ?\C-y])
;; (global-set-key (kbd "C-x C-e") 'magit-status)
(setq x-select-enable-clipboard t)

81
git-projects.yaml Normal file
View file

@ -0,0 +1,81 @@
agda:
- agda
AlDanial:
- cloc
citizennet:
- purescript-halogen-template
daherb:
- GF-latin
ekmett:
- succinct-binary
fredefox:
- cat
- dotfiles
- ethambda-agda
- ethambda-hs
- ethambda-idr
- fredefox.github.io
- frelude
- hal-basic
- mono-traversable
- naughty-nice
- rhyme
- symbols
- time-keeper
- val
GrammaticalFramework:
- gf-contrib
- gf-core
- gf-rgl
haikarainen:
- light
haskell:
- haddock
- haskell-ide-engine
haskell-suite:
- haskell-src-exts
idris-lang:
- Idris-dev
janmasrovira:
- masters-thesis-doc
- phileas
MUSTE-Project:
- digestive-functors
- Mulle
- muste-ajax.hlint
- muste-elm
- muste.hlint
- pgf
- runall.hs
- snap-extras
- sqlite-simple
- stuff
- weeds
- #worklog.yaml#
- worklog.yaml
- worklog.yaml~
nurpax:
- sqlite-simple
PandorasFox:
- i3lock-color
sciurus:
- i3tree
sdiehl:
- protolude
- repline

7
git.config Normal file
View file

@ -0,0 +1,7 @@
[user]
email = fhi.1990@gmail.com
name = Frederik Hanghøj Iversen
signkey = 7B95683D8994C3BFF599784A6A3245752F02B908
signingkey = 7B95683D8994C3BFF599784A6A3245752F02B908
[core]
excludesfile = /home/fredefox/.config/git/ignore

228
i3.config Normal file
View file

@ -0,0 +1,228 @@
# 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 https://i3wm.org/docs/userguide.html for a complete reference!
set $mod Mod4
# 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 11
# 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
# 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 doesnt 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
# kill focused window
bindsym $mod+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
# launch apps
bindsym $mod+e exec sensible-editor
bindsym $mod+b exec sensible-browser
bindsym $mod+semicolon 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+j move left
bindsym $mod+Shift+k move down
bindsym $mod+Shift+l move up
bindsym $mod+Shift+semicolon move right
# 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+t layout tabbed
bindsym $mod+h layout splith
bindsym $mod+v layout splitv
# 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
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
set $ws1 "1"
set $ws2 "2"
set $ws3 "3"
set $ws4 "4"
set $ws5 "5"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8"
set $ws9 "9"
set $ws10 "10"
# switch to workspace
bindsym $mod+1 workspace $ws1
bindsym $mod+2 workspace $ws2
bindsym $mod+3 workspace $ws3
bindsym $mod+4 workspace $ws4
bindsym $mod+5 workspace $ws5
bindsym $mod+6 workspace $ws6
bindsym $mod+7 workspace $ws7
bindsym $mod+8 workspace $ws8
bindsym $mod+9 workspace $ws9
bindsym $mod+0 workspace $ws10
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace $ws1
bindsym $mod+Shift+2 move container to workspace $ws2
bindsym $mod+Shift+3 move container to workspace $ws3
bindsym $mod+Shift+4 move container to workspace $ws4
bindsym $mod+Shift+5 move container to workspace $ws5
bindsym $mod+Shift+6 move container to workspace $ws6
bindsym $mod+Shift+7 move container to workspace $ws7
bindsym $mod+Shift+8 move container to workspace $ws8
bindsym $mod+Shift+9 move container to workspace $ws9
bindsym $mod+Shift+0 move container to workspace $ws10
# 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+Escape 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 windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows 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 or $mod+r
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+r mode "default"
}
bindsym $mod+r mode "resize"
set $base00 #101218
set $base01 #1f222d
set $base02 #252936
set $base03 #7780a1
set $base04 #C0C5CE
set $base05 #d1d4e0
set $base06 #C9CCDB
set $base07 #ffffff
set $base08 #ee829f
set $base09 #f99170
set $base0A #ffefcc
set $base0B #a5ffe1
set $base0C #97e0ff
set $base0D #97bbf7
set $base0E #c0b7f9
set $base0F #fcc09e
# Widow Colours
client.focused $base0D $base0D $base00 $base01
client.focused_inactive $base02 $base02 $base03 $base01
client.unfocused $base01 $base01 $base03 $base01
client.urgent $base02 $base08 $base07 $base08
# Bar
bar {
# status_command i3status
status_command i3blocks
tray_output primary
colors {
separator $base03
background $base01
statusline $base05
focused_workspace $base0C $base0D $base00
active_workspace $base02 $base02 $base07
inactive_workspace $base01 $base01 $base03
urgent_workspace $base08 $base08 $base07
}
}
hide_edge_borders both
# 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 light -A 5 # increase screen brightness
bindsym XF86MonBrightnessDown exec light -U 5 # decrease screen brightness
# Touchpad controls
# bindsym XF86TouchpadToggle exec /some/path/toggletouchpad.sh # toggle touchpad
# Media player controls
bindsym XF86AudioPlay exec playerctl play
bindsym XF86AudioPause exec playerctl pause
bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous
exec "setxkbmap -option grp:win_space_toggle -layout us,dk"
bindsym $mod+l exec "i3lock -c 1e0023"

153
i3blocks.config Normal file
View file

@ -0,0 +1,153 @@
# i3blocks config file
#
# Please see man i3blocks for a complete reference!
# The man page is also hosted at http://vivien.github.io/i3blocks
#
# List of valid properties:
#
# align
# color
# command
# full_text
# instance
# interval
# label
# min_width
# name
# separator
# separator_block_width
# short_text
# signal
# urgent
# Global properties
#
# The top properties below are applied to every block, but can be overridden.
# Each block command defaults to the script name to avoid boilerplate.
command=/usr/share/i3blocks/$BLOCK_NAME
separator_block_width=15
markup=none
# Volume indicator
#
# The first parameter sets the step (and units to display)
# The second parameter overrides the mixer selection
# See the script for details.
[volume]
#label=VOL
label=♪
instance=Master
#instance=PCM
interval=1
signal=10
# Memory usage
#
# The type defaults to "mem" if the instance is not specified.
[memory]
label=MEM
separator=false
interval=30
[memory]
label=SWAP
instance=swap
separator=false
interval=30
# Disk usage
#
# The directory defaults to $HOME if the instance is not specified.
# The script may be called with a optional argument to set the alert
# (defaults to 10 for 10%).
[disk]
label=HOME
#instance=/mnt/data
interval=30
# Network interface monitoring
#
# If the instance is not specified, use the interface used for default route.
# The address can be forced to IPv4 or IPv6 with -4 or -6 switches.
[iface]
#instance=wlan0
color=#00FF00
interval=10
separator=false
[wifi]
#instance=wlp3s0
interval=10
separator=false
[bandwidth]
#instance=eth0
interval=5
# CPU usage
#
# The script may be called with -w and -c switches to specify thresholds,
# see the script for details.
[cpu_usage]
label=CPU
interval=10
min_width=CPU: 100.00%
#separator=false
#[load_average]
#interval=10
# Battery indicator
#
# The battery instance defaults to 0.
[battery]
#label=BAT
label=⚡
#instance=1
interval=30
# Date Time
#
[time]
command=date '+%Y-%m-%d %H:%M:%S'
interval=1
# Generic media player support
#
# This displays "ARTIST - SONG" if a music is playing.
# Supported players are: spotify, vlc, audacious, xmms2, mplayer, and others.
#[mediaplayer]
#instance=spotify
#interval=5
#signal=10
# OpenVPN support
#
# Support multiple VPN, with colors.
#[openvpn]
#interval=20
# Temperature
#
# Support multiple chips, though lm-sensors.
# The script may be called with -w and -c switches to specify thresholds,
# see the script for details.
#[temperature]
#label=TEMP
#interval=10
# Key indicators
#
# Add the following bindings to i3 config file:
#
# bindsym --release Caps_Lock exec pkill -SIGRTMIN+11 i3blocks
# bindsym --release Num_Lock exec pkill -SIGRTMIN+11 i3blocks
#[keyindicator]
#instance=CAPS
#interval=once
#signal=11
#[keyindicator]
#instance=NUM
#interval=once
#signal=11

79
zshrc Normal file
View file

@ -0,0 +1,79 @@
# Path to your oh-my-zsh installation.
export ZSH="/home/fredefox/.oh-my-zsh"
ZSH_THEME="robbyrussell"
CASE_SENSITIVE="false"
# Uncomment the following line to disable bi-weekly auto-update checks.
DISABLE_AUTO_UPDATE="false"
export UPDATE_ZSH_DAYS=50
# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
DISABLE_UNTRACKED_FILES_DIRTY="true"
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(
git
)
source $ZSH/oh-my-zsh.sh
#
# User configuration
# export MANPATH="/usr/local/man:$MANPATH"
# You may need to manually set your language environment
# export LANG=en_US.UTF-8
# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
# export EDITOR='vim'
# else
# export EDITOR='mvim'
# fi
# Compilation flags
# export ARCHFLAGS="-arch x86_64"
# ssh
# export SSH_KEY_PATH="~/.ssh/rsa_id"
# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
# For a full list of active aliases, run `alias`.
#
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
# The following lines were added by compinstall
zstyle :compinstall filename '/home/fredefox/.zshrc'
autoload -Uz compinit
compinit
# End of lines added by compinstall
# Lines configured by zsh-newuser-install
HISTFILE=~/.histfile
HISTSIZE=100000
SAVEHIST=100000
setopt appendhistory extendedglob
unsetopt autocd beep
bindkey -e
# End of lines configured by zsh-newuser-install
export PATH="$HOME/.local/bin:$PATH"
alias sb="stack build"
alias gp="git add -p"
# source $HOME/.config/gf/config
alias ide='ghcid -c "stack ghci --test --ghci-options=-fno-break-on-exception --ghci-options=-fno-break-on-error --ghci-options=-v1 --ghci-options=-ferror-spans --ghci-options=-j"'
export PAGER="less -FX"