This commit is contained in:
James Patrick 2020-03-09 18:06:17 +00:00
commit 74455e3453
36 changed files with 446 additions and 661 deletions

19
dockerfile Normal file
View File

@ -0,0 +1,19 @@
FROM alpine:latest
RUN apk add vim \
zsh \
make \
git \
openssh-client \
perl
ARG USER=test
ENV HOME /home/$USER
RUN adduser -D -s /bin/zsh $USER
USER $USER
WORKDIR $HOME
CMD git clone https://git.jpatrick.io/james/dotfiles.git \
&& cd dotfile \
&& make install

View File

@ -1,21 +1,23 @@
;;; ~/.doom.d/config.el -*- lexical-binding: t; -*- ;;; ~/.doom.d/config.el -*- lexical-binding: t; -*-
;; Set font ;; Set font
(setq doom-font (font-spec :family "FuraCode NF" :size 15)) (setq doom-font (font-spec :family "FuraCode NF" :size 12))
(pcase (system-name)
("zuk"
(font-put doom-font :size 15)) ;; Wayland support for high HDPI scaling has some issues. Increasing the font size works
)
;; Orgmode ;; Orgmode
;; Set orgmode dir
(custom-set-variables '(org-directory "~/org")) (custom-set-variables '(org-directory "~/org"))
;; Default location for image location.
(setq-default org-download-image-dir "~/org/resources/") (setq-default org-download-image-dir "~/org/resources/")
;; Enable word wrap (add-hook 'org-mode-hook #'visual-line-mode) ;; Enable word wrap
(add-hook 'org-mode-hook #'visual-line-mode) (eval-after-load "org" '(require 'ox-md nil t)) ;; allow md export
;; Orgmode: Enable md export
(eval-after-load "org" '(require 'ox-md nil t))
;; Deft: Set path to Org-mope Directory
(setq deft-directory "~/org/") (setq deft-directory "~/org/")
;; org-journal-file-format
(customize-set-variable 'org-journal-date-format "%A, %d %B %Y")
;; Have projectile automatically check code. ;; Have projectile automatically check code.
(setq projectile-project-search-path '("~/code/")) (setq projectile-project-search-path '("~/code/" "~/Code/"))
(setq doom-localleader-key ",") (setq doom-localleader-key ",")

View File

@ -1,183 +1,195 @@
;;; init.el -*- lexical-binding: t; -*- ;;; init.el -*- lexical-binding: t; -*-
;; Copy this file to ~/.doom.d/init.el or ~/.config/doom/init.el ('doom install' ;; This file controls what Doom modules are enabled and what order they load in.
;; will do this for you). The `doom!' block below controls what modules are ;; Remember to run 'doom sync' after modifying it!
;; enabled and in what order they will be loaded. Remember to run 'doom refresh'
;; after modifying it. ;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's
;; documentation. There you'll find information about all of Doom's modules
;; and what flags they support.
;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or
;; 'C-c g k' for non-vim users) to view its documentation. This works on
;; flags as well (those symbols that start with a plus).
;; ;;
;; More information about these modules (and what flags they support) can be ;; Alternatively, press 'gd' (or 'C-c g d') on a module to browse its
;; found in modules/README.org. ;; directory (for easy access to its source code).
(doom! :input (doom! :input
;;chinese ;;chinese
;;japanese ;;japanese
:completion :completion
(company ; the ultimate code completion backend. (company ; the ultimate code completion backend.
+childframe) ; Use company-box. +childframe) ; Use company-box.
(helm ; because sometimes I prefer what I know. ;;(helm ; because sometimes I prefer what I know.
+fuzzy) ; woh typse aynthing write teh first time. ;; +fuzzy) ; woh typse aynthing write teh first time.
;;ido ; the other *other* search engine... ;;ido ; the other *other* search engine...
;;(ivy ; a search engine for love and life (ivy +fuzzy) ; a search engine for love and life
;; +fuzzy)
:ui :ui
deft ; notational velocity for Emacs deft ; notational velocity for Emacs
doom ; what makes DOOM look the way it does doom ; what makes DOOM look the way it does
doom-dashboard ; a nifty splash screen for Emacs doom-dashboard ; a nifty splash screen for Emaclints
doom-quit ; DOOM quit-message prompts when you quit Emacs doom-quit ; DOOM quit-message prompts when you quit Emacs
fill-column ; a `fill-column' indicator fill-column ; a `fill-column' indicator
hl-todo ; highlight TODO/FIXME/NOTE tags hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
;;indent-guides ; highlighted indent columns ;;hydra
modeline ; snazzy, Atom-inspired modeline, plus API ;;indent-guides ; highlighted indent columns
nav-flash ; blink the current line after jumping modeline ; snazzy, Atom-inspired modeline, plus API
;;neotree ; a project drawer, like NERDTree for vim nav-flash ; blink the current line after jumping
ophints ; highlight the region an operation acts on ;;neotree ; a project drawer, like NERDTree for vim
(popup ; tame sudden yet inevitable temporary windows ophints ; highlight the region an operation acts on
+all ; catch all popups that start with an asterix (popup ; tame sudden yet inevitable temporary windows
+defaults) ; default popup rules +all ; catch all popups that start with an asterix
(pretty-code ; replace bits of code with pretty symbols +defaults) ; default popup rules
+fira) ; I use firaCode or FiraCode derivatives everywhere, all the time. (pretty-code ; replace bits of code with pretty symbols
;;tabbar ; FIXME an (incomplete) tab bar for Emacs +fira)
treemacs ; a project drawer, like neotree but cooler ;;tabs ; an tab bar for Emacs
;;unicode ; extended unicode support for various languages treemacs ; a project drawer, like neotree but cooler
vc-gutter ; vcs diff in the fringe unicode ; extended unicode support for various languages
vi-tilde-fringe ; fringe tildes to mark beyond EOB vc-gutter ; vcs diff in the fringe
window-select ; visually switch windows vi-tilde-fringe ; fringe tildes to mark beyond EOB
workspaces ; tab emulation, persistence & separate workspaces window-select ; visually switch windows
workspaces ; tab emulation, persistence & separate workspaces
;;zen ; distraction-free coding or writing
:editor :editor
(evil +everywhere) ; come to the dark side, we have cookies (evil +everywhere); come to the dark side, we have cookies
file-templates ; auto-snippets for empty files file-templates ; auto-snippets for empty files
fold ; (nigh) universal code folding fold ; (nigh) universal code folding
(format +onsave) ; automated prettiness (format +onsave) ; automated prettiness
;;lispy ; vim for lisp, for people who dont like vim ;;god ; run Emacs commands without modifier keys
multiple-cursors ; editing in many places at once ;;lispy ; vim for lisp, for people who don't like vim
;;objed ; text object editing for the innocent multiple-cursors ; editing in many places at once
;;parinfer ; turn lisp into python, sort of ;;objed ; text object editing for the innocent
rotate-text ; cycle region at point between text candidates ;;parinfer ; turn lisp into python, sort of
snippets ; my elves. They type so I don't have to rotate-text ; cycle region at point between text candidates
snippets ; my elves. They type so I don't have to
word-wrap ; soft wrapping with language-aware indent
:emacs :emacs
(dired ; making dired pretty [functional] (dired ; making dired pretty [functional]
+ranger ; bringing the goodness of ranger to dired +ranger ; bringing the goodness of ranger to dired
+icons) ; colorful icons for dired-mode +icons) ; colorful icons for dired-mode
electric ; smarter, keyword-based electric-indent electric ; smarter, keyword-based electric-indent
vc ; version-control and Emacs, sitting in a tree ibuffer ; interactive buffer management
vc ; version-control and Emacs, sitting in a tree
:term :term
;;eshell ; a consistent, cross-platform shell (WIP) ;;eshell ; a consistent, cross-platform shell (WIP)
;;shell ; a terminal REPL for Emacs ;;shell ; a terminal REPL for Emacs
;;term ; terminals in Emacs ;;term ; terminals in Emacs
vterm ; another terminals in Emacs vterm ; another terminals in Emacs
:checkers
syntax ; tasing you for every semicolon you forget
spell ; tasing you for misspelling mispelling
grammar ; tasing grammar mistake every you make
:tools :tools
;;ansible ;;ansible
;;debugger ; FIXME stepping through code, to help you add bugs ;;debugger ; FIXME stepping through code, to help you add bugs
;;direnv ;;direnv
;;docker (docker +lsp)
editorconfig ; let someone else argue about tabs vs spaces editorconfig ; let someone else argue about tabs vs spaces
;;ein ; tame Jupyter notebooks with emacs ;;ein ; tame Jupyter notebooks with emacs
eval ; run code, run (also, repls) (eval +overlay) ; run code, run (also, repls)
flycheck ; tasing you for every semicolon you forget ;;gist ; interacting with github gists
flyspell ; tasing you for misspelling mispelling (lookup ; helps you navigate your code and documentation
;;gist ; interacting with github gists +docsets) ; ...or in Dash docsets locally
(lookup ; helps you navigate your code and documentation
+docsets) ; ...or in Dash docsets locally
lsp lsp
;;macos ; MacOS-specific commands ;;macos ; MacOS-specific commands
magit ; a git porcelain for Emacs magit ; a git porcelain for Emacs
make ; run make tasks from Emacs make ; run make tasks from Emacs
;;pass ; password manager for nerds ;;pass ; password manager for nerds
;;pdf ; pdf enhancements ;;pdf ; pdf enhancements
;;prodigy ; FIXME managing external services & code builders ;;prodigy ; FIXME managing external services & code builders
;rgb ; creating color strings ;;rgb ; creating color strings
;;terraform ; infrastructure as code ;;terraform ; infrastructure as code
;;tmux ; an API for interacting with tmux ;;tmux ; an API for interacting with tmux
;;upload ; map local to remote projects via ssh/ftp ;;upload ; map local to remote projects via ssh/ftp
;;wakatime
:lang :lang
;;agda ; types of types of types of types... ;;agda ; types of types of types of types...
;;assembly ; assembly for fun or debugging ;;assembly ; assembly for fun or debugging
;;cc ; C/C++/Obj-C madness ;;cc ; C/C++/Obj-C madness
;;clojure ; java with a lisp ;;clojure ; java with a lisp
;;common-lisp ; if you've seen one lisp, you've seen them all ;;common-lisp ; if you've seen one lisp, you've seen them all
;;coq ; proofs-as-programs ;;coq ; proofs-as-programs
;;crystal ; ruby at the speed of c ;;crystal ; ruby at the speed of c
;;csharp ; unity, .NET, and mono shenanigans ;;csharp ; unity, .NET, and mono shenanigans
data ; config/data formats data ; config/data formats
;;erlang ; an elegant language for a more civilized age ;;elixir ; erlang done right
;;elixir ; erlang done right ;;elm ; care for a cup of TEA?
;;elm ; care for a cup of TEA? emacs-lisp ; drown in parentheses
emacs-lisp ; drown in parentheses ;;erlang ; an elegant language for a more civilized age
;;ess ; emacs speaks statistics ;;ess ; emacs speaks statistics
;;fsharp ; ML stands for Microsoft's Language ;;faust ; dsp, but you get to keep your soul
go ; the hipster dialect ;;fsharp ; ML stands for Microsoft's Language
;;(haskell +intero) ; a language that's lazier than I am go ; the hipster dialect
;;hy ; readability of scheme w/ speed of python ;;(haskell +dante) ; a language that's lazier than I am
;;idris ; ;;hy ; readability of scheme w/ speed of python
(java +lsp) ; the poster child for carpal tunnel syndrome ;;idris ;
javascript ; all(hope(abandon(ye(who(enter(here)))))) (java +lsp) ; the poster child for carpal tunnel syndrome
;;julia ; a better, faster MATLAB (javascript +lsp) ; all(hope(abandon(ye(who(enter(here))))))
;;kotlin ; a better, slicker Java(Script) ;;julia ; a better, faster MATLAB
;;latex ; writing papers in Emacs has never been so fun ;;kotlin ; a better, slicker Java(Script)
;;ledger ; an accounting system in Emacs ;;latex ; writing papers in Emacs has never been so fun
;;lua ; one-based indices? one-based indices ;;lean
(markdown +grip) ; writing docs for people to ignore ;;factor
;;nim ; python + lisp at the speed of c ;;ledger ; an accounting system in Emacs
;;nix ; I hereby declare "nix geht mehr!" ;;lua ; one-based indices? one-based indices
;;ocaml ; an objective camel (markdown +grip) ; writing docs for people to ignore
(org ; organize your plain life in plain text ;;nim ; python + lisp at the speed of c
+dragndrop ; file drag & drop support ;;nix ; I hereby declare "nix geht mehr!"
+ipython ; ipython support for babel ;;ocaml ; an objective camel
+gnuplot ; plot suff (org ; organize your plain life in plain text
+pandoc ; pandoc integration into org's exporter +journal
+pomodoro) ; Because timers are helpful. +dragndrop ; drag & drop files/images into org buffers
;;perl ; write code no one else can comprehend ;;+hugo ; use Emacs for hugo blogging
;;php ; perl's insecure younger brother ;;+jupyter ; ipython/jupyter support for babel
;;plantuml ; diagrams for confusing people more +pandoc ; export-with-pandoc support
;;purescript ; javascript, but functional +pomodoro ; be fruitful with the tomato technique
;;python ; beautiful is better than ugly +present) ; using org-mode for presentations
;;qt ; the 'cutest' gui framework ever ;;perl ; write code no one else can comprehend
;;racket ; a DSL for DSLs ;;php ; perl's insecure younger brother
rest ; Emacs as a REST client ;;plantuml ; diagrams for confusing people more
ruby ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"} ;;purescript ; javascript, but functional
;;rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap() ;;python ; beautiful is better than ugly
;;scala ; java, but good ;;qt ; the 'cutest' gui framework ever
(sh ; she sells {ba,z,fi}sh shells on the C xor ;;racket ; a DSL for DSLs
+lsp) ; this is somehow a thing? ;;rest ; Emacs as a REST client
;;solidity ; do you need a blockchain? No. ;;rst ; ReST in peace
;;swift ; who asked for emoji variables? ruby ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
;;terra ; Earth and Moon in alignment for performance. ;;rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
(web +lsp) ; the tubes ;;scala ; java, but good
;;vala ; GObjective-C ;;scheme ; a fully conniving family of lisps
(sh +lsp) ; she sells {ba,z,fi}sh shells on the C xor
;;solidity ; do you need a blockchain? No.
;;swift ; who asked for emoji variables?
;;terra ; Earth and Moon in alignment for performance.
(web +lsp) ; the tubes
:email :email
;;(mu4e +gmail) ;;(mu4e +gmail)
;;notmuch ;;notmuch
;;(wanderlust +gmail) ;;(wanderlust +gmail)
;; Applications are complex and opinionated modules that transform Emacs
;; toward a specific purpose. They may have additional dependencies and
;; should be loaded late.
:app :app
calendar calendar
;;irc ; how neckbeards socialize ;;irc ; how neckbeards socialize
;;(rss +org) ; emacs as an RSS reader ;;(rss +org) ; emacs as an RSS reader
;;twitter ; twitter client https ://twitter.com/vnought ;;twitter ; twitter client https://twitter.com/vnought
(write ; emacs as a word processor (latex + org + markdown)
+wordnut ; wordnet (wn) search
+langtool) ; a proofreader (grammar/style check) for Emacs
:collab :collab
;;floobits ; peer programming for a price ;;floobits ; peer programming for a price
;;impatient-mode ; show off code over HTTP ;;impatient-mode ; show off code over HTTP
:config :config
;; For literate config users. This will tangle+compile a config.org ;; For literate config users. This will tangle+compile a config.org
;; literate config in your `doom-private-dir' whenever it changes. ;; literate config in your `doom-private-dir' whenever it changes.
;;literate ;; literate
;; The default module sets reasonable defaults for Emacs. It also ;; The default module sets reasonable defaults for Emacs. It also
;; provides a Spacemacs-inspired keybinding scheme and a smartparens ;; provides a Spacemacs-inspired keybinding scheme and a smartparens

View File

@ -11,37 +11,39 @@ include ../lib/shared.mk
install: | init update install: | init update
init: init:
$(report) header "emacs init" if (( ! $$+commands[emacs] )) ; then
ifneq "$(call cmd_exist,emacs)" "true" $(report) debug "Emacs not installed. Skipping install."
$(report) quite "emacs not installed. Skipping install." elif [[ -v $$SSH_TTY ]] ; then
else ifeq "$(IS_SSH)" "true" $(report) debug "This is a SSH connection. Skipping."
$(report) quite "This is a ssh connection. Skipping install." else
else $(report) header "emacs init"
$(mk_link) $(SRC_DIR)/doom.d $(DOOMD) $(mk_link) $(SRC_DIR)/doom.d $(DOOMD)
$(MAKE) -C $(SRC_DIR) doom_init $(MAKE) -C $(SRC_DIR) doom_init
endif fi
doom_init: doom_init:
if [ ! -e $(EMACSD) ] ; then \ $(report) info hi
git clone $(DOOM_URL) $(EMACSD) ;\ if [ ! -e $(EMACSD) ] ; then
~/.emacs.d/bin/doom --yes install ;\ git clone $(DOOM_URL) $(EMACSD)
$(report) "doom install" ;\ ~/.emacs.d/bin/doom --yes install \
~/.emacs.d/bin/doom --yes compile ':core' ;\ ; $(report) "doom install"
$(report) "doom core compile" ;\ ~/.emacs.d/bin/doom --yes compile ':core' \
else ;\ ; $(report) "doom core compile"
$(report) debug "emacsd already exists" ;\ else
$(report) debug "emacsd already exists. Skipping"
fi fi
update: update:
if [ -e $(EMACSD)/bin/doom ] ; then \ if [ -e $(EMACSD)/bin/doom ] ; then
~/.emacs.d/bin/doom --yes purge ;\ ~/.emacs.d/bin/doom --yes purge \
$(report) info "doom purge" ;\ ; $(report) "doom purge"
~/.emacs.d/bin/doom --yes refresh ;\ ~/.emacs.d/bin/doom --yes refresh \
$(report) info "doom refresh" ;\ ; $(report) "doom refresh"
else \ else
$(report) debug "doom not setup, so not updating." ;\ $(report) debug "doom not setup, so not updating."
fi fi
remove: remove:
$(info => Removing Emacs config) $(report) header "Removing Emacs configuration"
$(rm_link) $(EMACSD) rm -rf $(EMACSD) ; $(report) "deleted $(EMACSD)"
$(rm_link) $(DOOMD)

View File

@ -7,11 +7,11 @@ include ../lib/shared.mk
install: | init update install: | init update
init: init:
$(info => Setting up gitconfig) $(report) header "Setting up gitconfig"
$(mk_link) $(SOURCE) $(TARGET) $(mk_link) $(SOURCE) $(TARGET)
update: update:
remove: remove:
$(info => Remvoing gitconfig) $(report) header "Removing gitconfig"
$(rm_link) $(TARGET) $(rm_link) $(TARGET)

View File

@ -1 +0,0 @@
exec_always polybar example

View File

@ -1,6 +0,0 @@
### Start Nextcloud.
exec nextcloud
### Make things a little easier easier on the eyes.
exec redshift

View File

@ -1,2 +0,0 @@
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)

