Giter Site home page Giter Site logo

mrolli / dotfiles Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 2.0 5.72 MB

Personal dotfiles repository

License: MIT License

Shell 53.42% PHP 1.11% Vim Snippet 1.31% Vim Script 8.54% Lua 33.46% Python 0.34% AppleScript 1.82%
aliases bash dotfiles macos macos-configuration neovim nvim tmux-configuration vim-configuration zsh

dotfiles's Introduction

Hi there 👋 I'm Michael, χάρηκα πολύ!

🧑 I am a

  • Husband and father
  • Medical doctor, Linux System Engineer, PHP programmer, DBA and config manager (Puppet/Ansible)
  • DevOps, Git/Github, Vim and macOS enthusiast
  • fresh learner of Terraform, Azure and Greek
  • Karateka, Modular Synth Geek, LEGO bricks stacker and Playstation gamer

🧰 Languages and tools

Linux Ubuntu CentOS macOS PHP Lua SQL shell script Zsh MySQL git GitHub GitHub Pages NeoVim Vim Podman Tmux Hugo MkDocs Markdown

⚡ github.com Statistics

GitHub Stats GitHub Streak

Random quotes

quotes

dotfiles's People

Contributors

mrolli avatar

Watchers

 avatar  avatar

Forkers

msalzmann mand35

dotfiles's Issues

Fix spell checking infrastructure for german

Describe the bug
Spell checking in German is not working as the language cannot be downloaded.

Expected behavior
Spellchecking in German is working flawlessly

Actual behavior
Automatic download of German language files fails with error.

Implement Gen as another AI tool

Is your feature request related to a current shortcoming? Please describe.
The gen plugin looks very promising.
The plugin uses open source AI models based on the Ollama large language models
server.

Describe the solution you'd like
Install, configure and try out Gen using Mistral on a local Ollama server.

Evaluate plugins to improve writing

Is your feature request related to a current shortcoming? Please describe.
There are some interesting plugins regarding writing. These plugins can help to
improve the language by making suggestions.

Describe the solution you'd like
Checkout and play with the following plugins that are available as null-ls
builtins:

  • proselint
  • write-good
  • alex

Also investigate why these are both installed by Mason as linters but
additionally setup a null-ls bultins.

refactor: move ssh-config related stuff to the macos-deplaybook

Is your feature request related to a current shortcoming? Please describe.
As this involves not only config files (based on platform), but also keys and
the like, this is better placed in the macos-deplaybok.

Describe the solution you'd like
Move handling of everything in ~/.ssh to the macos-deplaybook.

Use 1password CLI utility and...

Is your feature request related to a current shortcoming? Please describe.
Currently there a script containing secrets that can't be version controlled.

Describe the solution you'd like
Start to use the CLI tool of 1Password to fetch secrets from the safe.

  • vagrant cloud token
  • git access token
  • gh auth token

Improve Luasnip integration

Is your feature request related to a current shortcoming? Please describe.
Currently I'm unable to have my own snippets as it seems.
Also the key mappings are unclear or missing?

Describe the solution you'd like
Add the possibility to have my own snippet files ideally one per file type in a
snippets folder here in my Neovim configuration.
Learn how to use LuaSnips and eventually add additional key mappings if needed.

Improve readme file of my nvim config

Is your feature request related to a current shortcoming? Please describe.
The readme file of my nvim configuration currently only state that I'm using
more plugins. Quite poor.

Describe the solution you'd like
At least the following things should get added to the readme:

  • Personal addition key mappings added
  • List of additional plugins used
  • List of LSP features (LS, Linters, Formatters, ...) that get installed automatically
  • Direct links to relevant code locations where appropriate

(tmux): Add tokyonight theme to the tmux config

Is your feature request related to a current shortcoming? Please describe.
Switched to tokyonight in lvim.

Describe the solution you'd like
Not sure for how I long I'll use tmux on the desktop, but anyway switch theme of my tmux.conf to tokyonight too.
Make theming easier by outsourcing relevant lines into its own file and source it. Keep current gruvbox.

Additional context
https://github.com/folke/tokyonight.nvim/blob/main/extras/tmux_tokyonight_night.tmux

Move to stow for the dotfile symlinks

Is your feature request related to a current shortcoming? Please describe.
Current selfmade stuff is not really practical for more than one machine/architecture.

Describe the solution you'd like
Move to stow for the symlink farm as it easyly supports things like .config subdirs and mixing stowed and not stowed files.

Re-create keybinds for moving lines

Describe the bug
On macOS I always struggle with the Option/Alt key. While the out of the box
keybindings of Lvim/LazyVim and others rely on the Options key to work as Alt,
my single Options key is working as an Option/Modifier key. This allows me to
enter symbols like or or the important Umlauts (via Karabiner Elements)
I need being German speaking but having the layout to US.

