diff --git a/dockerfile b/dockerfile new file mode 100644 index 0000000..9aac9e7 --- /dev/null +++ b/dockerfile @@ -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 diff --git a/emacs/doom.d/config.el b/emacs/doom.d/config.el index 0adbc60..40aa49e 100644 --- a/emacs/doom.d/config.el +++ b/emacs/doom.d/config.el @@ -1,21 +1,23 @@ ;;; ~/.doom.d/config.el -*- lexical-binding: t; -*- ;; 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 -;; Set orgmode dir (custom-set-variables '(org-directory "~/org")) -;; Default location for image location. (setq-default org-download-image-dir "~/org/resources/") -;; Enable word wrap -(add-hook 'org-mode-hook #'visual-line-mode) -;; Orgmode: Enable md export -(eval-after-load "org" '(require 'ox-md nil t)) -;; Deft: Set path to Org-mope Directory +(add-hook 'org-mode-hook #'visual-line-mode) ;; Enable word wrap +(eval-after-load "org" '(require 'ox-md nil t)) ;; allow md export (setq deft-directory "~/org/") +;; org-journal-file-format +(customize-set-variable 'org-journal-date-format "%A, %d %B %Y") + + ;; Have projectile automatically check code. -(setq projectile-project-search-path '("~/code/")) +(setq projectile-project-search-path '("~/code/" "~/Code/")) (setq doom-localleader-key ",") diff --git a/emacs/doom.d/init.el b/emacs/doom.d/init.el index 5b4aa31..6169b97 100644 --- a/emacs/doom.d/init.el +++ b/emacs/doom.d/init.el @@ -1,183 +1,195 @@ ;;; init.el -*- lexical-binding: t; -*- -;; Copy this file to ~/.doom.d/init.el or ~/.config/doom/init.el ('doom install' -;; will do this for you). The `doom!' block below controls what modules are -;; enabled and in what order they will be loaded. Remember to run 'doom refresh' -;; after modifying it. +;; This file controls what Doom modules are enabled and what order they load in. +;; Remember to run 'doom sync' 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 -;; found in modules/README.org. +;; Alternatively, press 'gd' (or 'C-c g d') on a module to browse its +;; directory (for easy access to its source code). (doom! :input ;;chinese ;;japanese :completion - (company ; the ultimate code completion backend. - +childframe) ; Use company-box. - (helm ; because sometimes I prefer what I know. - +fuzzy) ; woh typse aynthing write teh first time. - ;;ido ; the other *other* search engine... - ;;(ivy ; a search engine for love and life - ;; +fuzzy) + (company ; the ultimate code completion backend. + +childframe) ; Use company-box. + ;;(helm ; because sometimes I prefer what I know. + ;; +fuzzy) ; woh typse aynthing write teh first time. + ;;ido ; the other *other* search engine... + (ivy +fuzzy) ; a search engine for love and life :ui - deft ; notational velocity for Emacs - doom ; what makes DOOM look the way it does - doom-dashboard ; a nifty splash screen for Emacs - doom-quit ; DOOM quit-message prompts when you quit Emacs - fill-column ; a `fill-column' indicator - hl-todo ; highlight TODO/FIXME/NOTE tags - ;;indent-guides ; highlighted indent columns - modeline ; snazzy, Atom-inspired modeline, plus API - nav-flash ; blink the current line after jumping - ;;neotree ; a project drawer, like NERDTree for vim - ophints ; highlight the region an operation acts on - (popup ; tame sudden yet inevitable temporary windows - +all ; catch all popups that start with an asterix - +defaults) ; default popup rules - (pretty-code ; replace bits of code with pretty symbols - +fira) ; I use firaCode or FiraCode derivatives everywhere, all the time. - ;;tabbar ; FIXME an (incomplete) tab bar for Emacs - treemacs ; a project drawer, like neotree but cooler - ;;unicode ; extended unicode support for various languages - vc-gutter ; vcs diff in the fringe - vi-tilde-fringe ; fringe tildes to mark beyond EOB - window-select ; visually switch windows - workspaces ; tab emulation, persistence & separate workspaces + deft ; notational velocity for Emacs + doom ; what makes DOOM look the way it does + doom-dashboard ; a nifty splash screen for Emaclints + doom-quit ; DOOM quit-message prompts when you quit Emacs + fill-column ; a `fill-column' indicator + hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW + ;;hydra + ;;indent-guides ; highlighted indent columns + modeline ; snazzy, Atom-inspired modeline, plus API + nav-flash ; blink the current line after jumping + ;;neotree ; a project drawer, like NERDTree for vim + ophints ; highlight the region an operation acts on + (popup ; tame sudden yet inevitable temporary windows + +all ; catch all popups that start with an asterix + +defaults) ; default popup rules + (pretty-code ; replace bits of code with pretty symbols + +fira) + ;;tabs ; an tab bar for Emacs + treemacs ; a project drawer, like neotree but cooler + unicode ; extended unicode support for various languages + vc-gutter ; vcs diff in the fringe + vi-tilde-fringe ; fringe tildes to mark beyond EOB + window-select ; visually switch windows + workspaces ; tab emulation, persistence & separate workspaces + ;;zen ; distraction-free coding or writing :editor - (evil +everywhere) ; come to the dark side, we have cookies - file-templates ; auto-snippets for empty files - fold ; (nigh) universal code folding - (format +onsave) ; automated prettiness - ;;lispy ; vim for lisp, for people who dont like vim - multiple-cursors ; editing in many places at once - ;;objed ; text object editing for the innocent - ;;parinfer ; turn lisp into python, sort of - rotate-text ; cycle region at point between text candidates - snippets ; my elves. They type so I don't have to + (evil +everywhere); come to the dark side, we have cookies + file-templates ; auto-snippets for empty files + fold ; (nigh) universal code folding + (format +onsave) ; automated prettiness + ;;god ; run Emacs commands without modifier keys + ;;lispy ; vim for lisp, for people who don't like vim + multiple-cursors ; editing in many places at once + ;;objed ; text object editing for the innocent + ;;parinfer ; turn lisp into python, sort of + 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 - (dired ; making dired pretty [functional] - +ranger ; bringing the goodness of ranger to dired - +icons) ; colorful icons for dired-mode - electric ; smarter, keyword-based electric-indent - vc ; version-control and Emacs, sitting in a tree + (dired ; making dired pretty [functional] + +ranger ; bringing the goodness of ranger to dired + +icons) ; colorful icons for dired-mode + electric ; smarter, keyword-based electric-indent + ibuffer ; interactive buffer management + vc ; version-control and Emacs, sitting in a tree :term - ;;eshell ; a consistent, cross-platform shell (WIP) - ;;shell ; a terminal REPL for Emacs - ;;term ; terminals in Emacs - vterm ; another terminals in Emacs - + ;;eshell ; a consistent, cross-platform shell (WIP) + ;;shell ; a terminal REPL for Emacs + ;;term ; 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 ;;ansible - ;;debugger ; FIXME stepping through code, to help you add bugs + ;;debugger ; FIXME stepping through code, to help you add bugs ;;direnv - ;;docker - editorconfig ; let someone else argue about tabs vs spaces - ;;ein ; tame Jupyter notebooks with emacs - eval ; run code, run (also, repls) - flycheck ; tasing you for every semicolon you forget - flyspell ; tasing you for misspelling mispelling - ;;gist ; interacting with github gists - (lookup ; helps you navigate your code and documentation - +docsets) ; ...or in Dash docsets locally + (docker +lsp) + editorconfig ; let someone else argue about tabs vs spaces + ;;ein ; tame Jupyter notebooks with emacs + (eval +overlay) ; run code, run (also, repls) + ;;gist ; interacting with github gists + (lookup ; helps you navigate your code and documentation + +docsets) ; ...or in Dash docsets locally lsp - ;;macos ; MacOS-specific commands - magit ; a git porcelain for Emacs - make ; run make tasks from Emacs - ;;pass ; password manager for nerds - ;;pdf ; pdf enhancements - ;;prodigy ; FIXME managing external services & code builders - ;rgb ; creating color strings - ;;terraform ; infrastructure as code - ;;tmux ; an API for interacting with tmux - ;;upload ; map local to remote projects via ssh/ftp - ;;wakatime + ;;macos ; MacOS-specific commands + magit ; a git porcelain for Emacs + make ; run make tasks from Emacs + ;;pass ; password manager for nerds + ;;pdf ; pdf enhancements + ;;prodigy ; FIXME managing external services & code builders + ;;rgb ; creating color strings + ;;terraform ; infrastructure as code + ;;tmux ; an API for interacting with tmux + ;;upload ; map local to remote projects via ssh/ftp :lang - ;;agda ; types of types of types of types... - ;;assembly ; assembly for fun or debugging - ;;cc ; C/C++/Obj-C madness - ;;clojure ; java with a lisp - ;;common-lisp ; if you've seen one lisp, you've seen them all - ;;coq ; proofs-as-programs - ;;crystal ; ruby at the speed of c - ;;csharp ; unity, .NET, and mono shenanigans - data ; config/data formats - ;;erlang ; an elegant language for a more civilized age - ;;elixir ; erlang done right - ;;elm ; care for a cup of TEA? - emacs-lisp ; drown in parentheses - ;;ess ; emacs speaks statistics - ;;fsharp ; ML stands for Microsoft's Language - go ; the hipster dialect - ;;(haskell +intero) ; a language that's lazier than I am - ;;hy ; readability of scheme w/ speed of python - ;;idris ; - (java +lsp) ; the poster child for carpal tunnel syndrome - javascript ; all(hope(abandon(ye(who(enter(here)))))) - ;;julia ; a better, faster MATLAB - ;;kotlin ; a better, slicker Java(Script) - ;;latex ; writing papers in Emacs has never been so fun - ;;ledger ; an accounting system in Emacs - ;;lua ; one-based indices? one-based indices - (markdown +grip) ; writing docs for people to ignore - ;;nim ; python + lisp at the speed of c - ;;nix ; I hereby declare "nix geht mehr!" - ;;ocaml ; an objective camel - (org ; organize your plain life in plain text - +dragndrop ; file drag & drop support - +ipython ; ipython support for babel - +gnuplot ; plot suff - +pandoc ; pandoc integration into org's exporter - +pomodoro) ; Because timers are helpful. - ;;perl ; write code no one else can comprehend - ;;php ; perl's insecure younger brother - ;;plantuml ; diagrams for confusing people more - ;;purescript ; javascript, but functional - ;;python ; beautiful is better than ugly - ;;qt ; the 'cutest' gui framework ever - ;;racket ; a DSL for DSLs - rest ; Emacs as a REST client - ruby ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"} - ;;rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap() - ;;scala ; java, but good - (sh ; she sells {ba,z,fi}sh shells on the C xor - +lsp) ; this is somehow a thing? - ;;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 - ;;vala ; GObjective-C + ;;agda ; types of types of types of types... + ;;assembly ; assembly for fun or debugging + ;;cc ; C/C++/Obj-C madness + ;;clojure ; java with a lisp + ;;common-lisp ; if you've seen one lisp, you've seen them all + ;;coq ; proofs-as-programs + ;;crystal ; ruby at the speed of c + ;;csharp ; unity, .NET, and mono shenanigans + data ; config/data formats + ;;elixir ; erlang done right + ;;elm ; care for a cup of TEA? + emacs-lisp ; drown in parentheses + ;;erlang ; an elegant language for a more civilized age + ;;ess ; emacs speaks statistics + ;;faust ; dsp, but you get to keep your soul + ;;fsharp ; ML stands for Microsoft's Language + go ; the hipster dialect + ;;(haskell +dante) ; a language that's lazier than I am + ;;hy ; readability of scheme w/ speed of python + ;;idris ; + (java +lsp) ; the poster child for carpal tunnel syndrome + (javascript +lsp) ; all(hope(abandon(ye(who(enter(here)))))) + ;;julia ; a better, faster MATLAB + ;;kotlin ; a better, slicker Java(Script) + ;;latex ; writing papers in Emacs has never been so fun + ;;lean + ;;factor + ;;ledger ; an accounting system in Emacs + ;;lua ; one-based indices? one-based indices + (markdown +grip) ; writing docs for people to ignore + ;;nim ; python + lisp at the speed of c + ;;nix ; I hereby declare "nix geht mehr!" + ;;ocaml ; an objective camel + (org ; organize your plain life in plain text + +journal + +dragndrop ; drag & drop files/images into org buffers + ;;+hugo ; use Emacs for hugo blogging + ;;+jupyter ; ipython/jupyter support for babel + +pandoc ; export-with-pandoc support + +pomodoro ; be fruitful with the tomato technique + +present) ; using org-mode for presentations + ;;perl ; write code no one else can comprehend + ;;php ; perl's insecure younger brother + ;;plantuml ; diagrams for confusing people more + ;;purescript ; javascript, but functional + ;;python ; beautiful is better than ugly + ;;qt ; the 'cutest' gui framework ever + ;;racket ; a DSL for DSLs + ;;rest ; Emacs as a REST client + ;;rst ; ReST in peace + ruby ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"} + ;;rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap() + ;;scala ; java, but good + ;;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 ;;(mu4e +gmail) ;;notmuch ;;(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 calendar - ;;irc ; how neckbeards socialize - ;;(rss +org) ; emacs as an RSS reader - ;;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 + ;;irc ; how neckbeards socialize + ;;(rss +org) ; emacs as an RSS reader + ;;twitter ; twitter client https://twitter.com/vnought + :collab - ;;floobits ; peer programming for a price - ;;impatient-mode ; show off code over HTTP + ;;floobits ; peer programming for a price + ;;impatient-mode ; show off code over HTTP :config ;; For literate config users. This will tangle+compile a config.org ;; literate config in your `doom-private-dir' whenever it changes. - ;;literate + ;; literate ;; The default module sets reasonable defaults for Emacs. It also ;; provides a Spacemacs-inspired keybinding scheme and a smartparens diff --git a/emacs/makefile b/emacs/makefile index 36dca23..1031e65 100644 --- a/emacs/makefile +++ b/emacs/makefile @@ -11,37 +11,39 @@ include ../lib/shared.mk install: | init update init: - $(report) header "emacs init" -ifneq "$(call cmd_exist,emacs)" "true" - $(report) quite "emacs not installed. Skipping install." -else ifeq "$(IS_SSH)" "true" - $(report) quite "This is a ssh connection. Skipping install." -else - $(mk_link) $(SRC_DIR)/doom.d $(DOOMD) - $(MAKE) -C $(SRC_DIR) doom_init -endif + if (( ! $$+commands[emacs] )) ; then + $(report) debug "Emacs not installed. Skipping install." + elif [[ -v $$SSH_TTY ]] ; then + $(report) debug "This is a SSH connection. Skipping." + else + $(report) header "emacs init" + $(mk_link) $(SRC_DIR)/doom.d $(DOOMD) + $(MAKE) -C $(SRC_DIR) doom_init + fi doom_init: - if [ ! -e $(EMACSD) ] ; then \ - git clone $(DOOM_URL) $(EMACSD) ;\ - ~/.emacs.d/bin/doom --yes install ;\ - $(report) "doom install" ;\ - ~/.emacs.d/bin/doom --yes compile ':core' ;\ - $(report) "doom core compile" ;\ - else ;\ - $(report) debug "emacsd already exists" ;\ + $(report) info hi + if [ ! -e $(EMACSD) ] ; then + git clone $(DOOM_URL) $(EMACSD) + ~/.emacs.d/bin/doom --yes install \ + ; $(report) "doom install" + ~/.emacs.d/bin/doom --yes compile ':core' \ + ; $(report) "doom core compile" + else + $(report) debug "emacsd already exists. Skipping" fi update: - if [ -e $(EMACSD)/bin/doom ] ; then \ - ~/.emacs.d/bin/doom --yes purge ;\ - $(report) info "doom purge" ;\ - ~/.emacs.d/bin/doom --yes refresh ;\ - $(report) info "doom refresh" ;\ - else \ - $(report) debug "doom not setup, so not updating." ;\ + if [ -e $(EMACSD)/bin/doom ] ; then + ~/.emacs.d/bin/doom --yes purge \ + ; $(report) "doom purge" + ~/.emacs.d/bin/doom --yes refresh \ + ; $(report) "doom refresh" + else + $(report) debug "doom not setup, so not updating." fi remove: - $(info => Removing Emacs config) - $(rm_link) $(EMACSD) + $(report) header "Removing Emacs configuration" + rm -rf $(EMACSD) ; $(report) "deleted $(EMACSD)" + $(rm_link) $(DOOMD) diff --git a/git/makefile b/git/makefile index ba25376..7e7ce86 100644 --- a/git/makefile +++ b/git/makefile @@ -7,11 +7,11 @@ include ../lib/shared.mk install: | init update init: - $(info => Setting up gitconfig) + $(report) header "Setting up gitconfig" $(mk_link) $(SOURCE) $(TARGET) update: remove: - $(info => Remvoing gitconfig) + $(report) header "Removing gitconfig" $(rm_link) $(TARGET) diff --git a/i3/autostart b/i3/autostart deleted file mode 100644 index 9695158..0000000 --- a/i3/autostart +++ /dev/null @@ -1 +0,0 @@ -exec_always polybar example \ No newline at end of file diff --git a/i3/config.d/autostart b/i3/config.d/autostart deleted file mode 100644 index 991a3b4..0000000 --- a/i3/config.d/autostart +++ /dev/null @@ -1,6 +0,0 @@ -### Start Nextcloud. -exec nextcloud - -### Make things a little easier easier on the eyes. -exec redshift - diff --git a/i3/config.d/bar b/i3/config.d/bar deleted file mode 100644 index 692140d..0000000 --- a/i3/config.d/bar +++ /dev/null @@ -1,2 +0,0 @@ -# Start i3bar to display a workspace bar (plus the system information i3status -# finds out, if available) diff --git a/i3/config.d/config b/i3/config.d/config deleted file mode 100644 index fa74fcf..0000000 --- a/i3/config.d/config +++ /dev/null @@ -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 doesn’t 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 window’s width. - # Pressing right will grow the window’s width. - # Pressing up will shrink the window’s height. - # Pressing down will grow the window’s 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" - diff --git a/i3/config.d/input b/i3/config.d/input deleted file mode 100644 index 495e906..0000000 --- a/i3/config.d/input +++ /dev/null @@ -1,3 +0,0 @@ -# Map ctrl to caps. -exec setxkbmap -option ctrl:swapcaps - diff --git a/i3/config.d/ui b/i3/config.d/ui deleted file mode 100644 index 6cdb32b..0000000 --- a/i3/config.d/ui +++ /dev/null @@ -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 - diff --git a/i3/makefile b/i3/makefile deleted file mode 100644 index 5830a1a..0000000 --- a/i3/makefile +++ /dev/null @@ -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 diff --git a/jrnl/makefile b/jrnl/makefile new file mode 100644 index 0000000..0555263 --- /dev/null +++ b/jrnl/makefile @@ -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) diff --git a/lib/helper/mk_link b/lib/helper/mk_link index 259ec82..3255193 100755 --- a/lib/helper/mk_link +++ b/lib/helper/mk_link @@ -11,10 +11,10 @@ fi if [[ -h $2 ]] ; then link_location=$(readlink $2) if [[ "$1" == "$link_location" ]] ; then - "$REPORT" info "symlink already installed $1" + "$REPORT" pass "Symlink already installed $1" exit 0 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 fi fi @@ -30,5 +30,4 @@ if [[ ! -e $parent ]] ; then mkdir -p $parent fi -"$REPORT" info "Symlinked `ln -svf $1 $2`" - +"$REPORT" pass "Symlinked `ln -svf $1 $2`" diff --git a/lib/helper/report b/lib/helper/report index 925400a..6fe5cdf 100755 --- a/lib/helper/report +++ b/lib/helper/report @@ -10,9 +10,9 @@ format(){ case $1 in "error") echo -e "$R ✘ $2$NC";; "warn") echo -e "$Y ⚠ $2$NC";; - "info") echo -e "$G ✔ $2$NC";; - "quite") echo -e "$MUTED כֿ $2$NC";; - "debug") [ -v verbose ] && echo -e "$MUTED כֿ $2$NC" || true ;; + "pass") echo -e "$G ✔ $2$NC";; + "info") echo -e "$MUTED כֿ $2$NC";; + "debug") [ -v debug ] && $0 info $2 ; true ;; "header") echo -e "=> $2";; *) echo -e "$1: $2";; esac @@ -20,7 +20,7 @@ format(){ if [[ -z $2 ]] ; then case "$LAST_RETURN" in - 0) format info $1;; + 0) format pass $1;; *) format error "FAILURE DURING: \"$1\"";; esac else diff --git a/lib/helper/rm_link b/lib/helper/rm_link index 2aa1c6a..2b7f659 100755 --- a/lib/helper/rm_link +++ b/lib/helper/rm_link @@ -17,6 +17,6 @@ if [[ ! -L $1 ]] ; then exit fi -$REPORT info "Deleting $1" +$REPORT pass "Deleting $1" rm $1 diff --git a/lib/makefile b/lib/makefile index 7658c87..4d1e636 100644 --- a/lib/makefile +++ b/lib/makefile @@ -8,11 +8,11 @@ include ../lib/shared.mk install: | init update init: - $(info => Setting up githook) - $(report) info "Symlinked `ln -svf $(GIT_HOOK_SRC) $(GIT_HOOK_TARGET)`" + $(report) header "Setting up githook" + $(report) pass "Symlinked `ln -svf $(GIT_HOOK_SRC) $(GIT_HOOK_TARGET)`" update: remove: - $(info => Removing Githook) + $(report) header "Removing githook" $(rm_link) $(GIT_HOOK_TARGET) diff --git a/lib/shared.mk b/lib/shared.mk index d587a76..3081c22 100644 --- a/lib/shared.mk +++ b/lib/shared.mk @@ -1,10 +1,10 @@ -# This will make heavy use of the "$+commands[cmd]" function in bash. Make sure its installed. _SHELL := $(shell which zsh ) ifndef _SHELL $(error ZSH is not installed on this machine. This makefile requires ZSH features) endif SHELL := $(_SHELL) +.ONESHELL: # Helper scripts for setting up and taking down links. 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 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 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 MAKEFLAGS += --silent diff --git a/makefile b/makefile index 3690f46..d27d9a8 100644 --- a/makefile +++ b/makefile @@ -3,10 +3,10 @@ SRC_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) include lib/shared.mk define recursive_make - for i in */makefile; do; \ - echo "`dirname $$i` " ; \ - $(MAKE) -C $(SRC_DIR)/`dirname $$i` $1 ; \ - echo "" ; \ + for i in */makefile; do + echo "`dirname $$i` " + $(MAKE) -C $(SRC_DIR)/`dirname $$i` $1 + echo "" done endef diff --git a/mako/makefile b/mako/makefile index df63982..5092465 100644 --- a/mako/makefile +++ b/mako/makefile @@ -6,20 +6,24 @@ TARGET := $(XDG_DIR)/mako install: | init update init: -ifeq ($(call cmd_exist,mako), true) - $(info => Setting up mako) - $(mk_link) $(SRC) $(TARGET) -else - $(report) warn "mako not installed. Skipping." -endif + if (( $$+commands[mako] )) ; then + $(report) header "Setting up mako" + $(mk_link) $(SRC) $(TARGET) + else + $(report) warn "mako not installed. Skipping." + fi update: -ifeq ($(call cmd_exist,makoctl), true) - $(info => Reloading mako) - [[ -n `pgrep mako` ]] \ - && ( makoctl reload ; $(report) "mako reload") ; true -endif + if (( $$+commands[makoctl] )) ; then + $(report) header "Updating mako" + if [[ -n `pgrep mako` ]] ; then + makoctl reload ; $(report) "mako reload" + fi + else + $(report) debug "mako not installed" + fi + remove: - $(info => Remvoing sway) + $(report) header "Removing mako" $(rm_link) $(TARGET) diff --git a/rofi/makefile b/rofi/makefile index 152c643..0f961a9 100644 --- a/rofi/makefile +++ b/rofi/makefile @@ -9,37 +9,39 @@ DESKTOP_TARGET := ~/.local/share/applications install: | init update init: -ifeq ($(call cmd_exist,rofi), true) - $(info => Setting up rofi) - $(mk_link) $(SRC) $(TARGET) - $(MAKE) -C $(SRC) desktop_init -else - $(report) warn "rofi not installed. Skipping." -endif + if (( $$+commands[rofi] )) ; then + $(report) header "Setting up rofi" + $(mk_link) $(SRC) $(TARGET) + $(MAKE) -C $(SRC) desktop_init + else + $(report) debug "rofi not installed. Skipping." + fi update: remove: - $(info => Remvoing rofi) + $(report) header "Removing rofi" $(rm_link) $(TARGET) $(MAKE) -C $(SRC) desktop_remove desktop_init: -ifeq ($(shell [ -e $(DESKTOP_TARGET) ] $(return_val_truthy) ), true) - $(info ==> Setting up desktop shortcuts.) - cd $(DESKTOP_SRC) ; \ - for i in *.desktop; do ; \ - $(mk_link) $(DESKTOP_SRC)/$$i $(DESKTOP_TARGET)/$$i ; \ - done -else - $(report) warn "$(DESKTOP_TARGET) does not exist. Skipping." -endif + if [[ ! -e $(DESKTOP_TARGET) ]] ; then + $(report) warn "$(DESKTOP_TARGET) does not exist. Skipping." + else + $(report) header "Adding .desktop files" + cd $(DESKTOP_SRC) + for i in *.desktop ; do + $(mk_link) $(DESKTOP_SRC)/$$i $(DESKTOP_TARGET)/$$i + done + fi desktop_remove: -ifeq ($(shell [ -e $(DESKTOP_TARGET) ] $(return_val_truthy) ), true) - $(info ==> removing rofi desktop entries.) - cd $(DESKTOP_SRC) ; \ - for i in *.desktop; do ; \ - $(rm_link) $(DESKTOP_TARGET)/$$i ; \ - done -endif + if [[ ! -e $(DESKTOP_TARGET) ]] ; then + $(report) warn "$(DESKTOP_TARGET) does not exist. Skipping." + else + $(report) header "Removing .desktop files" + cd $(DESKTOP_SRC) + for i in *.desktop ; do + $(rm_link) $(DESKTOP_TARGET)/$$i + done + fi diff --git a/ssh/makefile b/ssh/makefile index 46c2338..85abdd0 100644 --- a/ssh/makefile +++ b/ssh/makefile @@ -1,35 +1,37 @@ SRC_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) CONFIG_SRC := $(SRC_DIR)/config CONFIG_TRGT := ~/.ssh/config -JPATRICK_KEY := ~/.ssh/git.jpatrick.io +GIT_KEY := ~/.ssh/git.jpatrick.io include ../lib/shared.mk install: | init update init: - $(info => Setting up ssh) + $(report) header "Setting up ssh" $(mk_link) $(CONFIG_SRC) $(CONFIG_TRGT) $(mk_link) $(SRC_DIR)/public_keys ~/.ssh/public_keys - $(MAKE) -C $(SRC_DIR) init_jpatrick_key + $(MAKE) -C $(SRC_DIR) init_git_key update: - cd ~/.ssh \ - && mkdir -p public_keys/`hostname` \ - && for i in *.pub ; do ; \ - cp $$i public_keys/`hostname`/$$i ; \ + mkdir -p public_keys/`hostname` + cd ~/.ssh + $(report) header "Copying public keys" + for i in *.pub ; do + cp $$i public_keys/`hostname`/$$i + $(report) pass "Copied $$i" done remove: - $(info => Remvoing ssh) - $(rm_link) $(TARGET) - $(report) warn "NOTE: All prior keys still remain." + $(report) header "Removing ssh sym-links" + $(rm_link) $(CONFIG_TRGT) + $(report) warn "NOTE: All keys still remain." -init_jpatrick_key: -ifeq ($(shell [ ! -e $(JPATRICK_KEY) ] $(return_val_truthy) ), true) - $(report) info "Setting up key for jpatrick.io" - ssh-keygen -t ed25519 -C "`hostname`: `date`" -f $(JPATRICK_KEY) -N "" \ - ; $(report) info "jpatrick.io key created" -else - $(report) warn "Key for jpatrick.io already created" -endif +init_git_key: + if [[ -e $(GIT_KEY) ]] ; then + $(report) debug "$(GIT_KEY) already installed." + else + $(report) info "Setting up key for git.jpatrick.io" + ssh-keygen -t ed25519 -C "`hostname`: `date`" -f $(GIT_KEY) -N "" \ + ; $(report) info "git.jpatrick.io key created" + fi diff --git a/sway/makefile b/sway/makefile index 702ef16..370f8a3 100644 --- a/sway/makefile +++ b/sway/makefile @@ -6,21 +6,21 @@ TARGET := $(XDG_DIR)/sway install: | init update init: -ifeq ($(call cmd_exist,sway), true) - $(info => Setting up sway) - $(mk_link) $(SRC) $(TARGET) -else - $(report) warn "Sway not installed. Skipping." -endif + if (( ! $$+commands[sway] )) ; then + $(report) debug "Sway not installed. Skipping." + else + $(report) header "Setting up sway" + $(mk_link) $(SRC) $(TARGET) + fi update: -ifeq ($(call cmd_exist,swaymsg), true) - $(info => Reloading sway) - swaymsg reload ; $(report) "sway reload" -else - $(report) warn "swaymsg not installed. Skipping." -endif + if (( ! $$+commands[swaymsg] )) ; then + $(report) debug "swaymsg not installed. Skipping." + else + $(report) header "Reloading sway" + swaymsg reload ; $(report) "sway reload" + fi remove: - $(info => Remvoing sway) + $(report) header "Removing sway" $(rm_link) $(TARGET) diff --git a/sway/scripts/printscreen b/sway/scripts/printscreen index b01c230..bc655ac 100755 --- a/sway/scripts/printscreen +++ b/sway/scripts/printscreen @@ -1,7 +1,7 @@ #! /bin/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 \ && wl-copy $file \ && notify-send -i $file "File copied to clipboard" diff --git a/tmux/makefile b/tmux/makefile index 2f26472..d610033 100644 --- a/tmux/makefile +++ b/tmux/makefile @@ -7,16 +7,15 @@ include ../lib/shared.mk install: | init update init: -$(info => tmux init) -ifeq ($(call cmd_exist,tmux), true) - $(info => Setting up tmux) - $(mk_link) $(SOURCE) $(TARGET) -else - $(report) warn "tmux not installed." -endif + if (( ! $$+commands[tmux] )) ; then + $(report) header "tmux not installed" + else + $(report) header "tmux init" + $(mk_link) $(SOURCE) $(TARGET) + fi update: remove: - $(info => Remvoing tmux config) + $(report) header "Removing tmux config" $(rm_link) $(TARGET) diff --git a/tridactyl/makefile b/tridactyl/makefile index 0b2178e..cdfe0c7 100644 --- a/tridactyl/makefile +++ b/tridactyl/makefile @@ -7,22 +7,22 @@ SCRIPTS_TARGET := ~/.local/share/tridactyl/scripts install: | init update init: - $(info => setting up Tridaycl) -ifeq "$(IS_MAC)" "true" - $(MAKE) -C $(SRC_DIR) setup -else ifeq "$(call cmd_exist,firefox)" "true" - $(MAKE) -C $(SRC_DIR) setup -else - $(report) warn "This doesn't seem to be an env for Tridactyl. Skipping." -endif + if [[ $OSTYPE = darwin* ]] ; then + $(MAKE) -C $(SRC_DIR) setup + elif (( $$+commands[firefox] )) ; then + $(MAKE) -C $(SRC_DIR) setup + else + $(report) debug "This doesn't seem to be an env for Tridactyl. Skipping." + fi setup: + $(report) header "Setting up Tridaycl" $(mk_link) $(SRC_DIR) $(RC_TARGET) $(mk_link) $(SRC_DIR)/scripts $(SCRIPTS_TARGET) update: remove: - $(info => Remvoing tridactyl ) + $(report) header "Removing Tridaycl" $(rm_link) $(RC_TARGET) $(rm_link) $(SCRIPTS_TARGET) diff --git a/tridactyl/themes/onedark.css b/tridactyl/themes/onedark.css index d33d4e6..3fef847 100644 --- a/tridactyl/themes/onedark.css +++ b/tridactyl/themes/onedark.css @@ -89,6 +89,10 @@ width: 100%; } +#completions .optionContainer .option { + overflow: auto; +} + #completions .optionContainer .option { line-height: 1.4; } diff --git a/vim/makefile b/vim/makefile index 6659ff0..e2674fa 100644 --- a/vim/makefile +++ b/vim/makefile @@ -8,22 +8,27 @@ include ../lib/shared.mk install: | init update init: -ifneq ($(call cmd_exist,vim), true) - $(error Vim not installed) -endif - $(info => Setting up vim) - $(mk_link) $(SRC_DIR) $(TARGET_DIR) - $(mk_link) $(SRC_DIR)/vimrc ~/.vimrc + if (( $$+commands[vim] )) ; then + $(report) header "Setting up vim" + $(mk_link) $(SRC_DIR) $(TARGET_DIR) + $(mk_link) $(SRC_DIR)/vimrc ~/.vimrc + else + $(report) warn "cannot find vim?" + fi update: -ifneq ($(call cmd_exist,vim), true) - $(error Vim not installed) -endif - $(info => Updating vim) - curl -fsLo $(PLUG_PATH) $(PLUG_URL) ; $(report) "vim plug setup" - vim +PlugInstall +PlugUpdate +qall ; $(report) "downloading/updating plugins" + if (( $$+commands[vim] )) ; then + $(report) header "Upgrading vim" + curl -fsLo $(PLUG_PATH) $(PLUG_URL) \ + ; $(report) "vim plug setup" + vim +PlugInstall +PlugUpdate +qall \ + ; $(report) "downloading/updating plugins" + else + $(report) warn "cannot find vim?" + fi + remove: - $(info => Removing vim config) + $(report) header "Removing vim config" $(rm_link) ~/.vimrc $(rm_link) $(TARGET_DIR) diff --git a/vim/vimrc.d/plugins.vim b/vim/vimrc.d/plugins.vim index ec21cd9..f7b19a7 100644 --- a/vim/vimrc.d/plugins.vim +++ b/vim/vimrc.d/plugins.vim @@ -28,12 +28,9 @@ Plug 'Shougo/deoplete.nvim' , Cond(g:has_async, { 'on': [] }) Plug 'Shougo/neco-vim' , {'for' : 'vim'} Plug 'Shougo/neocomplete.vim' , Cond(!g:has_async, { 'on': [] }) Plug 'Shougo/vimproc.vim' , {'do' : 'make'} -Plug 'SirVer/ultisnips' , { 'on': [] } Plug 'Yggdroot/indentLine' Plug 'airblade/vim-gitgutter' Plug 'bronson/vim-trailing-whitespace' -Plug 'danchoi/ri.vim' , {'for' : 'ruby'} -Plug 'fatih/vim-go' , {'for' : 'go'} Plug 'godlygeek/tabular' Plug 'haya14busa/incsearch.vim' Plug 'honza/vim-snippets' @@ -45,25 +42,17 @@ Plug 'kien/rainbow_parentheses.vim' Plug 'majutsushi/tagbar' Plug 'osyo-manga/vim-over' Plug 'qpkorr/vim-bufkill' , {'on': 'BD'} -Plug 'racer-rust/vim-racer' , {'for' : 'rust'} Plug 'rizzatti/dash.vim' Plug 'roxma/nvim-yarp' , 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/nerdtree' , { 'on': 'NERDTreeToggle' } Plug 'scrooloose/syntastic' , Cond(!g:has_async) -Plug 'tpope/vim-bundler' , {'for' : 'ruby' } Plug 'tpope/vim-eunuch' 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-themes' -Plug 'vim-ruby/vim-ruby' , {'for' : 'ruby' } Plug 'w0rp/ale' , Cond(g:has_async) -Plug 'wincent/terminus' for fpath in split(globpath('~/.vim/plug.d/', '*.vim'), '\n') exe 'source' fpath @@ -81,13 +70,6 @@ endfor if !exists('g:airline_symbols') let g:airline_symbols = {} 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#left_sep = ' ' let g:airline#extensions#tabline#left_alt_sep = '|' diff --git a/waybar/makefile b/waybar/makefile index 4ea7137..f34905e 100644 --- a/waybar/makefile +++ b/waybar/makefile @@ -6,23 +6,21 @@ TARGET := $(XDG_DIR)/waybar install: | init update init: -ifeq ($(call cmd_exist,waybar), true) - $(info => Setting up waybar) - $(mk_link) $(SRC) $(TARGET) -else - $(report) warn "waybar not installed. Skipping." -endif + if (( $$+commands[waybar] )) ; then + $(report) header "Setting up waybar" + $(mk_link) $(SRC) $(TARGET) + else + $(report) debug "waybar not installed. Skipping." + fi update: -ifeq ($(call cmd_exist,swaymsg), true) - $(info => Reloading sway) - swaymsg reload ; $(report) "sway reload" -else - $(report) warn "swaymsg not installed. Skipping." -endif + if (( $$+commands[swaymsg] )) ; then + $(report) header "Reloading waybar" + swaymsg reload ; $(report) "sway reload" + else + $(report) debug "swaymsg not installed. Skipping." + fi remove: - $(info => Removing waybar) + $(report) header "Removing waybar" $(rm_link) $(TARGET) - -.PHONY: install update init remove diff --git a/zsh/environment/host/wok/zshrc b/zsh/environment/host/wok/zshrc new file mode 100644 index 0000000..7934649 --- /dev/null +++ b/zsh/environment/host/wok/zshrc @@ -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 -)" diff --git a/zsh/environment/host/zuk/zprofile b/zsh/environment/host/zuk/zprofile new file mode 100644 index 0000000..eaa5b0d --- /dev/null +++ b/zsh/environment/host/zuk/zprofile @@ -0,0 +1 @@ +source /usr/share/chruby/chruby.sh diff --git a/zsh/makefile b/zsh/makefile index 796ea1e..f249b5f 100644 --- a/zsh/makefile +++ b/zsh/makefile @@ -8,35 +8,47 @@ install: | init update init: $(info => Setting up zsh) -ifeq ($(shell [ ! -e $(ZPLUG_DIR) ] $(return_val_truthy) ), true) - 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 + $(MAKE) -C $(SRC) init_zplug $(mk_link) $(SRC) ~/.zsh $(mk_link) $(ZSH_DIR)/zshrc ~/.zshrc $(mk_link) $(ZSH_DIR)/zlogin ~/.zlogin $(mk_link) $(ZSH_DIR)/zprofile ~/.zprofile $(mk_link) $(ZSH_DIR)/zshenv ~/.zshenv $(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: - [ -e $(ZPLUG_DIR) ] \ - && ( echo "=> Updating zplug" \ - source $(ZPLUG_DIR)/init.zsh ; source $(ZSH_DIR)/zplug ; zplug install ; zplug update ) \ - || $(report) warn "No zplug install detected. Skipping." + if [ -e $(ZPLUG_DIR) ] ; then + $(report) header "Updating zplug" + source $(ZPLUG_DIR)/init.zsh + 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: -ifeq ($(shell [ -e $(ZPLUG_DIR) ] $(return_val_truthy) ), true) - $(report) warn "Leaving $(ZPLUG_DIR) directory." -endif - $(info => Removing zsh) + rm -rf $(ZPLUG_DIR) ; $(report) "deleting zplug dir" $(rm_link) ~/.zprofile $(rm_link) ~/.zlogin $(rm_link) ~/.zshrc $(rm_link) ~/.zsh $(rm_link) ~/.zshenv - $(mk_link) $(ZSH_DIR)/zlogout ~/.zlogout + $(rm_link) ~/.zlogout diff --git a/zsh/modules/alias/init.zsh b/zsh/modules/alias/init.zsh index 4dd9914..73abf06 100644 --- a/zsh/modules/alias/init.zsh +++ b/zsh/modules/alias/init.zsh @@ -8,7 +8,11 @@ alias ls="ls $color_flag" alias l="ls -lh $color_flag" alias la="ls -lha $color_flag" +<<<<<<< HEAD alias lf='ls -1tr | tail -1' +======= +alias lf="ls -1tr | tail -n 1" +>>>>>>> fdc2d49c6e53000b36e793ba7fdd9e1c8e8ec9bb alias docker="sudo docker" alias dc="sudo docker-compose" diff --git a/zsh/zplug b/zsh/zplug index 20f6101..0867139 100755 --- a/zsh/zplug +++ b/zsh/zplug @@ -2,77 +2,30 @@ source ${ZPLUG_HOME}/init.zsh -zplug "junegunn/fzf-bin", \ - from:gh-r, \ - as:command, \ - rename-to:fzf +zplug "${ZDIR}/modules/bin/", from:local, as:command, use:"*" +zplug "junegunn/fzf-bin", from:gh-r, as:command, rename-to:fzf +zplug "zdharma/zsh-diff-so-fancy", as:command, use:"bin/{git-dsf,diff-so-fancy}" -zplug "zdharma/zsh-diff-so-fancy", \ - as:command, \ - use:"bin/{git-dsf,diff-so-fancy}" - -zplug "${ZDIR}/modules/bin/", \ - from:local, \ - as:command, \ - use:"*" - -zplug "zdharma/fast-syntax-highlighting", \ - 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 +zplug "${ZDIR}/modules/alias/", from:local, as:plugin +zplug "${ZDIR}/modules/complete/", from:local, as:plugin +zplug "${ZDIR}/modules/directory/", from:local, as:plugin +zplug "${ZDIR}/modules/history/", from:local, as:plugin +zplug "${ZDIR}/modules/keybinds/", from:local, as:plugin +zplug "hlissner/zsh-autopair", as:plugin, defer:2 +zplug "junegunn/fzf", use:"shell/*.zsh", defer:2 +zplug "mafredri/zsh-async", as:plugin, defer:2 +zplug "wfxr/forgit", as:plugin, defer:2 +zplug "zdharma/fast-syntax-highlighting", as:plugin, defer:2 +zplug "zsh-users/zsh-autosuggestions", as:plugin, defer:2 +zplug "zsh-users/zsh-completions", as:plugin, defer:2 +zplug "zsh-users/zsh-history-substring-search", as:plugin, defer:2 if [ -n "$SSH_CONNECTION" ] ; then - zplug "${ZDIR}/modules/prompt/",\ - from:local,\ - use:uncommon.zsh, \ - as:theme + zplug "${ZDIR}/modules/prompt/",\ from:local,\ use:uncommon.zsh, as:theme else - zplug "denysdovhan/spaceship-prompt", \ - use:spaceship.zsh, \ - from:github, \ - as:theme + zplug "denysdovhan/spaceship-prompt", use:spaceship.zsh, from:github, as:theme fi env_loader zplug zplug load - diff --git a/zsh/zshenv b/zsh/zshenv index 354a338..4b7acdf 100644 --- a/zsh/zshenv +++ b/zsh/zshenv @@ -33,10 +33,10 @@ if [ -z "$SPACESHIP_PROMPT_ORDER" ]; then golang # Go section rust # Rust section haskell # Haskell Stack section - docker # Docker section + #docker # Docker section venv # virtualenv section pyenv # Pyenv section - kubecontext # Kubectl context section + #kubecontext # Kubectl context section terraform # Terraform workspace section exec_time # Execution time line_sep # Line break @@ -72,6 +72,10 @@ env_loader(){ [ -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 if [ -d $user_script_dir ] ; then export PATH="$user_script_dir:$PATH"