View File

@ -1,180 +0,0 @@
### Variables
#
# Logo key. Use Mod1 for Alt.
set $mod Mod4
# Home row direction keys, like vim
set $left h
set $down j
set $up k
set $right l
# Your preferred terminal emulator
set $term kitty
################################################################################
# Your preferred application launcher
# Note: it's recommended that you pass the final command to sway
set $menu bash ~/.config/sway/scripts/menu
set $gopass_menu bash ~/.config/sway/scripts/menu_gopass
set $clipman_menu bash ~/.config/sway/scripts/menu_clipman
set $printscreen bash ~/.config/sway/scripts/printscreen
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.
# 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 $term
# kill focused window
bindsym $mod+q kill
# start your launcher
bindsym $mod+space exec $menu
# gopass prompt
bindsym $mod+backslash exec $gopass_menu
# 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
#
# Moving around:
#
# Move your focus around
bindsym $mod+$left focus left
bindsym $mod+$down focus down
bindsym $mod+$up focus up
bindsym $mod+$right focus right
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_ the focused window with the same, but add Shift
bindsym $mod+Shift+$left move left
bindsym $mod+Shift+$down move down
bindsym $mod+Shift+$up move up
bindsym $mod+Shift+$right move right
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+b split h
# split in vertical orientation
bindsym $mod+v split v
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# toggle tiling / floating
bindsym $mod+- floating toggle
# change focus between tiling / floating windows
bindsym $mod+d 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 exec "make -C ~/.config/i3/ update"
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
# Pressing left will shrink the windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
bindsym $left resize shrink width 10px
bindsym $down resize grow height 10px
bindsym $up resize shrink height 10px
bindsym $right resize grow width 10px
# 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"