Therefore, additionally map the symbols and ˚ to the moving lines around
functionality.

Expected behavior
would move up the current line.

Actual behavior
does nothing or prints ∆ in insert mode.

Move funcitonlity in installers to Ansible

Is your feature request related to a current shortcoming? Please describe.
Having started using Ansible for macOS provisioning, everything contained in the installer scripts here should be moved to Ansible code.

Describe the solution you'd like
Move everything related to installers to my Ansible repo. Also get rid of the Brewfiles and handle this in Ansible, which makes it easier to take care of differences between machihnes/platforms.

Describe alternatives you've considered
Actually even the config file could live in the ansible repo. I still like the idea of having a dotfiles repo for them. This leaves me with the possibility to use them also in a Linux box or wherever.

(zsh): Import zsh configuration repository

Is your feature request related to a current shortcoming? Please describe.
Having a separate repo for the zsh configuration is somewhat overkill.

Describe the solution you'd like
Import the zsh configuration repository into the dotfiles repository again.

Command direnv not found when startin bash

Describe the bug
When starting a new shell during setting up the bash shell environment the commmand direnv is not found. This only happens on arm64 not on x86_64.

To Reproduce

Steps to reproduce the behavior:

  1. Start a new shell on an arm64 machine
  2. See error

Expected behavior
Shell start up without error

Actual behavior
The following message appears upon starting the shell:

-bash: direnv: command not found

(wezterm): refactor towards trackinfo plugin

Is your feature request related to a current shortcoming? Please describe.
This is an analog issue to the weather code situation, see #51

Describe the solution you'd like
Create a trakcinfo plugin and require it in wezterm.lua.

(zsh): Check for copilot extension is wrong

Describe the bug
The check if the copilot extension is install in gh is actually the wrong way.
As it is now, the installation is called although extension is already
installed.

Expected behavior
The installation call to gh is only triggered if extension is not found. If it
is found, the if evaluates to false and the installation step is skipped.

Actual behavior
Current behaviour is to install the extension when it's found. This also means
it is not installed when it is missing.

(lvim): Add plugin nvim-treesitter-textobjects

Is your feature request related to a current shortcoming? Please describe.
Previously I used this plugin to have text objects for functions and classes and two switch the order of the parameters in a function signature. This was useful now and then.

Describe the solution you'd like
Install and configure this plugin again.

Additional context
https://github.com/nvim-treesitter/nvim-treesitter-textobjects

(lvim): Disable direct system clipboard usage

Is your feature request related to a current shortcoming? Please describe.
LunarVim enables direct system clipboard usage by setting the option clipboard to unnamedplus. This irritating if one is used to registers and the fact that Vim never mangles the system clipboard unless told to do so by using the "+ register.

Describe the solution you'd like
Set clipboard to nil again. Additionally add keybindings for blackhole register usage, see old config at

" Replace in visual mode

Explore neovim plugins

This is some sort of a bookmark issue to keep a list of interesting Neovim plugins that I shall explore and evaluate if it adds up to my workflow or not. Without further ado, these are the plugins to look into it:

Other peoples dotfiles

Plugisn previously used but questionable

Plug 'tmhedberg/SimpylFold'
Plug 'pedrohdz/vim-yaml-folds'
Plug 'SirVer/ultisnips'
Plug 'honza/vim-snippets'

(nvim): Import nvim configuration

Is your feature request related to a current shortcoming? Please describe.
Having dotfiles in one place makes it easier. Still not sure if I actually
should do it. Is the nvim configuration its own project? Previously maybe, but
now with LazyGit it's not anymore. Slimmer and not that bloated anymore. Feels
more like "just some config changes but over all out of the box".

Describe the solution you'd like
Just copy over the configuration after getting rid of stow. Do we need the
history? Nah, not really.

Describe alternatives you've considered
Investigate for an easy way to port the commit history. Might still be worth it.
But the clean it up and take over as few commits as possible.

(wezterm): refactor towards weather plugin

Is your feature request related to a current shortcoming? Please describe.
Currently showing the weather in the tabbar is cluttered in wezterm.lua

Describe the solution you'd like
Move weather code to it's own plugins/weather.lua file and require it with a
nice API to be used in wezterm.

Do I need preservim/tagbar?

Is your feature request related to a current shortcoming? Please describe.
preservim/tagbar show a vertical split with all the symbols to easy navigate
large code files.

Describe the solution you'd like
Try out this plugin and find out if it is worth adding to my code base.

Move macos conf to macos-deplaybook

