GithubHelp home page GithubHelp logo

eliasnorrby / dotfiles Goto Github PK

View Code? Open in Web Editor NEW
8.0 2.0 1.0 1.94 MB

:computer: Dotfiles for development on MacOS and Manjaro

License: MIT License

Shell 78.77% Lua 14.29% Emacs Lisp 6.15% JavaScript 0.18% Python 0.13% Jinja 0.48%
vim emacs zsh ansible karabiner hammerspoon dotfiles dotfiles-manager dotfiles-macos arch-linux

dotfiles's Introduction

Hi ๐Ÿ‘‹, I'm Elias

I like building applications & automating chores.

I'm excited about...

kubernetes openshift tekton terraform quarkus zsh
argocd kafka ansible maven react gatsby typescript manjaro
tmux bspwm sxhkd git alacritty


dotfiles's People

Contributors

dependabot-preview[bot] avatar eliasnorrby avatar semantic-release-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

danold

dotfiles's Issues

Make use of config imports for Alacritty

There are a number of settings in Alacritty that are platform specific (e.g. window.decorations: buttonless). I can make use of the config imports feature (to be released in 0.6.0) to source a alacritty.local.yml file with overrides. I may even be able to externalise font, theme and opacity settings to a file outside of version control, with defaults contained in the main file...

Make topic tasks aware of topic state

vscode's complete and utter lack of configuration as to where to put
the user settings files forces its tasks to be run before linking
files. To be specific, linking settings.json to
~/Library/Application Support/Code/User fails, becuase that directory
does not exist, so I set up a topic.tasks.yaml that ensures the
directory exists - but as of now, topic tasks are run as the last step
of the playbook.

In order to remedy this, I have experimented with running topic tasks
(known as 'post provision tasks') before the linking stage. In order
for this to work reliably, the tag do_post_provision, that at this
moment is required to trigger topic task execution, should be removed.

This in turn questions the connotations 'post provisioning' has.
Existing tasks (namely for zsh and emacs) are not per se required
to run post provision - they can just as well be run before the
linking stage. They are merely "tasks that need to be run for the
topic to function properly".

Removing the tag also highlights an issue with the topic task execution
in general: tasks are not available of topic state. If topic execution
is enabled with the tag, all topic.tasks.yaml files are sourced, and
all tasks are executed, regardless of their corresponding topic's state.
Removing the tag makes this issue even more prevalent - every run
of the playbook (every boom deploy) will include these tasks.

I suggest removing the notion of post_provision_tasks altogether.
Topic tasks may be tied to topic state using a when clause for
topics.<group>.<name>.state = 'present'. This is a bit awkward, but
the best I can think of now.

This would require a change or deprecation in
[https://github.com/eliasnorrby/dotfiles-cli](the dotfiles cli) as well.

Issue tracking vscode config file location setup:
microsoft/vscode#3884

Spicetify config

On arch, I have used Spicetify to customize the spotify UI. The settings are not yet under version control.

Set up a Python virtual environment

Updates to python and dependencies installed with pip often break the build. Can I set up a virtual environment to solve these issues?

  • molecule
  • docker
  • ansible-lint
  • flake8

Use editorconfig for shfmt configuration

Background

shfmt will ignore settings specified in .editorconfig when run using input from stdin (as is the case when formatting a buffer in vim using coc and diagnostic-languageserver). This issue is described in detail in mvdan/sh#577.

A -filename flag is planned for release in version 3.2.0. Until it is released, settings for shmft are duplicated in .editorconfig and coc-settings.json.

To do

When the new version is released, update coc-settings.json to pass the new flag, i.e.

"diagnostic-languageserver.formatters": {
  "shfmt": {
    "command": "shfmt",
-   "args": ["-i", "2", "-bn", "-ci", "-kp"]
+   "args": ["-filename", "script.sh"]
  }
},

nvm prefix incompatibility

nvm is incompatible with setting a prefix for npm.

I want to set a prefix to allow global package installations for my user without admin privileges.

Can I use the path parameter of the ansible module to get the best of both worlds?

Make post-install script aware of topic state

The post-install.zsh does some one-off tasks related to certain topics, as of now:

  • zsh plugins
  • vim plugins
  • doom emacs refresh
  • vscode plugins

It would best if each step could run conditionally based on each topic's state.

I could use yq to parse the root config before each step. But since these are very core modules, I don't expect I'll be disabling them any time soon, so this is not a priority.

Add OS filtering option to links

Which files to link where may depend on the OS (e.g. VSCode configs), or I may want to use a different source on different platforms.

links:
  - src: somefile.sh
    os: "MacOSX"

Todo:

  • Update link-topic.yml
  • Check if unlink-topic.yml will require updates as well

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.