View File

@ -1,3 +0,0 @@
# Map ctrl to caps.
exec setxkbmap -option ctrl:swapcaps

View File

@ -1,13 +0,0 @@
### Font
font pango:Fira Code 9
gaps inner 10
gaps outer 0
### Colors
# class border backgr text indicator child_border
client.focused #12e689 #12e689 #1f212e #12e689 #12e689
client.focused_inactive #1f212e #1f212e #aab5c6 #1f212e #1f212e
client.unfocused #161720 #161720 #aab5c6 #161720 #161720
client.urgent #ff4551 #ff4551 #1f212e #ff4551 #ff4551

View File

@ -1,30 +0,0 @@
SRC := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
include ../lib/shared.mk
TARGET := $(XDG_DIR)/i3
install: | init update
init:
ifeq ($(call cmd_exist,i3), true)
$(info => Setting up i3)
$(mk_link) $(SRC) $(TARGET)
else
$(report) warn "i3 not installed."
endif
update:
ifeq ($(call cmd_exist,i3-msg), true)
$(info => Reloading i3-msg)
$(MAKE) -C $(SRC) build_i3
i3-msg reload ; $(report) "i3 reload"
else
$(report) warn "i3 not installed."
endif
remove:
$(info => Remvoing sway)
$(rm_link) $(TARGET)
build_i3:
cat $(SRC)/config.d/* > $(SRC)/config

21
jrnl/makefile Normal file
View File

@ -0,0 +1,21 @@
SRC := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
include ../lib/shared.mk
CONFIG_DIR := $(XDG_DIR)/jrnl
install: | init update
init:
if (( $$+commands[jrnl] )) ; then
$(report) header "Setting up jrnl"
mkdir $(CONFIG_DIR)
$(mk_link) $(SRC)/jrnl.yml $(CONFIG_DIR)/jrnl.yml
else
$(report) debug "jrnl not installed. Skipping."
fi
endif
remove:
rm -rf $(CONFIG_DIR)

View File

@ -11,10 +11,10 @@ fi
if [[ -h $2 ]] ; then if [[ -h $2 ]] ; then
link_location=$(readlink $2) link_location=$(readlink $2)
if [[ "$1" == "$link_location" ]] ; then if [[ "$1" == "$link_location" ]] ; then
"$REPORT" info "symlink already installed $1" "$REPORT" pass "Symlink already installed $1"
exit 0 exit 0
else else
"$REPORT" warn "symlink already exist, buut doesn't point to the src" "$REPORT" warn "Symlink already exist, buut doesn't point to the src"
exit 1 exit 1
fi fi
fi fi
@ -30,5 +30,4 @@ if [[ ! -e $parent ]] ; then
mkdir -p $parent mkdir -p $parent
fi fi
"$REPORT" info "Symlinked `ln -svf $1 $2`" "$REPORT" pass "Symlinked `ln -svf $1 $2`"

View File

@ -10,9 +10,9 @@ format(){
case $1 in case $1 in
"error") echo -e "$R ✘ $2$NC";; "error") echo -e "$R ✘ $2$NC";;
"warn") echo -e "$Y ⚠ $2$NC";; "warn") echo -e "$Y ⚠ $2$NC";;
"info") echo -e "$G ✔ $2$NC";; "pass") echo -e "$G ✔ $2$NC";;
"quite") echo -e "$MUTED כֿ $2$NC";; "info") echo -e "$MUTED כֿ $2$NC";;
"debug") [ -v verbose ] && echo -e "$MUTED כֿ $2$NC" || true ;; "debug") [ -v debug ] && $0 info $2 ; true ;;
"header") echo -e "=> $2";; "header") echo -e "=> $2";;
*) echo -e "$1: $2";; *) echo -e "$1: $2";;
esac esac
@ -20,7 +20,7 @@ format(){
if [[ -z $2 ]] ; then if [[ -z $2 ]] ; then
case "$LAST_RETURN" in case "$LAST_RETURN" in
0) format info $1;; 0) format pass $1;;
*) format error "FAILURE DURING: \"$1\"";; *) format error "FAILURE DURING: \"$1\"";;
esac esac
else else

View File

@ -17,6 +17,6 @@ if [[ ! -L $1 ]] ; then
exit exit
fi fi
$REPORT info "Deleting $1" $REPORT pass "Deleting $1"
rm $1 rm $1

View File

@ -8,11 +8,11 @@ include ../lib/shared.mk
install: | init update install: | init update
init: init:
$(info => Setting up githook) $(report) header "Setting up githook"
$(report) info "Symlinked `ln -svf $(GIT_HOOK_SRC) $(GIT_HOOK_TARGET)`" $(report) pass "Symlinked `ln -svf $(GIT_HOOK_SRC) $(GIT_HOOK_TARGET)`"
update: update:
remove: remove:
$(info => Removing Githook) $(report) header "Removing githook"
$(rm_link) $(GIT_HOOK_TARGET) $(rm_link) $(GIT_HOOK_TARGET)

View File

@ -1,10 +1,10 @@
# This will make heavy use of the "$+commands[cmd]" function in bash. Make sure its installed.
_SHELL := $(shell which zsh ) _SHELL := $(shell which zsh )
ifndef _SHELL ifndef _SHELL
$(error ZSH is not installed on this machine. This makefile requires ZSH features) $(error ZSH is not installed on this machine. This makefile requires ZSH features)
endif endif
SHELL := $(_SHELL) SHELL := $(_SHELL)
.ONESHELL:
# Helper scripts for setting up and taking down links. # Helper scripts for setting up and taking down links.
LIB_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) LIB_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
@ -12,23 +12,9 @@ mk_link := $(LIB_DIR)/helper/mk_link
rm_link := $(LIB_DIR)/helper/rm_link rm_link := $(LIB_DIR)/helper/rm_link
report := LAST_RETURN=$$? $(LIB_DIR)/helper/report report := LAST_RETURN=$$? $(LIB_DIR)/helper/report
return_val_truthy := && echo true || echo false
cmd_exist = $(shell (($$+commands[$1])) $(return_val_truthy) )
# Shortcut for the XDG dir if it exist. default to ~/.confg # Shortcut for the XDG dir if it exist. default to ~/.confg
XDG_DIR := $${XDG_CONFIG_HOME:-~/.config} XDG_DIR := $${XDG_CONFIG_HOME:-~/.config}
# Some things will OS specific.
# With this you can use `$(IS_MAC) && echo "I'm a Mac" || echo "I'm not a Mac"`
ifeq ($(shell uname), Darwin)
IS_MAC=true
else
IS_LINUX=true
endif
IS_MAC?=false
IS_LINUX?=false
IS_SSH=$(shell [ ! -z $$SSH_TTY ] $(return_val_truthy) )
# TURN THIS OFF FOR DEBUGGING # TURN THIS OFF FOR DEBUGGING
MAKEFLAGS += --silent MAKEFLAGS += --silent

View File

@ -3,10 +3,10 @@ SRC_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
include lib/shared.mk include lib/shared.mk
define recursive_make define recursive_make
for i in */makefile; do; \ for i in */makefile; do
echo "`dirname $$i` " ; \ echo "`dirname $$i` "
$(MAKE) -C $(SRC_DIR)/`dirname $$i` $1 ; \ $(MAKE) -C $(SRC_DIR)/`dirname $$i` $1
echo "" ; \ echo ""
done done
endef endef

