Skip to content
View chalkedgoose's full-sized avatar
Block or Report

Block or report chalkedgoose

Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
chalkedgoose/README.md

Feel free to hang out, explore some code, or reach out via the contact information on my Github profile.

My Favorite Waiting Room Reads
  1. The Javascript Problem
  2. ReScript – The Language After TypeScript?
  3. New Haskell-Based Web App Specification Language Released in Alpha
  4. Build 2020 Recap
  5. Top 8 JavaScript Automation Testing Frameworks In 2019
Configurations and Apps

I'm a fan of Arc Browser. Though I've only recently started using it, it's proven to be a solid way to manage multiple contexts. I frequently switch between Github, Discord, Slack, and other platforms in my day-to-day work and find it incredibly useful.

Neofetch Results:

OS: macOS 13.5.1 22G90 arm64
Shell: fish 3.6.1
Resolution: 1728x1117
DE: Aqua
WM: Amethyst
Terminal: WezTerm
CPU: Apple M1 Pro
GPU: Apple M1 Pro
Memory: 2697MiB / 16384MiB

I have had a good experience with Amethyst. I tried Yabai and a few other window managers for Mac, but Amethyst resonates with me. It's somewhat inconsequential on smaller screens, but if you work at a desk, it's nice to take advantage of the extra space. Plus, I no longer need to awkwardly position windows.

As a Neovim user and a fan of Lua for programmatically configuring apps, I really appreciate how user-friendly WezTerm is. It's a lot snappier than iTerm2, which would sometimes freeze or experience graphical issues with Neovim tabs.

I prefer fish shell over zsh or bash for no particular reason.

local wezterm = require 'wezterm'

-- This table will hold the configuration.
local config = {}

-- In newer versions of wezterm, use the config_builder which will
-- help provide clearer error messages
if wezterm.config_builder then config = wezterm.config_builder() end

-- This is where you actually apply your config choices

-- For example, changing the color scheme:
config.color_scheme = 'Builtin Solarized Dark'
config.font = wezterm.font 'Fisa Code'
config.window_background_opacity = 0.9

-- and finally, return the configuration to wezterm
return config

Here are some settings from my Neovim base.lua file. I prefer not to share my exact plugins or dotfiles, but these are some settings that I particularly enjoy.

-- Clear any existing autocmds in the 'ClearAutocmds' augroup
-- This is a good practice to avoid multiple autocmds being defined accidentally
vim.cmd([[
  augroup ClearAutocmds
    autocmd!
  augroup END
]])

-- Set the encoding of the script, the encoding of the file, and the fileencoding option
vim.scriptencoding = 'utf-8'
vim.opt.encoding = 'utf-8'
vim.opt.fileencoding = 'utf-8'

-- Enable line numbering
-- vim.wo.number = true
vim.opt.nu = true
vim.opt.relativenumber = true

-- Set various options for better user experience
vim.opt.title = true -- Show filename in the window title
vim.opt.autoindent = true -- Auto-indent new lines based on the previous line's indentation
vim.opt.smartindent = true -- Smart auto-indentation based on file type
vim.opt.hlsearch = false -- Highlight all search matches after search
vim.opt.incsearch = true -- Highlight matches as you type but not after
vim.opt.backup = false -- Disable creating backup files
vim.opt.showcmd = true -- Show partial command in the last line of the screen
vim.opt.cmdheight = 1 -- Set the command line height to 1
vim.opt.laststatus = 2 -- Always show the status line
vim.opt.expandtab = true -- Use spaces instead of tabs
vim.opt.scrolloff = 10 -- Keep 10 lines visible above and below the cursor
vim.opt.shell = 'zsh' -- Use zsh as the default shell
vim.opt.backupskip = {'/tmp/*', '/private/tmp/*'} -- Skip creating backups for these directories
vim.opt.inccommand = 'split' -- Show the effects of a command incrementally, in a split window
vim.opt.ignorecase = true -- Case insensitive searching unless /C or capital letter in search

-- More options for improved user experience
vim.opt.smarttab = true -- Use smart tabs for indent and tab completion
vim.opt.breakindent = true -- Keep indentation when wrapping long lines
vim.opt.shiftwidth = 2 -- Set the number of spaces per indentation level
vim.opt.tabstop = 2 -- Set the number of spaces per tab character
vim.opt.wrap = false -- Disable line wrapping
vim.opt.backspace = {'start', 'eol', 'indent'} -- Allow backspace in insert mode to delete characters

-- Set options related to searching and file navigation
vim.opt.path:append{'**'} -- Search down into subfolders when using :find command
vim.opt.wildignore:append{'*/node_modules/*'} -- Ignore 'node_modules' folder when using file-related commands

-- Configure undercurl for better visual feedback on spelling errors
vim.cmd([[let &t_Cs = "\e[4:3m"]]) -- Set the terminal code for the start of undercurl
vim.cmd([[let &t_Ce = "\e[4:0m"]]) -- Set the terminal code for the end of undercurl

-- Turn off paste mode when leaving insert mode
vim.api.nvim_exec([[
  autocmd InsertLeave * set nopaste
]], false)

-- Add asterisks when formatting block comments
vim.opt.formatoptions:append{'r'}

-- UFO fold config (requires ufo plugin)
vim.o.foldcolumn = '1' -- '0' is not bad
vim.o.foldlevel = 99 -- Using ufo provider need a large value, feel free to decrease the value
vim.o.foldlevelstart = 99
vim.o.foldenable = true
Caffeine (Mostly Coffee)

My daily drivers, though I have more gear:

Pinned Loading

  1. ember-native-modal ember-native-modal Public

    Effortlessly create native HTML5 modals and dialogs in your Ember.js applications with enhanced accessibility and customization.

    JavaScript 2