Is your feature request related to a current shortcoming? Please describe.
Configuring the macOS is actually a task done on machine setup or later when
changing the state of the machine and thus belongs to my Ansible
macos-deplaybook.

Describe the solution you'd like
Move subdir macos entirely to the macos-deplaybook.

feat(zsh): outsource macOS-specifics to its own zsh-plugin

Is your feature request related to a current shortcoming? Please describe.
Currently macOS specific Zsh configurations and scripts are centrally hosted in
this repository. As working with plugins is integral in Zsh, it makes sense to
ourtsource these in my own macOS Zsh plugin. Then the feature can be loaded
depending on being on a macOS or not.

Describe the solution you'd like
Turn macOS specific scripts to commands hosted in a macOS plugins. These things
include:

  • the music scripts (and there still outsourced feature like tadd)
  • toggle show/hide-Dotfiles in Finder
  • ... others?

Also einrich these commands with their own completion files also contained in
the new plugin.

Improve delta's colors

Is your feature request related to a current shortcoming? Please describe.
delta seems to be a good tool so far. Let's stick to it, but....

Describe the solution you'd like
I can't stand these colors. After looking into it, I'm quite fond of chamaleon,
but it needs further tweaking.

fix(wezterm): only fire musicplaying on macOS platform

Is your feature request related to a current shortcoming? Please describe.
Currently musicplaying is always fired. Although it fails silently and shows
nothing, it'd be still better not call it at all if not on Darwin platform.

Describe the solution you'd like
Make the track info part of the config part conditional.

Adopt the lsp, completion and treesitter way

Having switched to Neovim it would be beneficial to make us of the new possibilities in terms of language server protocol paired with autocomp and treesitter based highlighting.

Targeted configuration might include:

  • neovim/nvim-lspconfig
  • hrsh7th/nvim-cmp
  • hrsh7/vim-vsnip
  • nvim-treesitter and nvim-treesitter-textobjects

Switch to starship?

Is your feature request related to a current shortcoming? Please describe.
While oh-my-posh works as expected and I've done two themes for it, it still bothers me that is has daily new versions. Starship seems to be replacement in Rust with a lot of modules. Could be a viable alternative. The current features I use of omp must be available again as I consider them the bear minimum.

Describe the solution you'd like
Decide if switching to starship might be a good idea. See https://starship.rs/guide/

Revert to old bash_history handling

Is your feature request related to a current shortcoming? Please describe.
Reloading the bash history after every command is quite silly if one got used to scrolling thhrough history using arrow keys. Suddenly the last command is not the same anymore as another terminal might have changed the histroy. Dangerous as f***.

Describe the solution you'd like
Reverto the old behaviour where history is appended but no relaoded.

Supersede alias brewup with a function

Is your feature request related to a current shortcoming? Please describe.
Current alias does its job, but as a user I want to have the choice not to upgrade
based upon the list of outdated formulae.

Describe the solution you'd like
Supersede the brewup alias with a brewup function that does the following actions:

  1. Run brew update
  2. Rund brew outdated
  3. Ask "Should we upgrade?" - if answer no, skip step 4.
  4. Run brew upgrade
  5. Run brew cleanup

(wezterm): add keybindings for tmux-like pane control

Is your feature request related to a current shortcoming? Please describe.
As wezterm is so flexible and now also has an informative status area, it might
be time to drop tmux locally. Give it try. If it doesn't work, tmux is only four
keystrokes away.

Describe the solution you'd like
Add keybindings for tmux-like pane control. Splitting, sizing, rotating and
closing are the minimal features to support. Creating whole sessions might be
additionally interesting - but certainly could have.

Get rid of stow

Is your feature request related to a current shortcoming? Please describe.
After 1.5y of stow I feel it's time two change. Having all configuration deeply
nested in .config directories is not user-friendly. True, one gets used to it
but nevertheless it feels clumsy. But it's also true that stow did the job and
did in a easy way.
On the other hand I moved from Puppet to Ansible and now also start to use
Ansible for managing personal machines. I got inspired by geerlingguy's
mac-dev-playbook and now I have my own "mac-deplaybook".

Describe the solution you'd like
Remove the bootstrap command and rearrange configuration to have them more
plain. Distinct between app configurations that belong to $XDG_CONFIG_HOME and
other app-specific stuff. The latter should be moved to the mac-deplaybook IMHO.
Then the deploy playbook should take of the duties of stow.

Describe alternatives you've considered
Being inspired by Folke's dotfiles having some additional Ansible code within
the dotfiles directory is intriguing as I'm wondering how to have a mac-specific
deploy playbook for setting up new Macs on one hand but nevertheless have some
setup infrastructure for the dotfiles in isolation, i.e. for deploying some
dotfiles configs in Linux accounts (zsh config, tool configs) is very appealing.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.