View File

@ -6,20 +6,24 @@ TARGET := $(XDG_DIR)/mako
install: | init update install: | init update
init: init:
ifeq ($(call cmd_exist,mako), true) if (( $$+commands[mako] )) ; then
$(info => Setting up mako) $(report) header "Setting up mako"
$(mk_link) $(SRC) $(TARGET) $(mk_link) $(SRC) $(TARGET)
else else
$(report) warn "mako not installed. Skipping." $(report) warn "mako not installed. Skipping."
endif fi
update: update:
ifeq ($(call cmd_exist,makoctl), true) if (( $$+commands[makoctl] )) ; then
$(info => Reloading mako) $(report) header "Updating mako"
[[ -n `pgrep mako` ]] \ if [[ -n `pgrep mako` ]] ; then
&& ( makoctl reload ; $(report) "mako reload") ; true makoctl reload ; $(report) "mako reload"
endif fi
else
$(report) debug "mako not installed"
fi
remove: remove:
$(info => Remvoing sway) $(report) header "Removing mako"
$(rm_link) $(TARGET) $(rm_link) $(TARGET)

View File

@ -9,37 +9,39 @@ DESKTOP_TARGET := ~/.local/share/applications
install: | init update install: | init update
init: init:
ifeq ($(call cmd_exist,rofi), true) if (( $$+commands[rofi] )) ; then
$(info => Setting up rofi) $(report) header "Setting up rofi"
$(mk_link) $(SRC) $(TARGET) $(mk_link) $(SRC) $(TARGET)
$(MAKE) -C $(SRC) desktop_init $(MAKE) -C $(SRC) desktop_init
else else
$(report) warn "rofi not installed. Skipping." $(report) debug "rofi not installed. Skipping."
endif fi
update: update:
remove: remove:
$(info => Remvoing rofi) $(report) header "Removing rofi"
$(rm_link) $(TARGET) $(rm_link) $(TARGET)
$(MAKE) -C $(SRC) desktop_remove $(MAKE) -C $(SRC) desktop_remove
desktop_init: desktop_init:
ifeq ($(shell [ -e $(DESKTOP_TARGET) ] $(return_val_truthy) ), true) if [[ ! -e $(DESKTOP_TARGET) ]] ; then
$(info ==> Setting up desktop shortcuts.) $(report) warn "$(DESKTOP_TARGET) does not exist. Skipping."
cd $(DESKTOP_SRC) ; \ else
for i in *.desktop; do ; \ $(report) header "Adding .desktop files"
$(mk_link) $(DESKTOP_SRC)/$$i $(DESKTOP_TARGET)/$$i ; \ cd $(DESKTOP_SRC)
done for i in *.desktop ; do
else $(mk_link) $(DESKTOP_SRC)/$$i $(DESKTOP_TARGET)/$$i
$(report) warn "$(DESKTOP_TARGET) does not exist. Skipping." done
endif fi
desktop_remove: desktop_remove:
ifeq ($(shell [ -e $(DESKTOP_TARGET) ] $(return_val_truthy) ), true) if [[ ! -e $(DESKTOP_TARGET) ]] ; then
$(info ==> removing rofi desktop entries.) $(report) warn "$(DESKTOP_TARGET) does not exist. Skipping."
cd $(DESKTOP_SRC) ; \ else
for i in *.desktop; do ; \ $(report) header "Removing .desktop files"
$(rm_link) $(DESKTOP_TARGET)/$$i ; \ cd $(DESKTOP_SRC)
done for i in *.desktop ; do
endif $(rm_link) $(DESKTOP_TARGET)/$$i
done
fi

