ratmav / dotfiles Goto Github PK
View Code? Open in Web Editor NEWhome sweet home.
home sweet home.
Github wikis are OK, but keeping that in a separate repo is annoying. Create a docs
directory and move the files in there.
need a parinfer plugin for lisps, particularly clojure.
# Start tmux if present and not already running.
if command -v tmux>/dev/null; then
[[ ! $TERM =~ screen ]] && [ -z $TMUX ] && exec tmux
fi
The test used to determine if tmux
is installed in the Bash profile always fails on CentOS 7, and probably other Linux distributions. This should be an easy fix, but logging here to remember to fix it later. Not a blocking issue at the moment.
use a default font (monaco is fine, don't need extra glyphs in vim-airline).
Why does pip
output the following during the PyPI package installs?
...checking virtualenvwrapper install...
Requirement already satisfied: virtualenvwrapper in /usr/local/lib/python2.7/site-packages
Requirement already satisfied: virtualenv in /usr/local/lib/python2.7/site-packages (from virtualenvwrapper)
Requirement already satisfied: virtualenv-clone in /usr/local/lib/python2.7/site-packages (from virtualenvwrapper)
Requirement already satisfied: stevedore in /usr/local/lib/python2.7/site-packages (from virtualenvwrapper)
Requirement already satisfied: six>=1.9.0 in /usr/local/lib/python2.7/site-packages (from stevedore->virtualenvwrapper)
Requirement already satisfied: pbr>=2.0.0 in /usr/local/lib/python2.7/site-packages (from stevedore->virtualenvwrapper)
...installed virtualenvwrapper...
...checking autoenv install...
Requirement already satisfied: autoenv in /usr/local/lib/python2.7/site-packages
...installed autoenv...
It looks like the checks to verify the virtualenvwrapper
and autoenv
installs are passing and failing?
Also, at the end, I'm seeing:
...checking install...
...... already installed
Why is the package name blank? Is Bash adding in a mystery empty element to the array of package names somehow? Is the array declared incorrectly? It looks like all the intended packages are being installed....
brave sync between ios and the desktop version...just flat out doesn't work.
honestly, i'm not writing a lot of go (but i'm still interested in shipping binaries).
i AM interested in more web tech.
so...firefox sync works, rust is cool, and i get a cross platform terminal emulator that doesn't run in a browser (alacritty) that can do full screen properly (if what's on the tin is to be trusted).
give alacritty another shot, see if fullscreen works. also might be worth looking at the amp editor. assuming alacritty fullscreen works, automate the install and remove all the brave and go (gvm) stuff from the dotfiles.
should be fairly easy and close to the macos bash. target centos stream for rpm based distros and whatever the current debian release is in a vm.
supported platforms:
bootstrap (bash, powershell):
haskell script:
Only want Livedown and NPM where it's necessary.
use bash function locals where appropriate.
investigate and attempt to implement github actions to run linters on push, etc. shellcheck for bash...not sure about powershell. PSScriptAnalyzer looks like the one, but will probably take some setup for sure.
use goneovim for proper workspace support and remote nvim access.
idk which tpm plugin it is, but fork it and change leader-|
from vertical split all panes to vertical split current pane, and leader-\
to split all panes from split current pane. the mappings to do horizontal splits ('leader-dashand
leader-underscore`) behave more "consistently", i.e. leader-key to split current pane, then leader-shift+key to split from all panes.
Undo the bootstrap Bash script.
use go to detect os, then exec (and forward stdout/stderr to shell) bash or powershell depending on os.
more comprehensive syntax highlighting: https://github.com/sheerun/vim-polyglot
buffer wrangling: https://github.com/jeetsukumaran/vim-buffergator
bunsen seems to default to a solarized theme. see if you can cook up a zenburn one and automate that. also probably worth spinning up the conky config, and whatever other tweaks.
after upgrading to macos catalina, i see this:
The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.
[ccuming@ccuming ~]$
thrilling. ok, so this means that i need to run the chsh
command, then migrate my bash configs to zsh, then script the zsh setup. a stretch goal is to take a look at oh-my-zsh.
this is kind of a pain (bash has "just worked" for me so far), but my understanding is that zsh is just the interpreter, and i can still use bash as a scripting language (for the most part). apple has more info here.
this also means that it's probably worth it on linux (centos stream) to switch to zsh to reuse code.
fork it or figure out a way to leave terminal buffers open after closing them.
Need to check for curl install on linux.
in bash/mac_os.sh
, around lines 47-48:
vscodium_settings() {
if [ -e $HOME/Library/Application\ Support/VSCodium/User/settings.json ]; then
rm -f $HOME/Library/Application\ Support/VSCodium/User/settings.json
fi
ln -s $PWD/settings.json $HOME/Library/Application\ Support/VSCodium/User/settings.json
}
that path is all over the place. it would be nice if it could be defined in a function-local variable. that said, i already tried it and ran into all kinds of problems with "file not found," etc. could just be the whitespace, but i'm not sure.
all other options are super buggy at the moment. get back on the tmux train. here's what how that needs to look:
Also, the tmux setup should be as Vim-like as possible, IIRC there are some interesting config options particularly for the scrollback/search stuff (used to be the F7 key.).
Finally, it's time to integrate Vim's yank and paste as well as tmux with the system clipboard. Hopefully there is a clean cross platform (macOS and Linux) was to handle this. (#23)
NOTE: This means moving back to Vim, not Neovim. Can just use (#21).vimrc
like in the past, etc. It also means we I don't really need vim-buffergator
via #19.
see if you can get rid of vagrant and just use a debian and macos container with compose or something. the macos container at https://github.com/sickcodes/Docker-OSX only runs on debian, though.
try building this and using it, looks minimal enough: https://github.com/smolck/uivonim
windows server 201*, whatever's latest.
be nice to have a cross-platform spotlight clone (lol even on macos because same keyboard shortcuts). cerbero looks great, except it loads a google search plugin by default.
create a fork and try building it w/o the plugin (see line 9 in initializeAsync.js), and if that doesn't break too badly, try writing a ddg plugin!
make cli calls to get accurate (wttr.in doesn't seem super accurate) local weather info, the current date and time in the local timezone, utc, and whatever other timeszones you want (configurable).
write a go binary to do this cross platform, then ship with vim (maybe bundle like vim-ctrlspace does).
this also gets the clock out of airline.
move back to vim, since tmux looks like the best solution for terminal multiplexing. unix philosophy wins again.
the new alacritty terminal emulator looks pretty interesting and is cross platform. it doesn't really do proper full screen yet (alacritty/alacritty#38), but looking at the example config, it looks like it can already do opacity (alacritty/alacritty#331), at least on osx. Linux needs work I think.
Worth keeping an eye on.
set up leader keys to resize windows, and remove the golden-ratio plugin.
something like this looks pretty handy: https://dhruvasagar.com/2014/03/11/creating-custom-scratch-buffers-in-vim
brew cask install iterm2
.
remove powerline, try vim airline. doesn't require weird fonts, although those aren't too hard to install.
write a little go binary to get system status using https://github.com/shirou/gopsutil. be sure to VENDOR AND COMMIT your dependencies in case the repo vanishes.
then, use https://github.com/enricobacis/vim-airline-clock as a guide to provide a vim-airline extension. use the file manager in go layout from https://github.com/vim-ctrlspace/vim-ctrlspace to provide pre-built binaries in the plugin. also include the go binary source for easy hacking. might be a good use case for a git submodule.
minimal plugin for more conventional (to me) project workspace management. leans on tabs and logic from other plugins (give them a shoutout in the readme), this just bundles them all up nicely and limits options so i don't step on my own feet.
desk -> single nvim instance
book -> vim tab (book on desk)
page -> vim buffer (page in book)
Bindings:
dependencies (to be forked and pulled in as needed):
desk sets these as default keybindings, probably using viml commands
some things are in master that aren't atom related but are still pretty nice. stuff like the brew package for bash completion. what else is there? the source code pro fonts package?
see if you can write a custom function that will toggle vim window zoom with Ctrl-w-z
libvterm
clipping bug even an issue anymore? does it still clip with things like golden-ratio? would be nice to update the bug if it doesn't just to let people know. it doesn't seem to be an issue with Ctrl-w-|
/Ctrl-w-=
(built in full-zoom).git grep
ping is getting cumbersome, hopping from terminal to terminal. give FlyGrep a shot using The Silver Searcher as the backend. Also, probably look into forking FlyGrep since it's part of SpaceVim, and TBH I'm not as keen on editor "distributions" as I once was.
found nuake today, which is pretty interesting: it puts a drop down terminal inside nvim. that's pretty neat, and it also seems to avoiding clipping terminal text?!?!! worth looking at harder when i have time.
also, here's a diff i used on init.vim
while tinkering with it:
diff --git a/init.vim b/init.vim
index 34b6aa6..591c668 100644
--- a/init.vim
+++ b/init.vim
@@ -12,8 +12,18 @@ call plug#begin('~/.local/share/nvim/plugged')
Plug 'airblade/vim-gitgutter'
Plug 'nightsense/snow'
Plug 'mrtazz/simplenote.vim'
+ Plug 'https://gitlab.com/Lenovsky/nuake.git'
call plug#end()
+" Nuake
+tnoremap <Leader>t <C-\><C-n>:Nuake<CR>
+nnoremap <Leader>t :Nuake<CR>
+inoremap <Leader>t <C-\><C-n>:Nuake<CR>
+nnoremap <Leader>t :Nuake<CR>
+let g:nuake_position = 'top'
+let g:nuake_size = 0.2
+let g:nuake_per_tab = 1
+
" snow colorscheme
set background=dark
colorscheme snow
@@ -114,7 +124,7 @@ nnoremap <Leader>f :CtrlP .<CR>
nnoremap <Leader>b :CtrlPBuffer<CR>
nnoremap <Leader>c :CtrlPClearCache<CR>
-" Terminal:
+" " Terminal:
:tnoremap <Esc> <C-\><C-n>
:tnoremap <A-h> <C-\><C-N><C-w>h
:tnoremap <A-j> <C-\><C-N><C-w>j
[ccuming@ccuming dotfiles]$ shellcheck .bash*
In .bash_profile line 4:
. ~/.bashrc
^-------^ SC1090: Can't follow non-constant source. Use a directive to specify location.
In .bashrc line 10:
[[ ! $TERM =~ screen ]] && [ -z $TMUX ] && [[ $- == *i* ]] && exec tmux
^---^ SC2086: Double quote to prevent globbing and word splitting.
Did you mean:
[[ ! $TERM =~ screen ]] && [ -z "$TMUX" ] && [[ $- == *i* ]] && exec tmux
In .bashrc line 20:
source "$(brew --prefix)/etc/bash_completion"
^-- SC1090: Can't follow non-constant source. Use a directive to specify location.
In .bashrc line 35:
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
^---------------^ SC1090: Can't follow non-constant source. Use a directive to specify location.
In .bashrc line 36:
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
^------------------------^ SC1090: Can't follow non-constant source. Use a directive to specify location.
In .bashrc line 39:
source "$HOME/.gvm/scripts/gvm"
^----------------------^ SC1090: Can't follow non-constant source. Use a directive to specify location.
In .bashrc line 43:
. ~/.misc_envars
^------------^ SC1090: Can't follow non-constant source. Use a directive to specify location.
For more information:
https://www.shellcheck.net/wiki/SC1090 -- Can't follow non-constant source....
https://www.shellcheck.net/wiki/SC2086 -- Double quote to prevent globbing ...
[ccuming@ccuming dotfiles]$ shellcheck bootstrap.sh
In bootstrap.sh line 3:
source ./bash/mac_os.sh
^--------------^ SC1091: Not following: ./bash/mac_os.sh was not specified as input (see shellcheck -x).
In bootstrap.sh line 4:
source ./bash/linux.sh
^-------------^ SC1091: Not following: ./bash/linux.sh was not specified as input (see shellcheck -x).
In bootstrap.sh line 21:
git config --global core.editor "$(which nvim)"
^---^ SC2230: which is non-standard. Use builtin 'command -v' instead.
In bootstrap.sh line 27:
rm -rf $HOME/$link
^---------^ SC2115: Use "${var:?}" to ensure this never expands to / .
^---^ SC2086: Double quote to prevent globbing and word splitting.
^---^ SC2086: Double quote to prevent globbing and word splitting.
Did you mean:
rm -rf "$HOME"/"$link"
In bootstrap.sh line 28:
ln -s $PWD/$link $HOME/$link
^--^ SC2086: Double quote to prevent globbing and word splitting.
^---^ SC2086: Double quote to prevent globbing and word splitting.
^---^ SC2086: Double quote to prevent globbing and word splitting.
^---^ SC2086: Double quote to prevent globbing and word splitting.
Did you mean:
ln -s "$PWD"/"$link" "$HOME"/"$link"
In bootstrap.sh line 42:
mkdir -p $HOME/.config/nvim
^---^ SC2086: Double quote to prevent globbing and word splitting.
Did you mean:
mkdir -p "$HOME"/.config/nvim
In bootstrap.sh line 44:
ln -s $PWD/init.vim $HOME/.config/nvim/init.vim
^--^ SC2086: Double quote to prevent globbing and word splitting.
^---^ SC2086: Double quote to prevent globbing and word splitting.
Did you mean:
ln -s "$PWD"/init.vim "$HOME"/.config/nvim/init.vim
For more information:
https://www.shellcheck.net/wiki/SC2115 -- Use "${var:?}" to ensure this nev...
https://www.shellcheck.net/wiki/SC1091 -- Not following: ./bash/linux.sh wa...
https://www.shellcheck.net/wiki/SC2086 -- Double quote to prevent globbing ...
[ccuming@ccuming dotfiles]$ shellcheck bash/*
In bash/mac_os.sh line 21:
if brew list | grep $package > /dev/null 2>&1; then
^------^ SC2086: Double quote to prevent globbing and word splitting.
Did you mean:
if brew list | grep "$package" > /dev/null 2>&1; then
In bash/mac_os.sh line 24:
brew install $package
^------^ SC2086: Double quote to prevent globbing and word splitting.
Did you mean:
brew install "$package"
In bash/mac_os.sh line 34:
brew cask reinstall $cask --force 1>/dev/null
^---^ SC2086: Double quote to prevent globbing and word splitting.
Did you mean:
brew cask reinstall "$cask" --force 1>/dev/null
For more information:
https://www.shellcheck.net/wiki/SC2086 -- Double quote to prevent globbing ...
It's worth noting that powerline doesn't work in Atom, which is the option that is working the best at the moment.
Some TODO's:
brew
to install the Source Code Pro fonthttps://github.com/vim-ctrlspace/vim-ctrlspace already supports multi-root workspaces, i think i just need to get used to the keybindings. study up, remove the desk stuff out of init.vim, move nerdtree to Leader-N, and keep moving. configure idk ag or something for workspace search.
make sure the workspace persistence doesn't go in git somehow (should be in $HOME).
https://github.com/syl20bnr/spacemacs#macos
Give it another shot; the terminal emulator in Neovim is a little too quirky, and moving to a Lisp-based environment sounds nice.
package the MarkdownConverter function as a plugin. requires os detection and pandoc. support mac, windows, linux.
just use a vm for now.
Ubuntu uses .profile, so we probably need to copy that to the local bash profile when Ubuntu is the target system.
fire off shellcheck on the bash, and fix whatever it complains about.
it's a bunch of word count, etc. stuff i don't really care about. and the column number is labeled ln
which makes me think line, not column. change that.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.