dotfilery, configuration, environment settings, automation, etc.

Overview

     ┌┬┐┌─┐┌─┐┌─┐┬  ┬┌┬┐┬ ┬┬┌─┐
     │││├┤ │ ┬├─┤│  │ │ ├─┤││   :: bits & bobs, dots & things.
     ┴ ┴└─┘└─┘┴ ┴┴─┘┴ ┴ ┴ ┴┴└─┘
     @megalithic

screenshot

🚀 Installation

If you want to kick the tires, you can simply:

curl -fsSL https://raw.githubusercontent.com/megalithic/dotfiles/main/bin/_dotup | zsh

The install script will install things and symlink the appropriate files in ~/.dotfiles to your home directory (~). Everything is configured and tweaked within ~/.dotfiles, though. The majority of files and folders get stowed in to your $HOME, or to $XDG_CONFIG_HOME.

I have tried to be platform agnostic, but the majority of scripts that run here are for macOS (specifically Big Sur at the time of this edit), with a handful of debian/ubuntu linux specific platform scripts and provisions. This means that certain tools/binaries I rely on may or may not install/configure on linux. Though, I have tested it decently well on an Ubuntu-based Linode instance.

⚠️ Thar be dragons..

I highly recommend you dig into the scripts and configs to see what all is going on (because it does a lot that I'm not describing here) before you install a stranger's shell scripts all willy-nilly, throwing caution to the wind. 🤣

Things

A few of the must-have tools I roll with:

💻 Stuff

The file hierarchy:

  • bin/: Anything in bin/ will get added to your $PATH and be made available everywhere.
  • Everything else is handled by custom installers based upon the current platform; otherwise, stow handles the rest (clean and easy symlinking).

🔐 Privates

Use ~/.localrc as your location for sensitive information. Optionally, you can let bin/_dotup handle the cloning of your private repo to ~/.dotfiles/private, which will execute an install script, assuming it's located at ~/.dotfiles/private/install.sh.

NOTE: You'll want to be sure to setup an SSH key for github access to this repo and likely to your private repo too: https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

Also helpful: https://docs.github.com/en/free-pro-team@latest/github/using-git/caching-your-github-credentials-in-git

🙏 Props

🧐 Refs:

megadotfiles

Comments
  • Snazzy underline in README screenshot

    Snazzy underline in README screenshot

    Hi @megalithic 😄,

    I stumbled across a comment by you on the kitty terminals discussions where you posted a similar screenshot to the one you have in your README, and I've been wondering how you got the underline between what I'm guessing is your kitty tab bar and the rest of the content. Hope the line I'm referring to is clear, otherwise I can do a diagram.

    I'm not willing to do any custom python for it, noticed your bar is creating using a custom script personally cba to dig into something that isn't just an option right now but was just curious how you were doing it.

    opened by akinsho 6
  • Send message to proper slack channel for status things.

    Send message to proper slack channel for status things.

    https://github.com/megalithic/dotfiles/blob/3feca6395bf5cb688f6b0090d30c503f46f14215/bin/slack#L40

    Would love to send a message to our #away channel with the message, too.

    enhancement 
    opened by megalithic 1
  • TODO: fishshell things

    TODO: fishshell things

    This is a bunch of TODOs for my future self when migrating zsh -> fish things.

    • [ ] nvimupdate -> https://gist.github.com/killercup/5715389#file-update-fish
    enhancement 
    opened by megalithic 1
  • Back to paq-nvim with lots of clean-up

    Back to paq-nvim with lots of clean-up

    • chore(nvim): paq-nvim mega migration
    • chore(nvim): adds simple start screen to nvim
    • chore(nvim): kitty/nvim changes, remove telekasten
    • chore(nvim): paq-nvim lazy loading!
    • chore: more tweaks that were not in main
    • chore(nvim): config clean up, still with paq-nvim
    • fix(dotbot,paq): fix installer
    • chore(nvim): paq-nvim/lsp/preflight
    • chore(nvim): great lsp move to nvim/plugin
    • chore(nvim): move plugin config; add null-ls
    • chore(nvim): clean up of more unused modules;
    • chore(nvim,kitty): more tweaks for kitty and cmp
    • chore(ftm): combine tmuxinator & sessions
    opened by megalithic 0
  • packer

    packer

    • wip(nvim): paq-nvim -> packer.nvim
    • broke
    • fix: packer doing the right ting! HT @ryansch
    • fix: autolayout window location tings..
    • chore(sk): unmap default t
    • chore(nvim,sk): fix dirbuf; mappings; sk vunmap
    opened by megalithic 0
  • create mailmate custom keybindings

    create mailmate custom keybindings

    i'd really like to have custom keybindings (and other things like custom bundle extensions) for mailmate, stored in my config:

    https://manual.mailmate-app.com/custom_key_bindings

    opened by megalithic 0
  • Fudge send-keys support for `et` so tmuxinator can do the right thing

    Fudge send-keys support for `et` so tmuxinator can do the right thing

    Basically just need to mimic what @ryansch is doing, but for my tmuxinator/ftm setup: https://github.com/ryansch/dotfiles/commit/83e35fe7c540cd9be8975876bccee0a5f3ff6b7b

    opened by megalithic 1
  • weechat libera chat needs to be setup

    weechat libera chat needs to be setup

    some approximation of this:

    # libera server
    /server add libera chat.libera.net/7000 -ssl
    /set irc.server.libera.nicks "<nickname>, <nickname>_"
    /set irc.server.libera.username "<nickname>"
    /set irc.server.libera.realname "<name>"
    /set irc.server.libera.ssl "on"
    
    # set-up a secure SASL password for Nickserv
    # assumes you did /secure passphrase <some-password>
    /secure set libera_password <mypassword>
    /set irc.server.libera.sasl_password "${sec.data.libera_password}"
    /set irc.server.libera.sasl_username "mynick"
    /set irc.server.libera.autojoin <comma separated list of channels> 
    
    opened by megalithic 0
  • _references

    _references

    references/links to various things

    tools

    • https://github.com/jamesob/desk
    • https://github.com/bvgastel/clippy
    • https://github.com/b0o/zfzf
    • https://github.com/lemonade-command/lemonade
    • https://github.com/chipsenkbeil/distant
    • http://www.glassgiant.com/ascii/
    • https://manytools.org/hacker-tools/convert-images-to-ascii-art/
    • https://github.com/mrjones2014/dotfiles/blob/master/gpg-setup.md (gpg things)

    general repos

    • https://github.com/ryansch/dotfiles/blob/main/script/gitconfig
    • https://github.com/dinhhuy258/dotfiles/blob/master/zsh/scripts/fzf.zsh

    hammerspoon

    • https://github.com/folke/dot/blob/master/hammerspoon/running.lua
    • https://github.com/dbalatero/dotfiles/blob/master/hammerspoon/slack/init.lua
    • https://github.com/AdamWagner/stackline/blob/main/stackline/window.lua
    • https://github.com/dmitmel/dotfiles/blob/master/hammerspoon/TerminalPalette.lua
    • https://github.com/kassio/dotfiles/blob/main/home/hammerspoon/Spoons/DoubleCmdQToClose.spoon/init.lua

    neovim

    plugins to investigate

    • https://github.com/tpope/vim-unimpaired
    • https://github.com/folke/persistence.nvim
    • https://github.com/s1n7ax/nvim-search-and-replace
    • https://github.com/kristijanhusak/orgmode.nvim
    • https://github.com/blackCauldron7/surround.nvim
    • https://github.com/yazgoo/yank-history
    • https://github.com/David-Kunz/treesitter-unit
    • https://github.com/AckslD/nvim-neoclip.lua
    • https://github.com/kevinhwang91/nvim-hlslens
    • https://github.com/kevinhwang91/nvim-bqf
    • https://github.com/rmagatti/goto-preview
    • https://github.com/sindrets/winshift.nvim
    • https://github.com/jakelinnzy/autocmd-lua
    • https://github.com/b0o/mapx.nvim
    • https://github.com/jameshiew/nvim-magic
    • https://github.com/edluffy/specs.nvim
    • https://github.com/haringsrob/nvim_context_vt
    • https://github.com/abecodes/tabout.nvim
    • https://github.com/aserowy/tmux.nvim
    • https://github.com/jamestthompson3/nvim-remote-containers
    • https://github.com/beauwilliams/focus.nvim
    • https://gitlab.com/yorickpeterse/nvim-window
    • https://github.com/mfussenegger/nvim-dap
    • https://github.com/akinsho/bufferline.nvim
    • https://github.com/gpanders/vim-medieval
    • https://github.com/bounceme/remote-viewer
    • https://github.com/kristijanhusak/vim-dirvish-git
    • https://github.com/roginfarrer/vim-dirvish-dovish
    • https://github.com/tjdevries/tree-sitter-lua
    • https://github.com/nanozuki/tabby.nvim
    • https://github.com/akinsho/bufferline.nvim
    • https://github.com/chentau/marks.nvim
    • https://github.com/tjdevries/lazy.nvim
    • https://github.com/ThePrimeagen/harpoon (replacement for c-o/c-i things)
    • https://github.com/antonk52/cssmodules-language-server
    • https://github.com/luukvbaal/stabilize.nvim

    repos with handy things

    • https://github.com/rockerBOO/awesome-neovim
    • https://github.com/fsouza/dotfiles
    • https://github.com/akinsho/dotfiles
    • https://github.com/akinsho/dotfiles/blob/main/.config/nvim/lua/as/external.lua (control external apps)
    • https://github.com/JoosepAlviste/dotfiles
    • https://github.com/kevinhwang91/dotfiles
    • https://github.com/folke/dot/tree/master/config/nvim
    • https://github.com/lukas-reineke/dotfiles/tree/master/vim
    • https://github.com/lukas-reineke/dotfiles/blob/master/vim/ftplugin/org.lua
    • https://github.com/theHamsta/dotfiles/blob/master/.config/nvim/packages.lua (lots of packages to checkout)
    • https://github.com/qhuyduong/doom-nvim/blob/main/doom_config.lua#L329-L357 (projectionist)
    • https://github.com/wincent/wincent/blob/main/aspects/nvim/files/.config/nvim/after/plugin/projectionist.lua
    • https://github.com/ahmedelgabri/dotfiles/blob/main/config/nvim/after/plugin/projectionist.lua
    • https://github.com/gabrielpoca/dotfiles/blob/master/roles/vim/files/nvim/lua/navigation.lua#L51-L100
    • https://github.com/fitrh/init.nvim/blob/main/lua/lsp/event.lua (neat autocmd/augroup things)
    • https://github.com/TimUntersberger/macos.config/tree/master/skhd (SKHD)
    • https://github.com/Furkanzmc/dotfiles/blob/master/vim/lua/vimrc/lsp.lua#L340-L435 (efm-langserver)
    • https://github.com/lewis6991/dotfiles/blob/master/nvim/lua/lewis6991/plugins.lua#L98-L121 (easy-align)
    • https://github.com/hrsh7th/nvim-cmp/pull/341/files (how to generate vim docs)
    • https://github.com/ibhagwan/nvim-lua/blob/main/lua/plugins/ (author of fzf-lua)
    • https://github.com/henrik/dotfiles/tree/master/git_template/hooks (don't commit if debugger, pry, io.inspect, etc)
    • https://github.com/Luxed/nvim-config/blob/master/lua/helpers/syntax.lua (super handy way of getting TS highlight things)
    • https://github.com/ecosse3/nvim/blob/master/lua/plugins/dap.lua (using the dap plugin with JS/TS)
    • https://github.com/guzmonne/dotfiles

    reddit posts from r/neovim or r/vim

    • https://www.reddit.com/r/neovim/comments/pp4ye2/i_want_to_make_vimlike_markdown_editor_with/
    • https://www.reddit.com/r/neovim/comments/p7cf4c/which_plugins_or_functionality_do_you_think_is/
    • https://www.reddit.com/r/vim/comments/p4tlux/what_are_the_most_useful_lines_in_your_vimrc/
    • https://www.reddit.com/r/neovim/comments/pejmm6/how_to_make_nn_repeat_other_kinds_of_jumps_like/
    • https://www.reddit.com/r/neovim/comments/pmknoi/nextbestthing_to_treesitter_for_markdown/
    • https://www.reddit.com/r/vim/comments/pozc9s/tips_for_working_in_large_projects_with_vim/

    blog posts

    • https://bluz71.github.io/2021/09/10/vim-tips-revisited.html
    • https://creativecreature.com/notes/vim-non-greedy-regular-expressions

    tmux

    • https://github.com/lewis6991/dotfiles/blob/master/tmux.conf (really cool keybinding menu thingies)
    • https://www.bios-blog.com/tmux.html
    • https://github.com/b0o/tmux-conf
    • https://github.com/b0o/tmux-autoreload
    • https://github.com/jabirali/tmux-tilish
    • https://github.com/gpanders/dotfiles/blob/master/.config/tmux/tmux.conf#L30
    • https://github.com/ori92/DotFiles/blob/main/.tmux.conf (handy config things)
    • https://github.com/MunifTanjim/tmux-suspend
    • https://github.com/vascomfnunes/dotfiles/blob/master/repos/dotfiles/home/.tmux.conf (handy configs)

    zsh/shell

    • https://unix.stackexchange.com/questions/62579/is-there-a-way-to-add-a-directory-to-my-path-in-zsh-only-if-its-not-already-pre/62599#62599
    • https://github.com/conventional-changelog/commitlint/tree/master/%40commitlint/config-conventional
    • https://stribika.github.io/2015/01/04/secure-secure-shell.html

    weechat

    • http://www.futurile.net/2020/12/01/weechat-even-more-configuration-for-irc-and-slack/
    • https://gist.github.com/spicycode/371ca343201391a7eb5409f3288e2864
    • https://hugo.md/post/the-perfect-weechat-setup-2/
    • https://micropipes.com/blog/2015/05/19/enabling-encryption-in-weechat/
    • /secure
    • https://gist.github.com/Strykar/ebcc0dbfec27ddcc303e73e7f809c072
    docs 
    opened by megalithic 0
My dotfiles -My configuration, with installations steps.

.dotfiles My configuration, with installations steps. Installation Oh My ZSH Install with this command: sh -c "$(curl -fsSL https://raw.githubusercont

Luca Angioloni 4 Dec 14, 2022
Command line, configuration and persistence utilities

Zensols Utilities Command line, configuration and persistence utilities generally used for any more than basic application. This general purpose libra

Paul Landes 2 Nov 17, 2022
PdpCLI is a pandas DataFrame processing CLI tool which enables you to build a pandas pipeline from a configuration file.

PdpCLI Quick Links Introduction Installation Tutorial Basic Usage Data Reader / Writer Plugins Introduction PdpCLI is a pandas DataFrame processing CL

Yasuhiro Yamaguchi 15 Jan 7, 2022
Personal and work vim 8 configuration with submodules

vimfiles Windows Vim 8 configuration files based on the recommendations of Ruslan Osipov, Keep Your vimrc file clean and The musings of bluz71. :help

null 1 Aug 27, 2022
a CLI that provides a generic automation layer for assessing the security of ML models

a CLI that provides a generic automation layer for assessing the security of ML models

Microsoft Azure 268 May 9, 2021
A simple automation script that logs into your kra account and files your taxes with one command

EASY_TAX A simple automation script that logs into your kra account and files your taxes with one command Currently works for Chrome users. Will creat

leon koech 13 Sep 23, 2021
Python script to tabulate data formats like json, csv, html, etc

pyT PyT is a a command line tool and as well a library for visualising various data formats like: JSON HTML Table CSV XML, etc. Features Print table o

Mobolaji Abdulsalam 1 Dec 30, 2021
CLI/library to control FNIRSI DC Power Supply (DC-6006L, etc)

dc6006l - CLI/library to control FNIRSI DC Power Supply (DC-6006L, etc) What is this? FNIRSI DC6006L is a programmable DC power supply that is quite c

Taisuke Yamada 7 Sep 25, 2022
A command line interface to interact with the Hypixel api allowing the user to get stats, leaderboards, etc

HyConsole is a way to get data on players and leaderboards from the Hypixel Minecraft server from the command line. Keep in mind I have no a

null 1 Feb 14, 2022
This is a Command Line program to interact with your NFTs, Cryptocurrencies etc

This is a Command Line program to interact with your NFTs, Cryptocurrencies etc. via the ThirdWeb Platform. This is just a fun little project that I made to be able to connect to blockchains and Web3 from the command line.

Arpan Pandey 5 Oct 2, 2022
Organize Django settings into multiple files and directories. Easily override and modify settings. Use wildcards and optional settings files.

Organize Django settings into multiple files and directories. Easily override and modify settings. Use wildcards in settings file paths and mark setti

Nikita Sobolev 942 Jan 5, 2023
Read configuration settings from python configuration files.

Maison Read configuration settings from python configuration files. Motivation When developing a python application, e.g a command-line tool, it can b

null 9 Jan 4, 2023
GUI app to read settings and stats from Cloudflare WARP CLI for Linux, and change some settings

warp-cli-gui GUI app to read settings and stats from Cloudflare WARP CLI for Linux, and change some settings. Description Python program that will int

Danie 6 Nov 1, 2022
sync application configuration and settings across multiple multiplatform devices

sync application configuration and settings across multiple multiplatform devices ✨ Key Features • ⚗️ Installation • ?? How To Use • ?? FAQ • ??️ Setu

Souvik 6 Aug 25, 2022
Alternative firmware for ESP8266 with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX. Full documentation at

Alternative firmware for ESP8266/ESP32 based devices with easy configuration using webUI, OTA updates, automation using timers or rules, expandability

Theo Arends 59 Dec 26, 2022
A tool to manage configuration files, build scripts etc. across multiple projects.

A tool to manage configuration files, build scripts etc. across multiple projects.

null 8 Dec 14, 2022
Alacritty terminal used with Bash, Tmux, Vim, Mutt, Lynx, etc. and the many different additions added to each configuration file

Alacritty terminal used with Bash, Tmux, Vim, Mutt, Lynx, etc. and the many different additions added to each configuration file

Carter 19 Aug 24, 2022
Guilherme Matheus 11 Sep 11, 2022