View File

@ -1,35 +1,37 @@
SRC_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) SRC_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
CONFIG_SRC := $(SRC_DIR)/config CONFIG_SRC := $(SRC_DIR)/config
CONFIG_TRGT := ~/.ssh/config CONFIG_TRGT := ~/.ssh/config
JPATRICK_KEY := ~/.ssh/git.jpatrick.io GIT_KEY := ~/.ssh/git.jpatrick.io
include ../lib/shared.mk include ../lib/shared.mk
install: | init update install: | init update
init: init:
$(info => Setting up ssh) $(report) header "Setting up ssh"
$(mk_link) $(CONFIG_SRC) $(CONFIG_TRGT) $(mk_link) $(CONFIG_SRC) $(CONFIG_TRGT)
$(mk_link) $(SRC_DIR)/public_keys ~/.ssh/public_keys $(mk_link) $(SRC_DIR)/public_keys ~/.ssh/public_keys
$(MAKE) -C $(SRC_DIR) init_jpatrick_key $(MAKE) -C $(SRC_DIR) init_git_key
update: update:
cd ~/.ssh \ mkdir -p public_keys/`hostname`
&& mkdir -p public_keys/`hostname` \ cd ~/.ssh
&& for i in *.pub ; do ; \ $(report) header "Copying public keys"
cp $$i public_keys/`hostname`/$$i ; \ for i in *.pub ; do
cp $$i public_keys/`hostname`/$$i
$(report) pass "Copied $$i"
done done
remove: remove:
$(info => Remvoing ssh) $(report) header "Removing ssh sym-links"
$(rm_link) $(TARGET) $(rm_link) $(CONFIG_TRGT)
$(report) warn "NOTE: All prior keys still remain." $(report) warn "NOTE: All keys still remain."
init_jpatrick_key: init_git_key:
ifeq ($(shell [ ! -e $(JPATRICK_KEY) ] $(return_val_truthy) ), true) if [[ -e $(GIT_KEY) ]] ; then
$(report) info "Setting up key for jpatrick.io" $(report) debug "$(GIT_KEY) already installed."
ssh-keygen -t ed25519 -C "`hostname`: `date`" -f $(JPATRICK_KEY) -N "" \ else
; $(report) info "jpatrick.io key created" $(report) info "Setting up key for git.jpatrick.io"
else ssh-keygen -t ed25519 -C "`hostname`: `date`" -f $(GIT_KEY) -N "" \
$(report) warn "Key for jpatrick.io already created" ; $(report) info "git.jpatrick.io key created"
endif fi

View File

@ -6,21 +6,21 @@ TARGET := $(XDG_DIR)/sway
install: | init update install: | init update
init: init:
ifeq ($(call cmd_exist,sway), true) if (( ! $$+commands[sway] )) ; then
$(info => Setting up sway) $(report) debug "Sway not installed. Skipping."
$(mk_link) $(SRC) $(TARGET) else
else $(report) header "Setting up sway"
$(report) warn "Sway not installed. Skipping." $(mk_link) $(SRC) $(TARGET)
endif fi
update: update:
ifeq ($(call cmd_exist,swaymsg), true) if (( ! $$+commands[swaymsg] )) ; then
$(info => Reloading sway) $(report) debug "swaymsg not installed. Skipping."
swaymsg reload ; $(report) "sway reload" else
else $(report) header "Reloading sway"
$(report) warn "swaymsg not installed. Skipping." swaymsg reload ; $(report) "sway reload"
endif fi
remove: remove:
$(info => Remvoing sway) $(report) header "Removing sway"
$(rm_link) $(TARGET) $(rm_link) $(TARGET)

View File

@ -1,7 +1,7 @@
#! /bin/sh #! /bin/sh
# -*- sh -*- # -*- sh -*-
file=~/Pictures/Screenshots/Screenshot-$(date '+%Y%m%d%H%M%S').png file=~/media/pictures/Screenshots/Screenshot-$(date '+%Y%m%d%H%M%S').png
grim -g "$(slurp)" $file \ grim -g "$(slurp)" $file \
&& wl-copy $file \ && wl-copy $file \
&& notify-send -i $file "File copied to clipboard" && notify-send -i $file "File copied to clipboard"

View File

@ -7,16 +7,15 @@ include ../lib/shared.mk
install: | init update install: | init update
init: init:
$(info => tmux init) if (( ! $$+commands[tmux] )) ; then
ifeq ($(call cmd_exist,tmux), true) $(report) header "tmux not installed"
$(info => Setting up tmux) else
$(mk_link) $(SOURCE) $(TARGET) $(report) header "tmux init"
else $(mk_link) $(SOURCE) $(TARGET)
$(report) warn "tmux not installed." fi
endif
update: update:
remove: remove:
$(info => Remvoing tmux config) $(report) header "Removing tmux config"
$(rm_link) $(TARGET) $(rm_link) $(TARGET)

View File

@ -7,22 +7,22 @@ SCRIPTS_TARGET := ~/.local/share/tridactyl/scripts
install: | init update install: | init update
init: init:
$(info => setting up Tridaycl) if [[ $OSTYPE = darwin* ]] ; then
ifeq "$(IS_MAC)" "true" $(MAKE) -C $(SRC_DIR) setup
$(MAKE) -C $(SRC_DIR) setup elif (( $$+commands[firefox] )) ; then
else ifeq "$(call cmd_exist,firefox)" "true" $(MAKE) -C $(SRC_DIR) setup
$(MAKE) -C $(SRC_DIR) setup else
else $(report) debug "This doesn't seem to be an env for Tridactyl. Skipping."
$(report) warn "This doesn't seem to be an env for Tridactyl. Skipping." fi
endif
setup: setup:
$(report) header "Setting up Tridaycl"
$(mk_link) $(SRC_DIR) $(RC_TARGET) $(mk_link) $(SRC_DIR) $(RC_TARGET)
$(mk_link) $(SRC_DIR)/scripts $(SCRIPTS_TARGET) $(mk_link) $(SRC_DIR)/scripts $(SCRIPTS_TARGET)
update: update:
remove: remove:
$(info => Remvoing tridactyl ) $(report) header "Removing Tridaycl"
$(rm_link) $(RC_TARGET) $(rm_link) $(RC_TARGET)
$(rm_link) $(SCRIPTS_TARGET) $(rm_link) $(SCRIPTS_TARGET)

View File

@ -89,6 +89,10 @@
width: 100%; width: 100%;
} }
#completions .optionContainer .option {
overflow: auto;
}
#completions .optionContainer .option { #completions .optionContainer .option {
line-height: 1.4; line-height: 1.4;
} }

View File

@ -8,22 +8,27 @@ include ../lib/shared.mk
install: | init update install: | init update
init: init:
ifneq ($(call cmd_exist,vim), true) if (( $$+commands[vim] )) ; then
$(error Vim not installed) $(report) header "Setting up vim"
endif $(mk_link) $(SRC_DIR) $(TARGET_DIR)
$(info => Setting up vim) $(mk_link) $(SRC_DIR)/vimrc ~/.vimrc
$(mk_link) $(SRC_DIR) $(TARGET_DIR) else
$(mk_link) $(SRC_DIR)/vimrc ~/.vimrc $(report) warn "cannot find vim?"
fi
update: update:
ifneq ($(call cmd_exist,vim), true) if (( $$+commands[vim] )) ; then
$(error Vim not installed) $(report) header "Upgrading vim"
endif curl -fsLo $(PLUG_PATH) $(PLUG_URL) \
$(info => Updating vim) ; $(report) "vim plug setup"
curl -fsLo $(PLUG_PATH) $(PLUG_URL) ; $(report) "vim plug setup" vim +PlugInstall +PlugUpdate +qall \
vim +PlugInstall +PlugUpdate +qall ; $(report) "downloading/updating plugins" ; $(report) "downloading/updating plugins"
else
$(report) warn "cannot find vim?"
fi
remove: remove:
$(info => Removing vim config) $(report) header "Removing vim config"
$(rm_link) ~/.vimrc $(rm_link) ~/.vimrc
$(rm_link) $(TARGET_DIR) $(rm_link) $(TARGET_DIR)

View File

@ -28,12 +28,9 @@ Plug 'Shougo/deoplete.nvim' , Cond(g:has_async, { 'on': [] })
Plug 'Shougo/neco-vim' , {'for' : 'vim'} Plug 'Shougo/neco-vim' , {'for' : 'vim'}
Plug 'Shougo/neocomplete.vim' , Cond(!g:has_async, { 'on': [] }) Plug 'Shougo/neocomplete.vim' , Cond(!g:has_async, { 'on': [] })
Plug 'Shougo/vimproc.vim' , {'do' : 'make'} Plug 'Shougo/vimproc.vim' , {'do' : 'make'}
Plug 'SirVer/ultisnips' , { 'on': [] }
Plug 'Yggdroot/indentLine' Plug 'Yggdroot/indentLine'
Plug 'airblade/vim-gitgutter' Plug 'airblade/vim-gitgutter'
Plug 'bronson/vim-trailing-whitespace' Plug 'bronson/vim-trailing-whitespace'
Plug 'danchoi/ri.vim' , {'for' : 'ruby'}
Plug 'fatih/vim-go' , {'for' : 'go'}
Plug 'godlygeek/tabular' Plug 'godlygeek/tabular'
Plug 'haya14busa/incsearch.vim' Plug 'haya14busa/incsearch.vim'
Plug 'honza/vim-snippets' Plug 'honza/vim-snippets'
@ -45,25 +42,17 @@ Plug 'kien/rainbow_parentheses.vim'
Plug 'majutsushi/tagbar' Plug 'majutsushi/tagbar'
Plug 'osyo-manga/vim-over' Plug 'osyo-manga/vim-over'
Plug 'qpkorr/vim-bufkill' , {'on': 'BD'} Plug 'qpkorr/vim-bufkill' , {'on': 'BD'}
Plug 'racer-rust/vim-racer' , {'for' : 'rust'}
Plug 'rizzatti/dash.vim' Plug 'rizzatti/dash.vim'
Plug 'roxma/nvim-yarp' , Cond(g:has_async) Plug 'roxma/nvim-yarp' , Cond(g:has_async)
Plug 'roxma/vim-hug-neovim-rpc' , Cond(g:has_async) Plug 'roxma/vim-hug-neovim-rpc' , Cond(g:has_async)
Plug 'rust-lang/rust.vim' , {'for' : 'rust'}
Plug 'scrooloose/nerdcommenter' Plug 'scrooloose/nerdcommenter'
Plug 'scrooloose/nerdtree' , { 'on': 'NERDTreeToggle' } Plug 'scrooloose/nerdtree' , { 'on': 'NERDTreeToggle' }
Plug 'scrooloose/syntastic' , Cond(!g:has_async) Plug 'scrooloose/syntastic' , Cond(!g:has_async)
Plug 'tpope/vim-bundler' , {'for' : 'ruby' }
Plug 'tpope/vim-eunuch' Plug 'tpope/vim-eunuch'
Plug 'tpope/vim-markdown' , {'for' : 'markdown'} Plug 'tpope/vim-markdown' , {'for' : 'markdown'}
Plug 'tpope/vim-projectionist'
Plug 'tpope/vim-rails' , {'for' : 'ruby' }
Plug 'tpope/vim-rake' , {'for' : 'ruby'}
Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes' Plug 'vim-airline/vim-airline-themes'
Plug 'vim-ruby/vim-ruby' , {'for' : 'ruby' }
Plug 'w0rp/ale' , Cond(g:has_async) Plug 'w0rp/ale' , Cond(g:has_async)
Plug 'wincent/terminus'
for fpath in split(globpath('~/.vim/plug.d/', '*.vim'), '\n') for fpath in split(globpath('~/.vim/plug.d/', '*.vim'), '\n')
exe 'source' fpath exe 'source' fpath
@ -81,13 +70,6 @@ endfor
if !exists('g:airline_symbols') if !exists('g:airline_symbols')
let g:airline_symbols = {} let g:airline_symbols = {}
endif endif
let g:airline_left_sep = '⮀'
let g:airline_right_sep = '⮂'
let g:airline_right_alt_sep = '⮃'
let g:airline_left_alt_sep = '⮁'
let g:airline_symbols.branch = '⭠'
let g:airline_symbols.linenr= '⭡'
let g:airline_symbols.readonly= '⭤'
let g:airline#extensions#tabline#enabled = 1 let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#left_sep = ' ' let g:airline#extensions#tabline#left_sep = ' '
let g:airline#extensions#tabline#left_alt_sep = '|' let g:airline#extensions#tabline#left_alt_sep = '|'

View File

@ -6,23 +6,21 @@ TARGET := $(XDG_DIR)/waybar
install: | init update install: | init update
init: init:
ifeq ($(call cmd_exist,waybar), true) if (( $$+commands[waybar] )) ; then
$(info => Setting up waybar) $(report) header "Setting up waybar"
$(mk_link) $(SRC) $(TARGET) $(mk_link) $(SRC) $(TARGET)
else else
$(report) warn "waybar not installed. Skipping." $(report) debug "waybar not installed. Skipping."
endif fi
update: update:
ifeq ($(call cmd_exist,swaymsg), true) if (( $$+commands[swaymsg] )) ; then
$(info => Reloading sway) $(report) header "Reloading waybar"
swaymsg reload ; $(report) "sway reload" swaymsg reload ; $(report) "sway reload"
else else
$(report) warn "swaymsg not installed. Skipping." $(report) debug "swaymsg not installed. Skipping."
endif fi
remove: remove:
$(info => Removing waybar) $(report) header "Removing waybar"
$(rm_link) $(TARGET) $(rm_link) $(TARGET)
.PHONY: install update init remove

View File

@ -0,0 +1,9 @@
GF_BASE="/Users/james/Code/GreenFiling/workspace/GreenFiling"
GF_JOURNAL="/Users/james/Code/GreenFiling/workspace/JournalClient"
GF_ONELEGAL="/Users/james/Code/GreenFiling/workspace/OneLegalClient"
GF_TYLER="/Users/james/Code/GreenFiling/workspace/TexFileClient"
GF_TYBERA="/Users/james/Code/GreenFiling/workspace/TyberaClient"
GF_LOG="/Users/james/Code/GreenFiling/data/logs"
alias switch="cd /Users/james/Code/GreenFiling/buildtools/switch && bundle exec ruby switch.rb "
eval "$(rbenv init -)"

View File

@ -0,0 +1 @@
source /usr/share/chruby/chruby.sh

View File

@ -8,35 +8,47 @@ install: | init update
init: init:
$(info => Setting up zsh) $(info => Setting up zsh)
ifeq ($(shell [ ! -e $(ZPLUG_DIR) ] $(return_val_truthy) ), true) $(MAKE) -C $(SRC) init_zplug
export ZPLUG_HOME=$(ZPLUG_DIR) \
; git clone https://github.com/zplug/zplug $(ZPLUG_DIR) \
; source ~/.zplug/init.zsh && zplug update --self \
; $(report) "zplug installed"
endif
$(mk_link) $(SRC) ~/.zsh $(mk_link) $(SRC) ~/.zsh
$(mk_link) $(ZSH_DIR)/zshrc ~/.zshrc $(mk_link) $(ZSH_DIR)/zshrc ~/.zshrc
$(mk_link) $(ZSH_DIR)/zlogin ~/.zlogin $(mk_link) $(ZSH_DIR)/zlogin ~/.zlogin
$(mk_link) $(ZSH_DIR)/zprofile ~/.zprofile $(mk_link) $(ZSH_DIR)/zprofile ~/.zprofile
$(mk_link) $(ZSH_DIR)/zshenv ~/.zshenv $(mk_link) $(ZSH_DIR)/zshenv ~/.zshenv
$(mk_link) $(ZSH_DIR)/zlogout ~/.zlogout $(mk_link) $(ZSH_DIR)/zlogout ~/.zlogout
chmod 700 $(ZSH_DIR)/transient chmod 700 $(ZSH_DIR)/transient \
; $(report) "updating transient permissions"
init_zplug:
if [ ! -e $(ZPLUG_DIR) ] ; then
export ZPLUG_HOME=$(ZPLUG_DIR)
git clone https://github.com/zplug/zplug $(ZPLUG_DIR) \
; $(report) "zplug installed"
else
$(report) debug "zplug already installed. Skipping"
fi
update: update:
[ -e $(ZPLUG_DIR) ] \ if [ -e $(ZPLUG_DIR) ] ; then
&& ( echo "=> Updating zplug" \ $(report) header "Updating zplug"
source $(ZPLUG_DIR)/init.zsh ; source $(ZSH_DIR)/zplug ; zplug install ; zplug update ) \ source $(ZPLUG_DIR)/init.zsh
|| $(report) warn "No zplug install detected. Skipping." source $(ZSH_DIR)/zplug
export zplugs
zplug install \
; $(report) "zplug install"
zplug update \
; $(report) "zplug upate"
zplug clean \
; $(report) "zplug cleaned"
else
$(report) error "$(ZPLUG_DIR) doesn't exist... maybe run init first?"
fi
remove: remove:
ifeq ($(shell [ -e $(ZPLUG_DIR) ] $(return_val_truthy) ), true) rm -rf $(ZPLUG_DIR) ; $(report) "deleting zplug dir"
$(report) warn "Leaving $(ZPLUG_DIR) directory."
endif
$(info => Removing zsh)
$(rm_link) ~/.zprofile $(rm_link) ~/.zprofile
$(rm_link) ~/.zlogin $(rm_link) ~/.zlogin
$(rm_link) ~/.zshrc $(rm_link) ~/.zshrc
$(rm_link) ~/.zsh $(rm_link) ~/.zsh
$(rm_link) ~/.zshenv $(rm_link) ~/.zshenv
$(mk_link) $(ZSH_DIR)/zlogout ~/.zlogout $(rm_link) ~/.zlogout

View File

@ -8,7 +8,11 @@ alias ls="ls $color_flag"
alias l="ls -lh $color_flag" alias l="ls -lh $color_flag"
alias la="ls -lha $color_flag" alias la="ls -lha $color_flag"
<<<<<<< HEAD
alias lf='ls -1tr | tail -1' alias lf='ls -1tr | tail -1'
=======
alias lf="ls -1tr | tail -n 1"
>>>>>>> fdc2d49c6e53000b36e793ba7fdd9e1c8e8ec9bb
alias docker="sudo docker" alias docker="sudo docker"
alias dc="sudo docker-compose" alias dc="sudo docker-compose"

View File

@ -2,77 +2,30 @@
source ${ZPLUG_HOME}/init.zsh source ${ZPLUG_HOME}/init.zsh
zplug "junegunn/fzf-bin", \ zplug "${ZDIR}/modules/bin/", from:local, as:command, use:"*"
from:gh-r, \ zplug "junegunn/fzf-bin", from:gh-r, as:command, rename-to:fzf
as:command, \ zplug "zdharma/zsh-diff-so-fancy", as:command, use:"bin/{git-dsf,diff-so-fancy}"
rename-to:fzf
zplug "zdharma/zsh-diff-so-fancy", \ zplug "${ZDIR}/modules/alias/", from:local, as:plugin
as:command, \ zplug "${ZDIR}/modules/complete/", from:local, as:plugin
use:"bin/{git-dsf,diff-so-fancy}" zplug "${ZDIR}/modules/directory/", from:local, as:plugin
zplug "${ZDIR}/modules/history/", from:local, as:plugin
zplug "${ZDIR}/modules/bin/", \ zplug "${ZDIR}/modules/keybinds/", from:local, as:plugin
from:local, \ zplug "hlissner/zsh-autopair", as:plugin, defer:2
as:command, \ zplug "junegunn/fzf", use:"shell/*.zsh", defer:2
use:"*" zplug "mafredri/zsh-async", as:plugin, defer:2
zplug "wfxr/forgit", as:plugin, defer:2
zplug "zdharma/fast-syntax-highlighting", \ zplug "zdharma/fast-syntax-highlighting", as:plugin, defer:2
as:plugin, \ zplug "zsh-users/zsh-autosuggestions", as:plugin, defer:2
defer:2 zplug "zsh-users/zsh-completions", as:plugin, defer:2
zplug "zsh-users/zsh-history-substring-search", as:plugin, defer:2
zplug "hlissner/zsh-autopair", \
as:plugin, \
defer:2
zplug "zsh-users/zsh-history-substring-search", \
as:plugin, \
defer:2
zplug "zpm-zsh/autoenv", \
as:plugin, \
defer:2
zplug "zsh-users/zsh-autosuggestions", \
as:plugin, \
defer:2
zplug "junegunn/fzf", \
use:"shell/*.zsh", \
defer:2
zplug "${ZDIR}/modules/history/", \
from:local, \
as:plugin
zplug "${ZDIR}/modules/directory/", \
from:local, \
as:plugin
zplug "${ZDIR}/modules/complete/", \
from:local, \
as:plugin
zplug "${ZDIR}/modules/keybinds/", \
from:local, \
as:plugin
zplug "${ZDIR}/modules/alias/", \
from:local, \
as:plugin
if [ -n "$SSH_CONNECTION" ] ; then if [ -n "$SSH_CONNECTION" ] ; then
zplug "${ZDIR}/modules/prompt/",\ zplug "${ZDIR}/modules/prompt/",\ from:local,\ use:uncommon.zsh, as:theme
from:local,\
use:uncommon.zsh, \
as:theme
else else
zplug "denysdovhan/spaceship-prompt", \ zplug "denysdovhan/spaceship-prompt", use:spaceship.zsh, from:github, as:theme
use:spaceship.zsh, \
from:github, \
as:theme
fi fi
env_loader zplug env_loader zplug
zplug load zplug load

View File

@ -33,10 +33,10 @@ if [ -z "$SPACESHIP_PROMPT_ORDER" ]; then
golang # Go section golang # Go section
rust # Rust section rust # Rust section
haskell # Haskell Stack section haskell # Haskell Stack section
docker # Docker section #docker # Docker section
venv # virtualenv section venv # virtualenv section
pyenv # Pyenv section pyenv # Pyenv section
kubecontext # Kubectl context section #kubecontext # Kubectl context section
terraform # Terraform workspace section terraform # Terraform workspace section
exec_time # Execution time exec_time # Execution time
line_sep # Line break line_sep # Line break
@ -72,6 +72,10 @@ env_loader(){
[ -e ${ZDIR}/environment/host/$HOST/$1 ] && source ${ZDIR}/environment/host/$HOST/$1 [ -e ${ZDIR}/environment/host/$HOST/$1 ] && source ${ZDIR}/environment/host/$HOST/$1
} }
if (( $+commands[yarn] )) ; then
export PATH="$(yarn global bin):$PATH"
fi
user_script_dir=~/.scripts user_script_dir=~/.scripts
if [ -d $user_script_dir ] ; then if [ -d $user_script_dir ] ; then
export PATH="$user_script_dir:$PATH" export PATH="$user_script_dir:$PATH"