mirror of
https://github.com/m-housh/dotfiles.git
synced 2026-02-14 06:12:34 +00:00
Compare commits
142 Commits
master
...
d9445d4e89
| Author | SHA1 | Date | |
|---|---|---|---|
|
d9445d4e89
|
|||
|
87594a5d96
|
|||
|
6759e4e85b
|
|||
|
712b209c86
|
|||
| 19fbce7dd1 | |||
| 48b4278ae9 | |||
| 47930ad6da | |||
| a9d76c5107 | |||
| c4da654111 | |||
| 557da77caf | |||
| 01a7c4845f | |||
| 1ae41a0fac | |||
| a696e4e658 | |||
| 6527ad88df | |||
| cbf26b10e7 | |||
| a9d7f24d24 | |||
| 2d39db3401 | |||
| 1e26df8ef0 | |||
| d653110ec2 | |||
| 128dd695b9 | |||
| a2558e0296 | |||
| 19285a539d | |||
| 6c0eda81d5 | |||
| 842bf84c25 | |||
| f6bad2b0f5 | |||
| 47ea7ba28a | |||
| 54408de2cf | |||
| a2e6d3e825 | |||
| 090b0fb2f3 | |||
| 2bab3d516c | |||
| 9ef283fda1 | |||
| 881905f203 | |||
| 55be390f7f | |||
| 3763775bb6 | |||
| b61004554a | |||
| 0f8e56394d | |||
| 2434fb52e2 | |||
| cd8808ab74 | |||
| fb235ab19d | |||
| 1db62e3457 | |||
| 411f660cbb | |||
| 5572c8f0e3 | |||
| d258f14376 | |||
| 7660587a33 | |||
| aafdef33e3 | |||
| bcd9742b37 | |||
| c0714cb010 | |||
| 8e20f20b4f | |||
| eae33a6705 | |||
| 17bc6ef41b | |||
| 9a05bd20d8 | |||
| bc342d28c8 | |||
| 148916909a | |||
| f362789006 | |||
| 367cae9748 | |||
| 8e46610a7b | |||
| ff870c0f1b | |||
| d34059c34d | |||
| 016e4d459f | |||
| cead1bc85e | |||
| c296a1492f | |||
| 892966d27a | |||
| b53d239cd3 | |||
| cd95365149 | |||
| ba8a64a447 | |||
| d15d3b406f | |||
| 9cc99ff03d | |||
| d3a383102b | |||
| c1b1381f24 | |||
| 0f58b00f97 | |||
| 05b36efeea | |||
| 30ff7b7652 | |||
| a3c3ed1d23 | |||
|
|
0294c4e5bc | ||
|
|
be24adf2aa | ||
|
|
2b4ecf3939 | ||
|
|
ce99e7dd76 | ||
| 3fcb57d090 | |||
| 346ff30f4a | |||
| a8e8228696 | |||
| 2f6630b272 | |||
|
|
a328615cbf | ||
|
|
385c17811d | ||
| 92a4571bff | |||
| 3a5adc07ad | |||
|
|
fa02ac9889 | ||
|
|
e3ff780999 | ||
| 64b5e4b21c | |||
| 00749e3be7 | |||
|
|
7690713f46 | ||
|
|
5927ef7fb3 | ||
| e90c491a47 | |||
| f55eca41f0 | |||
| 6cb0744e92 | |||
|
|
5555c14327 | ||
|
|
353b669f27 | ||
|
|
f0a5d85dea | ||
| f643b45432 | |||
| 427fd1d063 | |||
| ca0c0b1ca0 | |||
|
|
19229a2b90 | ||
|
|
e8772df72e | ||
|
|
660ff7d94d | ||
|
|
7c5c642ae5 | ||
|
|
742f26a81c | ||
|
|
7f13161948 | ||
|
|
00c5e0cca6 | ||
|
|
c930fb7e7a | ||
| be0bb66e09 | |||
| 8d68b1033a | |||
| 4b37f8afcb | |||
|
|
fcf8c83beb | ||
|
|
0e77478075 | ||
| a8c4191d96 | |||
| 56cfaf4360 | |||
| 35a5cf15c5 | |||
| 3896bab4fb | |||
|
|
9acb92154a | ||
|
|
e519322fb2 | ||
| aa8e3847a2 | |||
| 2de739ec68 | |||
| 1d08232c52 | |||
| 607f1b20b9 | |||
|
|
cc6dd26184 | ||
|
|
220dddc930 | ||
| 966c050875 | |||
| 275baa228c | |||
|
|
437b4f5002 | ||
|
|
ab1a45d421 | ||
|
|
663673dfd3 | ||
|
|
7673963158 | ||
|
|
433c6cf59f | ||
|
|
8d396ff46f | ||
| 6204b5f7b3 | |||
| 26f78217f7 | |||
| 42827b7154 | |||
| e3dd7a80f6 | |||
|
|
5cbb1affd5 | ||
|
|
3bc89df708 | ||
|
|
27d6d596dc | ||
|
|
7ebdbf3d7f | ||
| 34da568c87 |
10
.gitignore
vendored
10
.gitignore
vendored
@@ -1,7 +1,5 @@
|
||||
**/.DS_Store
|
||||
**/Brewfile.lock.json
|
||||
**/plugins
|
||||
**/plugin
|
||||
**/.zcompdump*
|
||||
**/.zcompdump
|
||||
**/.zcompcache
|
||||
@@ -11,3 +9,11 @@
|
||||
**/completions/*
|
||||
**/.netrwhist
|
||||
**/.zshrc-local
|
||||
facebook-bot/config/*
|
||||
facebook-bot/config/*
|
||||
**/tmp
|
||||
ansible/tmp/*
|
||||
ansible/collections/*
|
||||
ansible/galaxy_cache/*
|
||||
ansible/galaxy_token
|
||||
**/lazy-lock.json
|
||||
|
||||
82
.luarc.json
Normal file
82
.luarc.json
Normal file
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"workspace.library": [
|
||||
"/Users/michael/.local/share/m-housh/lazy/neodev.nvim/types/stable",
|
||||
"/opt/homebrew/Cellar/neovim/0.9.2/share/nvim/runtime/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/bufdelete.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/diffview.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/lsp_signature.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/neo-tree.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/neodev.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/telescope-fzf-native.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nvim-lspconfig/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nvim-cmp/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nvim-treesitter-textobjects/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nui.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nightfox.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/cmp-buffer/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/cmp-path/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nvim-treesitter/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nvim-lsp-installer/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/cmp-cmdline/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/lazy.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/cmp-spell/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/wrapping.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/cmp-calc/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/which-key.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/mason-lspconfig.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/formatter.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/cmp-nvim-lsp/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/cmp-emoji/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nvim-web-devicons/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/plenary.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/neogit/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/overseer.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/lualine.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/mason.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/telescope.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/lspkind-nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/swift.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/toggleterm.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/neodev.nvim/types/stable",
|
||||
"/opt/homebrew/Cellar/neovim/0.9.2/share/nvim/runtime/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/bufdelete.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/diffview.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/lsp_signature.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/neo-tree.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/neodev.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/telescope-fzf-native.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nvim-lspconfig/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nvim-cmp/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nvim-treesitter-textobjects/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nui.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nightfox.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/cmp-buffer/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/cmp-path/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nvim-treesitter/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nvim-lsp-installer/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/cmp-cmdline/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/lazy.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/cmp-spell/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/wrapping.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/cmp-calc/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/which-key.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/mason-lspconfig.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/formatter.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/cmp-nvim-lsp/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/cmp-emoji/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nvim-web-devicons/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/plenary.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/neogit/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/overseer.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/lualine.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/mason.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/telescope.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/lspkind-nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/swift.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/toggleterm.nvim/lua",
|
||||
"/Users/michael/.dotfiles/nvim/m-housh/lua",
|
||||
"/Users/michael/.dotfiles/nvim/m-housh/lua",
|
||||
"${3rd}/luv/library",
|
||||
"${3rd}/luassert/library"
|
||||
]
|
||||
}
|
||||
6
TODO.md
6
TODO.md
@@ -1,4 +1,6 @@
|
||||
# TODO
|
||||
|
||||
- Remove brewfiles and use the `dots` app instead.
|
||||
- Add helix to `dots` app.
|
||||
- Add zsh functions to dots cli manager.
|
||||
- Add tmux plugins to dots cli manager.
|
||||
- Add tmux-powerline linking to `dots` cli manager.
|
||||
- Clean up zet commands, maybe make a gum / fzf filter script.
|
||||
|
||||
985
ansible/ansible.cfg
Normal file
985
ansible/ansible.cfg
Normal file
@@ -0,0 +1,985 @@
|
||||
[defaults]
|
||||
# (boolean) By default Ansible will issue a warning when received from a task action (module or action plugin)
|
||||
# These warnings can be silenced by adjusting this setting to False.
|
||||
;action_warnings=True
|
||||
|
||||
# (list) Accept list of cowsay templates that are 'safe' to use, set to empty list if you want to enable all installed templates.
|
||||
;cowsay_enabled_stencils=bud-frogs, bunny, cheese, daemon, default, dragon, elephant-in-snake, elephant, eyes, hellokitty, kitty, luke-koala, meow, milk, moofasa, moose, ren, sheep, small, stegosaurus, stimpy, supermilker, three-eyes, turkey, turtle, tux, udder, vader-koala, vader, www
|
||||
|
||||
# (string) Specify a custom cowsay path or swap in your cowsay implementation of choice
|
||||
;cowpath=
|
||||
|
||||
# (string) This allows you to chose a specific cowsay stencil for the banners or use 'random' to cycle through them.
|
||||
;cow_selection=default
|
||||
|
||||
# (boolean) This option forces color mode even when running without a TTY or the "nocolor" setting is True.
|
||||
;force_color=False
|
||||
|
||||
# (path) The default root path for Ansible config files on the controller.
|
||||
home=~/.config/ansible
|
||||
|
||||
# (boolean) This setting allows suppressing colorizing output, which is used to give a better indication of failure and status information.
|
||||
;nocolor=False
|
||||
|
||||
# (boolean) If you have cowsay installed but want to avoid the 'cows' (why????), use this.
|
||||
;nocows=False
|
||||
|
||||
# (boolean) Sets the default value for the any_errors_fatal keyword, if True, Task failures will be considered fatal errors.
|
||||
;any_errors_fatal=False
|
||||
|
||||
# (path) The password file to use for the become plugin. --become-password-file.
|
||||
# If executable, it will be run and the resulting stdout will be used as the password.
|
||||
;become_password_file=
|
||||
|
||||
# (pathspec) Colon separated paths in which Ansible will search for Become Plugins.
|
||||
;become_plugins={{ ANSIBLE_HOME ~ "/plugins/become:/usr/share/ansible/plugins/become" }}
|
||||
|
||||
# (string) Chooses which cache plugin to use, the default 'memory' is ephemeral.
|
||||
;fact_caching=memory
|
||||
|
||||
# (string) Defines connection or path information for the cache plugin
|
||||
;fact_caching_connection=
|
||||
|
||||
# (string) Prefix to use for cache plugin files/tables
|
||||
;fact_caching_prefix=ansible_facts
|
||||
|
||||
# (integer) Expiration timeout for the cache plugin data
|
||||
;fact_caching_timeout=86400
|
||||
|
||||
# (list) List of enabled callbacks, not all callbacks need enabling, but many of those shipped with Ansible do as we don't want them activated by default.
|
||||
;callbacks_enabled=
|
||||
|
||||
# (string) When a collection is loaded that does not support the running Ansible version (with the collection metadata key `requires_ansible`).
|
||||
;collections_on_ansible_version_mismatch=warning
|
||||
|
||||
# (pathspec) Colon separated paths in which Ansible will search for collections content. Collections must be in nested *subdirectories*, not directly in these directories. For example, if ``COLLECTIONS_PATHS`` includes ``'{{ ANSIBLE_HOME ~ "/collections" }}'``, and you want to add ``my.collection`` to that directory, it must be saved as ``'{{ ANSIBLE_HOME} ~ "/collections/ansible_collections/my/collection" }}'``.
|
||||
|
||||
;collections_path={{ ANSIBLE_HOME ~ "/collections:/usr/share/ansible/collections" }}
|
||||
|
||||
# (boolean) A boolean to enable or disable scanning the sys.path for installed collections
|
||||
;collections_scan_sys_path=True
|
||||
|
||||
# (path) The password file to use for the connection plugin. --connection-password-file.
|
||||
;connection_password_file=
|
||||
|
||||
# (pathspec) Colon separated paths in which Ansible will search for Action Plugins.
|
||||
;action_plugins={{ ANSIBLE_HOME ~ "/plugins/action:/usr/share/ansible/plugins/action" }}
|
||||
|
||||
# (boolean) When enabled, this option allows lookup plugins (whether used in variables as ``{{lookup('foo')}}`` or as a loop as with_foo) to return data that is not marked 'unsafe'.
|
||||
# By default, such data is marked as unsafe to prevent the templating engine from evaluating any jinja2 templating language, as this could represent a security risk. This option is provided to allow for backward compatibility, however users should first consider adding allow_unsafe=True to any lookups which may be expected to contain data which may be run through the templating engine late
|
||||
;allow_unsafe_lookups=False
|
||||
|
||||
# (boolean) This controls whether an Ansible playbook should prompt for a login password. If using SSH keys for authentication, you probably do not need to change this setting.
|
||||
;ask_pass=False
|
||||
|
||||
# (boolean) This controls whether an Ansible playbook should prompt for a vault password.
|
||||
;ask_vault_pass=False
|
||||
|
||||
# (pathspec) Colon separated paths in which Ansible will search for Cache Plugins.
|
||||
;cache_plugins={{ ANSIBLE_HOME ~ "/plugins/cache:/usr/share/ansible/plugins/cache" }}
|
||||
|
||||
# (pathspec) Colon separated paths in which Ansible will search for Callback Plugins.
|
||||
;callback_plugins={{ ANSIBLE_HOME ~ "/plugins/callback:/usr/share/ansible/plugins/callback" }}
|
||||
|
||||
# (pathspec) Colon separated paths in which Ansible will search for Cliconf Plugins.
|
||||
;cliconf_plugins={{ ANSIBLE_HOME ~ "/plugins/cliconf:/usr/share/ansible/plugins/cliconf" }}
|
||||
|
||||
# (pathspec) Colon separated paths in which Ansible will search for Connection Plugins.
|
||||
;connection_plugins={{ ANSIBLE_HOME ~ "/plugins/connection:/usr/share/ansible/plugins/connection" }}
|
||||
|
||||
# (boolean) Toggles debug output in Ansible. This is *very* verbose and can hinder multiprocessing. Debug output can also include secret information despite no_log settings being enabled, which means debug mode should not be used in production.
|
||||
;debug=False
|
||||
|
||||
# (string) This indicates the command to use to spawn a shell under for Ansible's execution needs on a target. Users may need to change this in rare instances when shell usage is constrained, but in most cases it may be left as is.
|
||||
;executable=/bin/sh
|
||||
|
||||
# (string) This option allows you to globally configure a custom path for 'local_facts' for the implied :ref:`ansible_collections.ansible.builtin.setup_module` task when using fact gathering.
|
||||
# If not set, it will fallback to the default from the ``ansible.builtin.setup`` module: ``/etc/ansible/facts.d``.
|
||||
# This does **not** affect user defined tasks that use the ``ansible.builtin.setup`` module.
|
||||
# The real action being created by the implicit task is currently ``ansible.legacy.gather_facts`` module, which then calls the configured fact modules, by default this will be ``ansible.builtin.setup`` for POSIX systems but other platforms might have different defaults.
|
||||
;fact_path=
|
||||
|
||||
# (pathspec) Colon separated paths in which Ansible will search for Jinja2 Filter Plugins.
|
||||
;filter_plugins={{ ANSIBLE_HOME ~ "/plugins/filter:/usr/share/ansible/plugins/filter" }}
|
||||
|
||||
# (boolean) This option controls if notified handlers run on a host even if a failure occurs on that host.
|
||||
# When false, the handlers will not run if a failure has occurred on a host.
|
||||
# This can also be set per play or on the command line. See Handlers and Failure for more details.
|
||||
;force_handlers=False
|
||||
|
||||
# (integer) Maximum number of forks Ansible will use to execute tasks on target hosts.
|
||||
;forks=5
|
||||
|
||||
# (string) This setting controls the default policy of fact gathering (facts discovered about remote systems).
|
||||
# This option can be useful for those wishing to save fact gathering time. Both 'smart' and 'explicit' will use the cache plugin.
|
||||
;gathering=implicit
|
||||
|
||||
# (list) Set the `gather_subset` option for the :ref:`ansible_collections.ansible.builtin.setup_module` task in the implicit fact gathering. See the module documentation for specifics.
|
||||
# It does **not** apply to user defined ``ansible.builtin.setup`` tasks.
|
||||
;gather_subset=
|
||||
|
||||
# (integer) Set the timeout in seconds for the implicit fact gathering, see the module documentation for specifics.
|
||||
# It does **not** apply to user defined :ref:`ansible_collections.ansible.builtin.setup_module` tasks.
|
||||
;gather_timeout=
|
||||
|
||||
# (string) This setting controls how duplicate definitions of dictionary variables (aka hash, map, associative array) are handled in Ansible.
|
||||
# This does not affect variables whose values are scalars (integers, strings) or arrays.
|
||||
# **WARNING**, changing this setting is not recommended as this is fragile and makes your content (plays, roles, collections) non portable, leading to continual confusion and misuse. Don't change this setting unless you think you have an absolute need for it.
|
||||
# We recommend avoiding reusing variable names and relying on the ``combine`` filter and ``vars`` and ``varnames`` lookups to create merged versions of the individual variables. In our experience this is rarely really needed and a sign that too much complexity has been introduced into the data structures and plays.
|
||||
# For some uses you can also look into custom vars_plugins to merge on input, even substituting the default ``host_group_vars`` that is in charge of parsing the ``host_vars/`` and ``group_vars/`` directories. Most users of this setting are only interested in inventory scope, but the setting itself affects all sources and makes debugging even harder.
|
||||
# All playbooks and roles in the official examples repos assume the default for this setting.
|
||||
# Changing the setting to ``merge`` applies across variable sources, but many sources will internally still overwrite the variables. For example ``include_vars`` will dedupe variables internally before updating Ansible, with 'last defined' overwriting previous definitions in same file.
|
||||
# The Ansible project recommends you **avoid ``merge`` for new projects.**
|
||||
# It is the intention of the Ansible developers to eventually deprecate and remove this setting, but it is being kept as some users do heavily rely on it. New projects should **avoid 'merge'**.
|
||||
;hash_behaviour=replace
|
||||
|
||||
# (pathlist) Comma separated list of Ansible inventory sources
|
||||
;inventory=/etc/ansible/hosts
|
||||
|
||||
# (pathspec) Colon separated paths in which Ansible will search for HttpApi Plugins.
|
||||
;httpapi_plugins={{ ANSIBLE_HOME ~ "/plugins/httpapi:/usr/share/ansible/plugins/httpapi" }}
|
||||
|
||||
# (float) This sets the interval (in seconds) of Ansible internal processes polling each other. Lower values improve performance with large playbooks at the expense of extra CPU load. Higher values are more suitable for Ansible usage in automation scenarios, when UI responsiveness is not required but CPU usage might be a concern.
|
||||
# The default corresponds to the value hardcoded in Ansible <= 2.1
|
||||
;internal_poll_interval=0.001
|
||||
|
||||
# (pathspec) Colon separated paths in which Ansible will search for Inventory Plugins.
|
||||
;inventory_plugins={{ ANSIBLE_HOME ~ "/plugins/inventory:/usr/share/ansible/plugins/inventory" }}
|
||||
|
||||
# (string) This is a developer-specific feature that allows enabling additional Jinja2 extensions.
|
||||
# See the Jinja2 documentation for details. If you do not know what these do, you probably don't need to change this setting :)
|
||||
;jinja2_extensions=[]
|
||||
|
||||
# (boolean) This option preserves variable types during template operations.
|
||||
;jinja2_native=False
|
||||
|
||||
# (boolean) Enables/disables the cleaning up of the temporary files Ansible used to execute the tasks on the remote.
|
||||
# If this option is enabled it will disable ``ANSIBLE_PIPELINING``.
|
||||
;keep_remote_files=False
|
||||
|
||||
# (boolean) Controls whether callback plugins are loaded when running /usr/bin/ansible. This may be used to log activity from the command line, send notifications, and so on. Callback plugins are always loaded for ``ansible-playbook``.
|
||||
;bin_ansible_callbacks=False
|
||||
|
||||
# (tmppath) Temporary directory for Ansible to use on the controller.
|
||||
local_tmp=~/.local/ansible/tmp
|
||||
|
||||
# (list) List of logger names to filter out of the log file
|
||||
;log_filter=
|
||||
|
||||
# (path) File to which Ansible will log on the controller. When empty logging is disabled.
|
||||
;log_path=
|
||||
|
||||
# (pathspec) Colon separated paths in which Ansible will search for Lookup Plugins.
|
||||
;lookup_plugins={{ ANSIBLE_HOME ~ "/plugins/lookup:/usr/share/ansible/plugins/lookup" }}
|
||||
|
||||
# (string) Sets the macro for the 'ansible_managed' variable available for :ref:`ansible_collections.ansible.builtin.template_module` and :ref:`ansible_collections.ansible.windows.win_template_module`. This is only relevant for those two modules.
|
||||
;ansible_managed=Ansible managed
|
||||
|
||||
# (string) This sets the default arguments to pass to the ``ansible`` adhoc binary if no ``-a`` is specified.
|
||||
;module_args=
|
||||
|
||||
# (string) Compression scheme to use when transferring Python modules to the target.
|
||||
;module_compression=ZIP_DEFLATED
|
||||
|
||||
# (string) Module to use with the ``ansible`` AdHoc command, if none is specified via ``-m``.
|
||||
;module_name=command
|
||||
|
||||
# (pathspec) Colon separated paths in which Ansible will search for Modules.
|
||||
;library={{ ANSIBLE_HOME ~ "/plugins/modules:/usr/share/ansible/plugins/modules" }}
|
||||
|
||||
# (pathspec) Colon separated paths in which Ansible will search for Module utils files, which are shared by modules.
|
||||
;module_utils={{ ANSIBLE_HOME ~ "/plugins/module_utils:/usr/share/ansible/plugins/module_utils" }}
|
||||
|
||||
# (pathspec) Colon separated paths in which Ansible will search for Netconf Plugins.
|
||||
;netconf_plugins={{ ANSIBLE_HOME ~ "/plugins/netconf:/usr/share/ansible/plugins/netconf" }}
|
||||
|
||||
# (boolean) Toggle Ansible's display and logging of task details, mainly used to avoid security disclosures.
|
||||
;no_log=False
|
||||
|
||||
# (boolean) Toggle Ansible logging to syslog on the target when it executes tasks. On Windows hosts this will disable a newer style PowerShell modules from writing to the event log.
|
||||
;no_target_syslog=False
|
||||
|
||||
# (raw) What templating should return as a 'null' value. When not set it will let Jinja2 decide.
|
||||
;null_representation=
|
||||
|
||||
# (integer) For asynchronous tasks in Ansible (covered in Asynchronous Actions and Polling), this is how often to check back on the status of those tasks when an explicit poll interval is not supplied. The default is a reasonably moderate 15 seconds which is a tradeoff between checking in frequently and providing a quick turnaround when something may have completed.
|
||||
;poll_interval=15
|
||||
|
||||
# (path) Option for connections using a certificate or key file to authenticate, rather than an agent or passwords, you can set the default value here to avoid re-specifying --private-key with every invocation.
|
||||
;private_key_file=
|
||||
|
||||
# (boolean) By default, imported roles publish their variables to the play and other roles, this setting can avoid that.
|
||||
# This was introduced as a way to reset role variables to default values if a role is used more than once in a playbook.
|
||||
# Included roles only make their variables public at execution, unlike imported roles which happen at playbook compile time.
|
||||
;private_role_vars=False
|
||||
|
||||
# (integer) Port to use in remote connections, when blank it will use the connection plugin default.
|
||||
;remote_port=
|
||||
|
||||
# (string) Sets the login user for the target machines
|
||||
# When blank it uses the connection plugin's default, normally the user currently executing Ansible.
|
||||
;remote_user=
|
||||
|
||||
# (pathspec) Colon separated paths in which Ansible will search for Roles.
|
||||
roles_path={{ ANSIBLE_HOME ~ "~/.local/ansible/roles:/roles:/usr/share/ansible/roles:/etc/ansible/roles" }}
|
||||
|
||||
# (string) Set the main callback used to display Ansible output. You can only have one at a time.
|
||||
# You can have many other callbacks, but just one can be in charge of stdout.
|
||||
# See :ref:`callback_plugins` for a list of available options.
|
||||
;stdout_callback=default
|
||||
|
||||
# (string) Set the default strategy used for plays.
|
||||
;strategy=linear
|
||||
|
||||
# (pathspec) Colon separated paths in which Ansible will search for Strategy Plugins.
|
||||
;strategy_plugins={{ ANSIBLE_HOME ~ "/plugins/strategy:/usr/share/ansible/plugins/strategy" }}
|
||||
|
||||
# (boolean) Toggle the use of "su" for tasks.
|
||||
;su=False
|
||||
|
||||
# (string) Syslog facility to use when Ansible logs to the remote target
|
||||
;syslog_facility=LOG_USER
|
||||
|
||||
# (pathspec) Colon separated paths in which Ansible will search for Terminal Plugins.
|
||||
;terminal_plugins={{ ANSIBLE_HOME ~ "/plugins/terminal:/usr/share/ansible/plugins/terminal" }}
|
||||
|
||||
# (pathspec) Colon separated paths in which Ansible will search for Jinja2 Test Plugins.
|
||||
;test_plugins={{ ANSIBLE_HOME ~ "/plugins/test:/usr/share/ansible/plugins/test" }}
|
||||
|
||||
# (integer) This is the default timeout for connection plugins to use.
|
||||
;timeout=10
|
||||
|
||||
# (string) Can be any connection plugin available to your ansible installation.
|
||||
# There is also a (DEPRECATED) special 'smart' option, that will toggle between 'ssh' and 'paramiko' depending on controller OS and ssh versions.
|
||||
;transport=ssh
|
||||
|
||||
# (boolean) When True, this causes ansible templating to fail steps that reference variable names that are likely typoed.
|
||||
# Otherwise, any '{{ template_expression }}' that contains undefined variables will be rendered in a template or ansible action line exactly as written.
|
||||
;error_on_undefined_vars=True
|
||||
|
||||
# (pathspec) Colon separated paths in which Ansible will search for Vars Plugins.
|
||||
;vars_plugins={{ ANSIBLE_HOME ~ "/plugins/vars:/usr/share/ansible/plugins/vars" }}
|
||||
|
||||
# (string) The vault_id to use for encrypting by default. If multiple vault_ids are provided, this specifies which to use for encryption. The --encrypt-vault-id cli option overrides the configured value.
|
||||
;vault_encrypt_identity=
|
||||
|
||||
# (string) The label to use for the default vault id label in cases where a vault id label is not provided
|
||||
;vault_identity=default
|
||||
|
||||
# (list) A list of vault-ids to use by default. Equivalent to multiple --vault-id args. Vault-ids are tried in order.
|
||||
;vault_identity_list=
|
||||
|
||||
# (string) If true, decrypting vaults with a vault id will only try the password from the matching vault-id
|
||||
;vault_id_match=False
|
||||
|
||||
# (path) The vault password file to use. Equivalent to --vault-password-file or --vault-id
|
||||
# If executable, it will be run and the resulting stdout will be used as the password.
|
||||
vault_password_file=~/.local/ansible/.vaultpwd
|
||||
|
||||
# (integer) Sets the default verbosity, equivalent to the number of ``-v`` passed in the command line.
|
||||
;verbosity=0
|
||||
|
||||
# (boolean) Toggle to control the showing of deprecation warnings
|
||||
;deprecation_warnings=True
|
||||
|
||||
# (boolean) Toggle to control showing warnings related to running devel
|
||||
;devel_warning=True
|
||||
|
||||
# (boolean) Normally ``ansible-playbook`` will print a header for each task that is run. These headers will contain the name: field from the task if you specified one. If you didn't then ``ansible-playbook`` uses the task's action to help you tell which task is presently running. Sometimes you run many of the same action and so you want more information about the task to differentiate it from others of the same action. If you set this variable to True in the config then ``ansible-playbook`` will also include the task's arguments in the header.
|
||||
# This setting defaults to False because there is a chance that you have sensitive values in your parameters and you do not want those to be printed.
|
||||
# If you set this to True you should be sure that you have secured your environment's stdout (no one can shoulder surf your screen and you aren't saving stdout to an insecure file) or made sure that all of your playbooks explicitly added the ``no_log: True`` parameter to tasks which have sensitive values See How do I keep secret data in my playbook? for more information.
|
||||
;display_args_to_stdout=False
|
||||
|
||||
# (boolean) Toggle to control displaying skipped task/host entries in a task in the default callback
|
||||
;display_skipped_hosts=True
|
||||
|
||||
# (string) Root docsite URL used to generate docs URLs in warning/error text; must be an absolute URL with valid scheme and trailing slash.
|
||||
;docsite_root_url=https://docs.ansible.com/ansible-core/
|
||||
|
||||
# (pathspec) Colon separated paths in which Ansible will search for Documentation Fragments Plugins.
|
||||
;doc_fragment_plugins={{ ANSIBLE_HOME ~ "/plugins/doc_fragments:/usr/share/ansible/plugins/doc_fragments" }}
|
||||
|
||||
# (string) By default Ansible will issue a warning when a duplicate dict key is encountered in YAML.
|
||||
# These warnings can be silenced by adjusting this setting to False.
|
||||
;duplicate_dict_key=warn
|
||||
|
||||
# (boolean) Whether or not to enable the task debugger, this previously was done as a strategy plugin.
|
||||
# Now all strategy plugins can inherit this behavior. The debugger defaults to activating when
|
||||
# a task is failed on unreachable. Use the debugger keyword for more flexibility.
|
||||
;enable_task_debugger=False
|
||||
|
||||
# (boolean) Toggle to allow missing handlers to become a warning instead of an error when notifying.
|
||||
;error_on_missing_handler=True
|
||||
|
||||
# (list) Which modules to run during a play's fact gathering stage, using the default of 'smart' will try to figure it out based on connection type.
|
||||
# If adding your own modules but you still want to use the default Ansible facts, you will want to include 'setup' or corresponding network module to the list (if you add 'smart', Ansible will also figure it out).
|
||||
# This does not affect explicit calls to the 'setup' module, but does always affect the 'gather_facts' action (implicit or explicit).
|
||||
;facts_modules=smart
|
||||
|
||||
# (boolean) Set this to "False" if you want to avoid host key checking by the underlying tools Ansible uses to connect to the host
|
||||
;host_key_checking=True
|
||||
|
||||
# (boolean) Facts are available inside the `ansible_facts` variable, this setting also pushes them as their own vars in the main namespace.
|
||||
# Unlike inside the `ansible_facts` dictionary, these will have an `ansible_` prefix.
|
||||
;inject_facts_as_vars=True
|
||||
|
||||
# (string) Path to the Python interpreter to be used for module execution on remote targets, or an automatic discovery mode. Supported discovery modes are ``auto`` (the default), ``auto_silent``, ``auto_legacy``, and ``auto_legacy_silent``. All discovery modes employ a lookup table to use the included system Python (on distributions known to include one), falling back to a fixed ordered list of well-known Python interpreter locations if a platform-specific default is not available. The fallback behavior will issue a warning that the interpreter should be set explicitly (since interpreters installed later may change which one is used). This warning behavior can be disabled by setting ``auto_silent`` or ``auto_legacy_silent``. The value of ``auto_legacy`` provides all the same behavior, but for backwards-compatibility with older Ansible releases that always defaulted to ``/usr/bin/python``, will use that interpreter if present.
|
||||
interpreter_python=auto_silent
|
||||
|
||||
# (boolean) If 'false', invalid attributes for a task will result in warnings instead of errors
|
||||
;invalid_task_attribute_failed=True
|
||||
|
||||
# (boolean) Toggle to control showing warnings related to running a Jinja version older than required for jinja2_native
|
||||
;jinja2_native_warning=True
|
||||
|
||||
# (boolean) By default Ansible will issue a warning when there are no hosts in the inventory.
|
||||
# These warnings can be silenced by adjusting this setting to False.
|
||||
;localhost_warning=True
|
||||
|
||||
# (int) Maximum size of files to be considered for diff display
|
||||
;max_diff_size=104448
|
||||
|
||||
# (list) List of extensions to ignore when looking for modules to load
|
||||
# This is for rejecting script and binary module fallback extensions
|
||||
;module_ignore_exts={{(REJECT_EXTS + ('.yaml', '.yml', '.ini'))}}
|
||||
|
||||
# (bool) Enables whether module responses are evaluated for containing non UTF-8 data
|
||||
# Disabling this may result in unexpected behavior
|
||||
# Only ansible-core should evaluate this configuration
|
||||
;module_strict_utf8_response=True
|
||||
|
||||
# (list) TODO: write it
|
||||
;network_group_modules=eos, nxos, ios, iosxr, junos, enos, ce, vyos, sros, dellos9, dellos10, dellos6, asa, aruba, aireos, bigip, ironware, onyx, netconf, exos, voss, slxos
|
||||
|
||||
# (boolean) Previously Ansible would only clear some of the plugin loading caches when loading new roles, this led to some behaviours in which a plugin loaded in previous plays would be unexpectedly 'sticky'. This setting allows to return to that behaviour.
|
||||
;old_plugin_cache_clear=False
|
||||
|
||||
# (path) A number of non-playbook CLIs have a ``--playbook-dir`` argument; this sets the default value for it.
|
||||
;playbook_dir=
|
||||
|
||||
# (string) This sets which playbook dirs will be used as a root to process vars plugins, which includes finding host_vars/group_vars
|
||||
;playbook_vars_root=top
|
||||
|
||||
# (path) A path to configuration for filtering which plugins installed on the system are allowed to be used.
|
||||
# See :ref:`plugin_filtering_config` for details of the filter file's format.
|
||||
# The default is /etc/ansible/plugin_filters.yml
|
||||
;plugin_filters_cfg=
|
||||
|
||||
# (string) Attempts to set RLIMIT_NOFILE soft limit to the specified value when executing Python modules (can speed up subprocess usage on Python 2.x. See https://bugs.python.org/issue11284). The value will be limited by the existing hard limit. Default value of 0 does not attempt to adjust existing system-defined limits.
|
||||
;python_module_rlimit_nofile=0
|
||||
|
||||
# (bool) This controls whether a failed Ansible playbook should create a .retry file.
|
||||
;retry_files_enabled=False
|
||||
|
||||
# (path) This sets the path in which Ansible will save .retry files when a playbook fails and retry files are enabled.
|
||||
# This file will be overwritten after each run with the list of failed hosts from all plays.
|
||||
;retry_files_save_path=
|
||||
|
||||
# (str) This setting can be used to optimize vars_plugin usage depending on user's inventory size and play selection.
|
||||
;run_vars_plugins=demand
|
||||
|
||||
# (bool) This adds the custom stats set via the set_stats plugin to the default output
|
||||
;show_custom_stats=False
|
||||
|
||||
# (string) Action to take when a module parameter value is converted to a string (this does not affect variables). For string parameters, values such as '1.00', "['a', 'b',]", and 'yes', 'y', etc. will be converted by the YAML parser unless fully quoted.
|
||||
# Valid options are 'error', 'warn', and 'ignore'.
|
||||
# Since 2.8, this option defaults to 'warn' but will change to 'error' in 2.12.
|
||||
;string_conversion_action=warn
|
||||
|
||||
# (boolean) Allows disabling of warnings related to potential issues on the system running ansible itself (not on the managed hosts)
|
||||
# These may include warnings about 3rd party packages or other conditions that should be resolved if possible.
|
||||
;system_warnings=True
|
||||
|
||||
# (boolean) This option defines whether the task debugger will be invoked on a failed task when ignore_errors=True is specified.
|
||||
# True specifies that the debugger will honor ignore_errors, False will not honor ignore_errors.
|
||||
;task_debugger_ignore_errors=True
|
||||
|
||||
# (integer) Set the maximum time (in seconds) that a task can run for.
|
||||
# If set to 0 (the default) there is no timeout.
|
||||
;task_timeout=0
|
||||
|
||||
# (string) Make ansible transform invalid characters in group names supplied by inventory sources.
|
||||
;force_valid_group_names=never
|
||||
|
||||
# (boolean) Toggles the use of persistence for connections.
|
||||
;use_persistent_connections=False
|
||||
|
||||
# (bool) A toggle to disable validating a collection's 'metadata' entry for a module_defaults action group. Metadata containing unexpected fields or value types will produce a warning when this is True.
|
||||
;validate_action_group_metadata=True
|
||||
|
||||
# (list) Accept list for variable plugins that require it.
|
||||
;vars_plugins_enabled=host_group_vars
|
||||
|
||||
# (list) Allows to change the group variable precedence merge order.
|
||||
;precedence=all_inventory, groups_inventory, all_plugins_inventory, all_plugins_play, groups_plugins_inventory, groups_plugins_play
|
||||
|
||||
# (string) The salt to use for the vault encryption. If it is not provided, a random salt will be used.
|
||||
;vault_encrypt_salt=
|
||||
|
||||
# (bool) Force 'verbose' option to use stderr instead of stdout
|
||||
;verbose_to_stderr=False
|
||||
|
||||
# (integer) For asynchronous tasks in Ansible (covered in Asynchronous Actions and Polling), this is how long, in seconds, to wait for the task spawned by Ansible to connect back to the named pipe used on Windows systems. The default is 5 seconds. This can be too low on slower systems, or systems under heavy load.
|
||||
# This is not the total time an async command can run for, but is a separate timeout to wait for an async command to start. The task will only start to be timed against its async_timeout once it has connected to the pipe, so the overall maximum duration the task can take will be extended by the amount specified here.
|
||||
;win_async_startup_timeout=5
|
||||
|
||||
# (list) Check all of these extensions when looking for 'variable' files which should be YAML or JSON or vaulted versions of these.
|
||||
# This affects vars_files, include_vars, inventory and vars plugins among others.
|
||||
;yaml_valid_extensions=.yml, .yaml, .json
|
||||
|
||||
# (bool) Toggle to control displaying markers when running in check mode.
|
||||
# The markers are C(DRY RUN) at the beginning and ending of playbook execution (when calling C(ansible-playbook --check)) and C(CHECK MODE) as a suffix at every play and task that is run in check mode.
|
||||
;check_mode_markers=False
|
||||
|
||||
# (bool) Toggle to control whether failed and unreachable tasks are displayed to STDERR (vs. STDOUT)
|
||||
;display_failed_stderr=False
|
||||
|
||||
# (bool) Toggle to control displaying 'ok' task/host results in a task
|
||||
;display_ok_hosts=True
|
||||
|
||||
# (bool) Configure the result format to be more readable
|
||||
# When O(result_format) is set to V(yaml) this option defaults to V(True), and defaults to V(False) when configured to V(json).
|
||||
# Setting this option to V(True) will force V(json) and V(yaml) results to always be pretty printed regardless of verbosity.
|
||||
# When set to V(True) and used with the V(yaml) result format, this option will modify module responses in an attempt to produce a more human friendly output at the expense of correctness, and should not be relied upon to aid in writing variable manipulations or conditionals. For correctness, set this option to V(False) or set O(result_format) to V(json).
|
||||
;callback_format_pretty=
|
||||
|
||||
# (str) Define the task result format used in the callback output.
|
||||
# These formats do not cause the callback to emit valid JSON or YAML formats.
|
||||
# The output contains these formats interspersed with other non-machine parsable data.
|
||||
;callback_result_format=json
|
||||
|
||||
# (bool) This adds output that shows when a task is started to execute for each host
|
||||
;show_per_host_start=False
|
||||
|
||||
# (bool) When a task fails, display the path to the file containing the failed task and the line number. This information is displayed automatically for every task when running with C(-vv) or greater verbosity.
|
||||
;show_task_path_on_failure=False
|
||||
|
||||
# (list) list of users to be expected to have admin privileges. This is used by the controller to determine how to share temporary files between the remote user and the become user.
|
||||
;admin_users=root, toor
|
||||
|
||||
# (string) Directory in which ansible will keep async job information
|
||||
;async_dir=~/.ansible_async
|
||||
|
||||
# (string) Checked when Ansible needs to execute a module as a different user.
|
||||
# If setfacl and chown both fail and do not let the different user access the module's files, they will be chgrp'd to this group.
|
||||
# In order for this to work, the remote_user and become_user must share a common group and this setting must be set to that group.
|
||||
;common_remote_group=
|
||||
|
||||
# (string) Temporary directory to use on targets when executing tasks.
|
||||
;remote_tmp=~/.ansible/tmp
|
||||
|
||||
# (list) List of valid system temporary directories on the managed machine for Ansible to validate O(remote_tmp) against, when specific permissions are needed. These must be world readable, writable, and executable. This list should only contain directories which the system administrator has pre-created with the proper ownership and permissions otherwise security issues can arise.
|
||||
# When O(remote_tmp) is required to be a system temp dir and it does not match any in the list, the first one from the list will be used instead.
|
||||
;system_tmpdirs=/var/tmp, /tmp
|
||||
|
||||
# (boolean) This makes the temporary files created on the machine world-readable and will issue a warning instead of failing the task.
|
||||
# It is useful when becoming an unprivileged user.
|
||||
;allow_world_readable_tmpfiles=False
|
||||
|
||||
|
||||
[privilege_escalation]
|
||||
# (boolean) Display an agnostic become prompt instead of displaying a prompt containing the command line supplied become method
|
||||
;agnostic_become_prompt=True
|
||||
|
||||
# (boolean) This setting controls if become is skipped when remote user and become user are the same. I.E root sudo to root.
|
||||
# If executable, it will be run and the resulting stdout will be used as the password.
|
||||
;become_allow_same_user=False
|
||||
|
||||
# (boolean) Toggles the use of privilege escalation, allowing you to 'become' another user after login.
|
||||
;become=False
|
||||
|
||||
# (boolean) Toggle to prompt for privilege escalation password.
|
||||
;become_ask_pass=False
|
||||
|
||||
# (string) executable to use for privilege escalation, otherwise Ansible will depend on PATH
|
||||
;become_exe=
|
||||
|
||||
# (string) Flags to pass to the privilege escalation executable.
|
||||
;become_flags=
|
||||
|
||||
# (string) Privilege escalation method to use when `become` is enabled.
|
||||
;become_method=sudo
|
||||
|
||||
# (string) The user your login/remote user 'becomes' when using privilege escalation, most systems will use 'root' when no user is specified.
|
||||
;become_user=root
|
||||
|
||||
|
||||
[persistent_connection]
|
||||
# (path) Specify where to look for the ansible-connection script. This location will be checked before searching $PATH.
|
||||
# If null, ansible will start with the same directory as the ansible script.
|
||||
;ansible_connection_path=
|
||||
|
||||
# (int) This controls the amount of time to wait for response from remote device before timing out persistent connection.
|
||||
;command_timeout=30
|
||||
|
||||
# (integer) This controls the retry timeout for persistent connection to connect to the local domain socket.
|
||||
;connect_retry_timeout=15
|
||||
|
||||
# (integer) This controls how long the persistent connection will remain idle before it is destroyed.
|
||||
;connect_timeout=30
|
||||
|
||||
# (path) Path to socket to be used by the connection persistence system.
|
||||
;control_path_dir={{ ANSIBLE_HOME ~ "/pc" }}
|
||||
|
||||
|
||||
[connection]
|
||||
# (boolean) This is a global option, each connection plugin can override either by having more specific options or not supporting pipelining at all.
|
||||
# Pipelining, if supported by the connection plugin, reduces the number of network operations required to execute a module on the remote server, by executing many Ansible modules without actual file transfer.
|
||||
# It can result in a very significant performance improvement when enabled.
|
||||
# However this conflicts with privilege escalation (become). For example, when using 'sudo:' operations you must first disable 'requiretty' in /etc/sudoers on all managed hosts, which is why it is disabled by default.
|
||||
# This setting will be disabled if ``ANSIBLE_KEEP_REMOTE_FILES`` is enabled.
|
||||
;pipelining=False
|
||||
|
||||
|
||||
[colors]
|
||||
# (string) Defines the color to use on 'Changed' task status
|
||||
;changed=yellow
|
||||
|
||||
# (string) Defines the default color to use for ansible-console
|
||||
;console_prompt=white
|
||||
|
||||
# (string) Defines the color to use when emitting debug messages
|
||||
;debug=dark gray
|
||||
|
||||
# (string) Defines the color to use when emitting deprecation messages
|
||||
;deprecate=purple
|
||||
|
||||
# (string) Defines the color to use when showing added lines in diffs
|
||||
;diff_add=green
|
||||
|
||||
# (string) Defines the color to use when showing diffs
|
||||
;diff_lines=cyan
|
||||
|
||||
# (string) Defines the color to use when showing removed lines in diffs
|
||||
;diff_remove=red
|
||||
|
||||
# (string) Defines the color to use when emitting error messages
|
||||
;error=red
|
||||
|
||||
# (string) Defines the color to use for highlighting
|
||||
;highlight=white
|
||||
|
||||
# (string) Defines the color to use when showing 'OK' task status
|
||||
;ok=green
|
||||
|
||||
# (string) Defines the color to use when showing 'Skipped' task status
|
||||
;skip=cyan
|
||||
|
||||
# (string) Defines the color to use on 'Unreachable' status
|
||||
;unreachable=bright red
|
||||
|
||||
# (string) Defines the color to use when emitting verbose messages. i.e those that show with '-v's.
|
||||
;verbose=blue
|
||||
|
||||
# (string) Defines the color to use when emitting warning messages
|
||||
;warn=bright purple
|
||||
|
||||
|
||||
[selinux]
|
||||
# (boolean) This setting causes libvirt to connect to lxc containers by passing --noseclabel to virsh. This is necessary when running on systems which do not have SELinux.
|
||||
;libvirt_lxc_noseclabel=False
|
||||
|
||||
# (list) Some filesystems do not support safe operations and/or return inconsistent errors, this setting makes Ansible 'tolerate' those in the list w/o causing fatal errors.
|
||||
# Data corruption may occur and writes are not always verified when a filesystem is in the list.
|
||||
;special_context_filesystems=fuse, nfs, vboxsf, ramfs, 9p, vfat
|
||||
|
||||
|
||||
[diff]
|
||||
# (bool) Configuration toggle to tell modules to show differences when in 'changed' status, equivalent to ``--diff``.
|
||||
;always=False
|
||||
|
||||
# (integer) How many lines of context to show when displaying the differences between files.
|
||||
;context=3
|
||||
|
||||
|
||||
[galaxy]
|
||||
# (path) The directory that stores cached responses from a Galaxy server.
|
||||
# This is only used by the ``ansible-galaxy collection install`` and ``download`` commands.
|
||||
# Cache files inside this dir will be ignored if they are world writable.
|
||||
cache_dir=~/.cache/ansible
|
||||
|
||||
# (bool) whether ``ansible-galaxy collection install`` should warn about ``--collections-path`` missing from configured :ref:`collections_paths`
|
||||
;collections_path_warning=True
|
||||
|
||||
# (path) Collection skeleton directory to use as a template for the ``init`` action in ``ansible-galaxy collection``, same as ``--collection-skeleton``.
|
||||
;collection_skeleton=
|
||||
|
||||
# (list) patterns of files to ignore inside a Galaxy collection skeleton directory
|
||||
;collection_skeleton_ignore=^.git$, ^.*/.git_keep$
|
||||
|
||||
# (bool) Disable GPG signature verification during collection installation.
|
||||
;disable_gpg_verify=False
|
||||
|
||||
# (bool) Some steps in ``ansible-galaxy`` display a progress wheel which can cause issues on certain displays or when outputting the stdout to a file.
|
||||
# This config option controls whether the display wheel is shown or not.
|
||||
# The default is to show the display wheel if stdout has a tty.
|
||||
;display_progress=
|
||||
|
||||
# (path) Configure the keyring used for GPG signature verification during collection installation and verification.
|
||||
;gpg_keyring=
|
||||
|
||||
# (boolean) If set to yes, ansible-galaxy will not validate TLS certificates. This can be useful for testing against a server with a self-signed certificate.
|
||||
;ignore_certs=
|
||||
|
||||
# (list) A list of GPG status codes to ignore during GPG signature verification. See L(https://github.com/gpg/gnupg/blob/master/doc/DETAILS#general-status-codes) for status code descriptions.
|
||||
# If fewer signatures successfully verify the collection than `GALAXY_REQUIRED_VALID_SIGNATURE_COUNT`, signature verification will fail even if all error codes are ignored.
|
||||
;ignore_signature_status_codes=
|
||||
|
||||
# (str) The number of signatures that must be successful during GPG signature verification while installing or verifying collections.
|
||||
# This should be a positive integer or all to indicate all signatures must successfully validate the collection.
|
||||
# Prepend + to the value to fail if no valid signatures are found for the collection.
|
||||
;required_valid_signature_count=1
|
||||
|
||||
# (path) Role skeleton directory to use as a template for the ``init`` action in ``ansible-galaxy``/``ansible-galaxy role``, same as ``--role-skeleton``.
|
||||
;role_skeleton=
|
||||
|
||||
# (list) patterns of files to ignore inside a Galaxy role or collection skeleton directory
|
||||
;role_skeleton_ignore=^.git$, ^.*/.git_keep$
|
||||
|
||||
# (string) URL to prepend when roles don't specify the full URI, assume they are referencing this server as the source.
|
||||
;server=https://galaxy.ansible.com
|
||||
|
||||
# (list) A list of Galaxy servers to use when installing a collection.
|
||||
# The value corresponds to the config ini header ``[galaxy_server.{{item}}]`` which defines the server details.
|
||||
# See :ref:`galaxy_server_config` for more details on how to define a Galaxy server.
|
||||
# The order of servers in this list is used to as the order in which a collection is resolved.
|
||||
# Setting this config option will ignore the :ref:`galaxy_server` config option.
|
||||
;server_list=
|
||||
|
||||
# (int) The default timeout for Galaxy API calls. Galaxy servers that don't configure a specific timeout will fall back to this value.
|
||||
;server_timeout=60
|
||||
|
||||
# (path) Local path to galaxy access token file
|
||||
;token_path={{ ANSIBLE_HOME ~ "/galaxy_token" }}
|
||||
|
||||
|
||||
[inventory]
|
||||
# (string) This setting changes the behaviour of mismatched host patterns, it allows you to force a fatal error, a warning or just ignore it
|
||||
;host_pattern_mismatch=warning
|
||||
|
||||
# (boolean) If 'true', it is a fatal error when any given inventory source cannot be successfully parsed by any available inventory plugin; otherwise, this situation only attracts a warning.
|
||||
|
||||
;any_unparsed_is_failed=False
|
||||
|
||||
# (bool) Toggle to turn on inventory caching.
|
||||
# This setting has been moved to the individual inventory plugins as a plugin option :ref:`inventory_plugins`.
|
||||
# The existing configuration settings are still accepted with the inventory plugin adding additional options from inventory configuration.
|
||||
# This message will be removed in 2.16.
|
||||
;cache=False
|
||||
|
||||
# (string) The plugin for caching inventory.
|
||||
# This setting has been moved to the individual inventory plugins as a plugin option :ref:`inventory_plugins`.
|
||||
# The existing configuration settings are still accepted with the inventory plugin adding additional options from inventory and fact cache configuration.
|
||||
# This message will be removed in 2.16.
|
||||
;cache_plugin=
|
||||
|
||||
# (string) The inventory cache connection.
|
||||
# This setting has been moved to the individual inventory plugins as a plugin option :ref:`inventory_plugins`.
|
||||
# The existing configuration settings are still accepted with the inventory plugin adding additional options from inventory and fact cache configuration.
|
||||
# This message will be removed in 2.16.
|
||||
;cache_connection=
|
||||
|
||||
# (string) The table prefix for the cache plugin.
|
||||
# This setting has been moved to the individual inventory plugins as a plugin option :ref:`inventory_plugins`.
|
||||
# The existing configuration settings are still accepted with the inventory plugin adding additional options from inventory and fact cache configuration.
|
||||
# This message will be removed in 2.16.
|
||||
;cache_prefix=ansible_inventory_
|
||||
|
||||
# (string) Expiration timeout for the inventory cache plugin data.
|
||||
# This setting has been moved to the individual inventory plugins as a plugin option :ref:`inventory_plugins`.
|
||||
# The existing configuration settings are still accepted with the inventory plugin adding additional options from inventory and fact cache configuration.
|
||||
# This message will be removed in 2.16.
|
||||
;cache_timeout=3600
|
||||
|
||||
# (list) List of enabled inventory plugins, it also determines the order in which they are used.
|
||||
;enable_plugins=host_list, script, auto, yaml, ini, toml
|
||||
|
||||
# (bool) Controls if ansible-inventory will accurately reflect Ansible's view into inventory or its optimized for exporting.
|
||||
;export=False
|
||||
|
||||
# (list) List of extensions to ignore when using a directory as an inventory source
|
||||
;ignore_extensions={{(REJECT_EXTS + ('.orig', '.ini', '.cfg', '.retry'))}}
|
||||
|
||||
# (list) List of patterns to ignore when using a directory as an inventory source
|
||||
;ignore_patterns=
|
||||
|
||||
# (bool) If 'true' it is a fatal error if every single potential inventory source fails to parse, otherwise this situation will only attract a warning.
|
||||
|
||||
;unparsed_is_failed=False
|
||||
|
||||
# (boolean) By default Ansible will issue a warning when no inventory was loaded and notes that it will use an implicit localhost-only inventory.
|
||||
# These warnings can be silenced by adjusting this setting to False.
|
||||
;inventory_unparsed_warning=True
|
||||
|
||||
|
||||
[netconf_connection]
|
||||
# (string) This variable is used to enable bastion/jump host with netconf connection. If set to True the bastion/jump host ssh settings should be present in ~/.ssh/config file, alternatively it can be set to custom ssh configuration file path to read the bastion/jump host settings.
|
||||
;ssh_config=
|
||||
|
||||
|
||||
[paramiko_connection]
|
||||
# (boolean) TODO: write it
|
||||
;host_key_auto_add=False
|
||||
|
||||
# (boolean) TODO: write it
|
||||
;look_for_keys=True
|
||||
|
||||
# (float) Configures, in seconds, the amount of time to wait for the SSH banner to be presented. This option is supported by paramiko version 1.15.0 or newer.
|
||||
;banner_timeout=30
|
||||
|
||||
# (boolean) Set this to "False" if you want to avoid host key checking by the underlying tools Ansible uses to connect to the host
|
||||
;host_key_checking=True
|
||||
|
||||
# (int) Remote port to connect to.
|
||||
;remote_port=22
|
||||
|
||||
# (string) Path to private key file to use for authentication.
|
||||
;private_key_file=
|
||||
|
||||
# (string) Proxy information for running the connection via a jumphost
|
||||
# Also this plugin will scan 'ssh_args', 'ssh_extra_args' and 'ssh_common_args' from the 'ssh' plugin settings for proxy information if set.
|
||||
;proxy_command=
|
||||
|
||||
# (boolean) SUDO usually requires a PTY, True to give a PTY and False to not give a PTY.
|
||||
;pty=True
|
||||
|
||||
# (boolean) Save the host keys to a file
|
||||
;record_host_keys=True
|
||||
|
||||
# (string) User to login/authenticate as
|
||||
# Can be set from the CLI via the C(--user) or C(-u) options.
|
||||
;remote_user=
|
||||
|
||||
# (int) Number of seconds until the plugin gives up on failing to establish a TCP connection.
|
||||
;timeout=10
|
||||
|
||||
# (boolean) Whether or not to enable RSA SHA2 algorithms for pubkeys and hostkeys
|
||||
# On paramiko versions older than 2.9, this only affects hostkeys
|
||||
# For behavior matching paramiko<2.9 set this to V(False)
|
||||
;use_rsa_sha2_algorithms=True
|
||||
|
||||
|
||||
[jinja2]
|
||||
# (list) This list of filters avoids 'type conversion' when templating variables
|
||||
# Useful when you want to avoid conversion into lists or dictionaries for JSON strings, for example.
|
||||
;dont_type_filters=string, to_json, to_nice_json, to_yaml, to_nice_yaml, ppretty, json
|
||||
|
||||
|
||||
[tags]
|
||||
# (list) default list of tags to run in your plays, Skip Tags has precedence.
|
||||
;run=
|
||||
|
||||
# (list) default list of tags to skip in your plays, has precedence over Run Tags
|
||||
;skip=
|
||||
|
||||
|
||||
[runas_become_plugin]
|
||||
# (string) Options to pass to runas, a space delimited list of k=v pairs
|
||||
;flags=
|
||||
|
||||
# (string) password
|
||||
;password=
|
||||
|
||||
# (string) User you 'become' to execute the task
|
||||
;user=
|
||||
|
||||
|
||||
[su_become_plugin]
|
||||
# (string) Su executable
|
||||
;executable=su
|
||||
|
||||
# (string) Options to pass to su
|
||||
;flags=
|
||||
|
||||
# (string) Password to pass to su
|
||||
;password=
|
||||
|
||||
# (string) User you 'become' to execute the task
|
||||
;user=root
|
||||
|
||||
# (list) List of localized strings to match for prompt detection
|
||||
# If empty we'll use the built in one
|
||||
# Do NOT add a colon (:) to your custom entries. Ansible adds a colon at the end of each prompt; if you add another one in your string, your prompt will fail with a "Timeout" error.
|
||||
;localized_prompts=
|
||||
|
||||
|
||||
[sudo_become_plugin]
|
||||
# (string) Sudo executable
|
||||
;executable=sudo
|
||||
|
||||
# (string) Options to pass to sudo
|
||||
;flags=-H -S -n
|
||||
|
||||
# (string) Password to pass to sudo
|
||||
;password=
|
||||
|
||||
# (string) User you 'become' to execute the task
|
||||
;user=root
|
||||
|
||||
|
||||
[callback_tree]
|
||||
# (path) directory that will contain the per host JSON files. Also set by the C(--tree) option when using adhoc.
|
||||
;directory=~/.ansible/tree
|
||||
|
||||
|
||||
[ssh_connection]
|
||||
# (string) Only used in parsing ProxyCommand for use in this plugin.
|
||||
;ssh_args=
|
||||
|
||||
# (string) Only used in parsing ProxyCommand for use in this plugin.
|
||||
;ssh_common_args=
|
||||
|
||||
# (string) Only used in parsing ProxyCommand for use in this plugin.
|
||||
;ssh_extra_args=
|
||||
|
||||
# (string) This is the location to save SSH's ControlPath sockets, it uses SSH's variable substitution.
|
||||
# Since 2.3, if null (default), ansible will generate a unique hash. Use ``%(directory)s`` to indicate where to use the control dir path setting.
|
||||
# Before 2.3 it defaulted to ``control_path=%(directory)s/ansible-ssh-%%h-%%p-%%r``.
|
||||
# Be aware that this setting is ignored if C(-o ControlPath) is set in ssh args.
|
||||
;control_path=
|
||||
|
||||
# (string) This sets the directory to use for ssh control path if the control path setting is null.
|
||||
# Also, provides the ``%(directory)s`` variable for the control path setting.
|
||||
;control_path_dir=~/.ansible/cp
|
||||
|
||||
# (boolean) Determines if SSH should check host keys.
|
||||
;host_key_checking=True
|
||||
|
||||
# (boolean) Pipelining reduces the number of connection operations required to execute a module on the remote server, by executing many Ansible modules without actual file transfers.
|
||||
# This can result in a very significant performance improvement when enabled.
|
||||
# However this can conflict with privilege escalation (become). For example, when using sudo operations you must first disable 'requiretty' in the sudoers file for the target hosts, which is why this feature is disabled by default.
|
||||
;pipelining=False
|
||||
|
||||
# (string) PKCS11 SmartCard provider such as opensc, example: /usr/local/lib/opensc-pkcs11.so
|
||||
# Requires sshpass version 1.06+, sshpass must support the -P option.
|
||||
;pkcs11_provider=
|
||||
|
||||
# (integer) Number of attempts to connect.
|
||||
# Ansible retries connections only if it gets an SSH error with a return code of 255.
|
||||
# Any errors with return codes other than 255 indicate an issue with program execution.
|
||||
;retries=0
|
||||
|
||||
# (string) This defines the location of the scp binary. It defaults to V(scp) which will use the first binary available in $PATH.
|
||||
;scp_executable=scp
|
||||
|
||||
# (string) Extra exclusive to the C(scp) CLI
|
||||
;scp_extra_args=
|
||||
|
||||
# (string) Preferred method to use when transferring files over SSH.
|
||||
# When set to V(smart), Ansible will try them until one succeeds or they all fail.
|
||||
# If set to V(True), it will force 'scp', if V(False) it will use 'sftp'.
|
||||
# For OpenSSH >=9.0 you must add an additional option to enable scp (C(scp_extra_args="-O"))
|
||||
# This setting will overridden by O(ssh_transfer_method) if set.
|
||||
;scp_if_ssh=smart
|
||||
|
||||
# (bool) TODO: write it
|
||||
;sftp_batch_mode=True
|
||||
|
||||
# (string) This defines the location of the sftp binary. It defaults to V(sftp) which will use the first binary available in $PATH.
|
||||
;sftp_executable=sftp
|
||||
|
||||
# (string) Extra exclusive to the C(sftp) CLI
|
||||
;sftp_extra_args=
|
||||
|
||||
# (string) This defines the location of the SSH binary. It defaults to V(ssh) which will use the first SSH binary available in $PATH.
|
||||
# This option is usually not required, it might be useful when access to system SSH is restricted, or when using SSH wrappers to connect to remote hosts.
|
||||
;ssh_executable=ssh
|
||||
|
||||
# (string) Preferred method to use when transferring files over ssh
|
||||
# Setting to 'smart' (default) will try them in order, until one succeeds or they all fail
|
||||
# For OpenSSH >=9.0 you must add an additional option to enable scp (scp_extra_args="-O")
|
||||
# Using 'piped' creates an ssh pipe with C(dd) on either side to copy the data
|
||||
;transfer_method=
|
||||
|
||||
# (string) Password prompt that sshpass should search for. Supported by sshpass 1.06 and up.
|
||||
# Defaults to C(Enter PIN for) when pkcs11_provider is set.
|
||||
;sshpass_prompt=
|
||||
|
||||
# (integer) This is the default amount of time we will wait while establishing an SSH connection.
|
||||
# It also controls how long we can wait to access reading the connection once established (select on the socket).
|
||||
;timeout=10
|
||||
|
||||
# (bool) add -tt to ssh commands to force tty allocation.
|
||||
;usetty=True
|
||||
|
||||
|
||||
[winrm]
|
||||
# (list) A list of environment variables to pass through to C(kinit) when getting the Kerberos authentication ticket.
|
||||
# By default no environment variables are passed through and C(kinit) is run with a blank slate.
|
||||
# The environment variable C(KRB5CCNAME) cannot be specified here as it's used to store the temp Kerberos ticket used by WinRM.
|
||||
;kinit_env_vars=
|
||||
|
||||
|
||||
[inventory_plugins]
|
||||
# (bool) Merge extra vars into the available variables for composition (highest precedence).
|
||||
;use_extra_vars=False
|
||||
|
||||
|
||||
[inventory_plugin_script]
|
||||
# (boolean) Toggle display of stderr even when script was successful
|
||||
;always_show_stderr=True
|
||||
|
||||
|
||||
[inventory_plugin_yaml]
|
||||
# (list) list of 'valid' extensions for files containing YAML
|
||||
;yaml_valid_extensions=.yaml, .yml, .json
|
||||
|
||||
|
||||
[url_lookup]
|
||||
# (string) String of file system path to CA cert bundle to use
|
||||
;ca_path=
|
||||
|
||||
# (list) SSL/TLS Ciphers to use for the request
|
||||
# When a list is provided, all ciphers are joined in order with C(:)
|
||||
# See the L(OpenSSL Cipher List Format,https://www.openssl.org/docs/manmaster/man1/openssl-ciphers.html#CIPHER-LIST-FORMAT) for more details.
|
||||
# The available ciphers is dependent on the Python and OpenSSL/LibreSSL versions
|
||||
;ciphers=
|
||||
|
||||
# (string) String of urllib2, all/yes, safe, none to determine how redirects are followed, see RedirectHandlerFactory for more information
|
||||
;follow_redirects=urllib2
|
||||
|
||||
# (boolean) Whether or not to set "cache-control" header with value "no-cache"
|
||||
;force=False
|
||||
|
||||
# (boolean) Force basic authentication
|
||||
;force_basic_auth=False
|
||||
|
||||
# (string) User-Agent to use in the request. The default was changed in 2.11 to V(ansible-httpget).
|
||||
;agent=ansible-httpget
|
||||
|
||||
# (float) How long to wait for the server to send data before giving up
|
||||
;timeout=10
|
||||
|
||||
# (string) String of file system path to unix socket file to use when establishing connection to the provided url
|
||||
;unix_socket=
|
||||
|
||||
# (list) A list of headers to not attach on a redirected request
|
||||
;unredirected_headers=
|
||||
|
||||
# (boolean) Use GSSAPI handler of requests
|
||||
# As of Ansible 2.11, GSSAPI credentials can be specified with O(username) and O(password).
|
||||
;use_gssapi=False
|
||||
|
||||
# (boolean) Determining whether to use credentials from ``~/.netrc`` file
|
||||
# By default .netrc is used with Basic authentication headers
|
||||
# When set to False, .netrc credentials are ignored
|
||||
;use_netrc=True
|
||||
|
||||
|
||||
[powershell]
|
||||
# (string) Directory in which ansible will keep async job information.
|
||||
# Before Ansible 2.8, this was set to C(remote_tmp + "\.ansible_async").
|
||||
;async_dir=%USERPROFILE%\.ansible_async
|
||||
|
||||
# (string) Temporary directory to use on targets when copying files to the host.
|
||||
;remote_tmp=%TEMP%
|
||||
|
||||
|
||||
[vars_host_group_vars]
|
||||
# (str) Control when this vars plugin may be executed.
|
||||
# Setting this option to V(all) will run the vars plugin after importing inventory and whenever it is demanded by a task.
|
||||
# Setting this option to V(task) will only run the vars plugin whenever it is demanded by a task.
|
||||
# Setting this option to V(inventory) will only run the vars plugin after parsing inventory.
|
||||
# If this option is omitted, the global C(RUN_VARS_PLUGINS) configuration is used to determine when to execute the vars plugin.
|
||||
;stage=
|
||||
|
||||
@@ -12,5 +12,6 @@ imports:
|
||||
- "./email.yml"
|
||||
- "./housecallpro.yml"
|
||||
- "./links.yml"
|
||||
- './symbols.yml'
|
||||
|
||||
|
||||
|
||||
9
espanso/espanso/match/symbols.yml
Normal file
9
espanso/espanso/match/symbols.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
matches:
|
||||
- trigger: ':deg:'
|
||||
replace: '°'
|
||||
- trigger: ':cmd:'
|
||||
replace: '⌘'
|
||||
- trigger: ':shift:'
|
||||
replace: '⇧'
|
||||
- trigger: ':noteq:'
|
||||
replace: '≠'
|
||||
11
facebook-bot/README.md
Normal file
11
facebook-bot/README.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# Facebook Bot Instructions
|
||||
|
||||
This is used to programmaticly make posts to Facebook.
|
||||
|
||||
## References
|
||||
|
||||
- https://developers.facebook.com/docs/graph-api/reference/v18.0/group/feed
|
||||
- https://developers.facebook.com/tools/explorer?method=GET&path=896542914538874&version=v18.0
|
||||
|
||||
An access token with `publish_to_groups` permissions is required to post to
|
||||
groups.
|
||||
@@ -5,6 +5,13 @@
|
||||
[user]
|
||||
name = Michael Housh
|
||||
email = mhoush@houshhomeenergy.com
|
||||
signingkey = mhoush@houshhomeenergy.com
|
||||
|
||||
[commit]
|
||||
gpgsign = true
|
||||
[tag]
|
||||
gpgSign = true
|
||||
|
||||
[color]
|
||||
ui = true
|
||||
[filter "lfs"]
|
||||
|
||||
32
gpg-tui/gpg-tui.toml
Normal file
32
gpg-tui/gpg-tui.toml
Normal file
@@ -0,0 +1,32 @@
|
||||
[general]
|
||||
splash = false
|
||||
tick_rate = 250
|
||||
color = "gray"
|
||||
style = "colored"
|
||||
file_explorer = "xplr"
|
||||
detail_level = "minimum"
|
||||
# log_file = "test"
|
||||
# key_bindings = [
|
||||
# { keys = [ "?" ], command = ":help" },
|
||||
# { keys = [ "o" ], command = ":options" },
|
||||
# { keys = [ "n" ], command = ":normal" },
|
||||
# { keys = [ "v" ], command = ":visual" },
|
||||
# { keys = [ "c" ], command = ":copy" },
|
||||
# { keys = [ "p", "C-v" ], command = ":paste" },
|
||||
# { keys = [ "x" ], command = ":export" },
|
||||
# { keys = [ "s" ], command = ":set prompt :sign" },
|
||||
# { keys = [ "e" ], command = ":set prompt :edit" },
|
||||
# { keys = [ "i" ], command = ":set prompt :import"},
|
||||
# { keys = [ "f" ], command = ":set prompt :receive" },
|
||||
# { keys = [ "u" ], command = ":set prompt :send" },
|
||||
# { keys = [ "g" ], command = ":generate" },
|
||||
# { keys = [ "d", "backspace" ], command = ":delete" },
|
||||
# { keys = [ "C-r" ], command = ":refresh" },
|
||||
# ]
|
||||
|
||||
[gpg]
|
||||
armor = false
|
||||
homedir = "~/.gnupg"
|
||||
outdir = "~/.gnupg/out"
|
||||
# outfile = "{type}_{query}.{ext}"
|
||||
# default_key = "0xA1B2C3XY"
|
||||
17
kitty/kitty.conf
Normal file
17
kitty/kitty.conf
Normal file
@@ -0,0 +1,17 @@
|
||||
# _ _ _ ___ ___ _ _ ____ ____ _ _ ____
|
||||
# |_/ | | | \_/ | | | |\ | |___
|
||||
# | \_ | | | | .|___ |__| | \| |
|
||||
#
|
||||
|
||||
font_family Droid Sans Mono for Powerline Regular
|
||||
|
||||
font_size 16.0
|
||||
symbol_map U+E0A0-U+E0A3,U+E0C0-U+E0C7 1
|
||||
narrow_symbols U+E0A0-U+E0A3,U+E0C0-U+E0C7 1
|
||||
|
||||
macos_titlebar_color system
|
||||
|
||||
background_opacity 0.9
|
||||
|
||||
#hide_window_decorations titlebar-only
|
||||
hide_window_decorations no
|
||||
@@ -663,6 +663,8 @@
|
||||
<false/>
|
||||
<key>OpenNoWindowsAtStartup</key>
|
||||
<false/>
|
||||
<key>OpenTmuxWindowsIn</key>
|
||||
<integer>0</integer>
|
||||
<key>PointerActions</key>
|
||||
<dict>
|
||||
<key>Button,1,1,,</key>
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
<string>com.micheal.clear-screenshots</string>
|
||||
<key>ProgramArguments</key>
|
||||
<array>
|
||||
<string>sh</string>
|
||||
<string>zsh</string>
|
||||
<string>-c</string>
|
||||
<string>/Users/michael/.local/scripts/clear_screenshots</string>
|
||||
<string>/Users/michael/.config/zsh/functions/clean-screenshots</string>
|
||||
</array>
|
||||
<key>StartCalendarInterval</key>
|
||||
<dict>
|
||||
|
||||
17
nap/config.yaml
Normal file
17
nap/config.yaml
Normal file
@@ -0,0 +1,17 @@
|
||||
# Configuration
|
||||
home: ~/.local/nap
|
||||
default_language: go
|
||||
theme: nord
|
||||
|
||||
# Colors
|
||||
background: "0"
|
||||
foreground: "7"
|
||||
primary_color: "#AFBEE1"
|
||||
primary_color_subdued: "#64708D"
|
||||
green: "#527251"
|
||||
bright_green: "#BCE1AF"
|
||||
bright_red: "#E49393"
|
||||
red: "#A46060"
|
||||
black: "#373B41"
|
||||
gray: "240"
|
||||
white: "#FFFFFF"
|
||||
5
npm/npmrc
Normal file
5
npm/npmrc
Normal file
@@ -0,0 +1,5 @@
|
||||
# Needs linked to ~/.config/npm/npmrc
|
||||
|
||||
prefix=${XDG_DATA_HOME}/npm
|
||||
cache=${XDG_CACHE_HOME}/npm
|
||||
init-module=${XDG_CONFIG_HOME}/npm/config/npm-init.js
|
||||
@@ -1,11 +0,0 @@
|
||||
local o = vim.opt
|
||||
local keymap = vim.api.nvim_set_keymap
|
||||
local default_options = {noremap = true, silent = true}
|
||||
|
||||
o.tabstop = 2
|
||||
o.softtabstop = 2
|
||||
o.shiftwidth = 2
|
||||
|
||||
keymap('n', '<C-b>', '<cmd>!swift build<CR>', default_options)
|
||||
keymap('n', '<C-T>', '<cmd>!swift test<CR>', default_options)
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
-- Plugins
|
||||
require('plugins')
|
||||
|
||||
-- Key maps
|
||||
require('mappings')
|
||||
|
||||
-- Common settings
|
||||
require('settings')
|
||||
|
||||
-- Auto commands
|
||||
require('autocmd')
|
||||
|
||||
-- Theme
|
||||
require('theme')
|
||||
@@ -1,16 +0,0 @@
|
||||
-- Remove all trailing whitespace on save
|
||||
vim.api.nvim_exec([[
|
||||
augroup TrimWhiteSpace
|
||||
au!
|
||||
autocmd BufWritePre * :%s/\s\+$//e
|
||||
augroup END
|
||||
]], false)
|
||||
|
||||
-- Prevent new line to also start with a comment
|
||||
vim.api.nvim_exec([[
|
||||
augroup NewLineComment
|
||||
au!
|
||||
au FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o
|
||||
augroup END
|
||||
]], false)
|
||||
|
||||
@@ -1,118 +0,0 @@
|
||||
-- Setup nvim-cmp.
|
||||
local cmp = require "cmp"
|
||||
local lspkind = require("lspkind")
|
||||
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||
|
||||
local has_words_before = function()
|
||||
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
||||
return col ~= 0
|
||||
and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(
|
||||
col, col):match("%s") == nil
|
||||
end
|
||||
|
||||
local feedkey = function(key, mode)
|
||||
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes(key, true, true, true),
|
||||
mode, true)
|
||||
end
|
||||
|
||||
|
||||
require'lspconfig'.sourcekit.setup {
|
||||
capabilities = capabilities
|
||||
}
|
||||
|
||||
lspkind.init({
|
||||
symbol_map = {
|
||||
Text = "",
|
||||
Method = "",
|
||||
Function = "",
|
||||
Constructor = "",
|
||||
Field = "ﰠ",
|
||||
Variable = "",
|
||||
Class = "ﴯ",
|
||||
Interface = "",
|
||||
Module = "",
|
||||
Property = "ﰠ",
|
||||
Unit = "塞",
|
||||
Value = "",
|
||||
Enum = "",
|
||||
Keyword = "",
|
||||
Snippet = "",
|
||||
Color = "",
|
||||
File = "",
|
||||
Reference = "",
|
||||
Folder = "",
|
||||
EnumMember = "",
|
||||
Constant = "",
|
||||
Struct = "פּ",
|
||||
Event = "",
|
||||
Operator = "",
|
||||
TypeParameter = ""
|
||||
}
|
||||
})
|
||||
|
||||
cmp.setup({
|
||||
formatting = {
|
||||
format = lspkind.cmp_format {
|
||||
with_text = false,
|
||||
maxwidth = 50,
|
||||
menu = {
|
||||
buffer = "BUF",
|
||||
nvim_lsp = "LSP",
|
||||
path = "PATH",
|
||||
vsnip = "SNIP",
|
||||
calc = "CALC",
|
||||
spell = "SPELL",
|
||||
emoji = "EMOJI"
|
||||
}
|
||||
}
|
||||
},
|
||||
experimental = {native_menu = false, ghost_text = false},
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users.
|
||||
end
|
||||
},
|
||||
mapping = {
|
||||
["<C-p>"] = cmp.mapping.select_prev_item(),
|
||||
["<C-n>"] = cmp.mapping.select_next_item(),
|
||||
["<C-d>"] = cmp.mapping.scroll_docs(-4),
|
||||
["<C-f>"] = cmp.mapping.scroll_docs(4),
|
||||
["<C-Space>"] = cmp.mapping.complete(),
|
||||
["<C-e>"] = cmp.mapping.close(),
|
||||
["<CR>"] = cmp.mapping.confirm {
|
||||
behavior = cmp.ConfirmBehavior.Replace,
|
||||
select = false
|
||||
},
|
||||
["<Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item()
|
||||
elseif vim.fn["vsnip#available"](1) == 1 then
|
||||
feedkey("<Plug>(vsnip-expand-or-jump)", "")
|
||||
elseif has_words_before() then
|
||||
cmp.complete()
|
||||
else
|
||||
fallback() -- The fallback function sends a already mapped key. In this case, it's probably `<Tab>`.
|
||||
end
|
||||
end, {"i", "s"}),
|
||||
["<S-Tab>"] = cmp.mapping(function()
|
||||
if cmp.visible() then
|
||||
cmp.select_prev_item()
|
||||
elseif vim.fn["vsnip#jumpable"](-1) == 1 then
|
||||
feedkey("<Plug>(vsnip-jump-prev)", "")
|
||||
end
|
||||
end, {"i", "s"})
|
||||
},
|
||||
sources = {
|
||||
{name = "nvim_lsp"}, {name = "buffer", keyword_length = 5},
|
||||
{name = "vsnip"}, {name = "calc"}, {name = "emoji"}, {name = "spell"},
|
||||
{name = "path"}
|
||||
}
|
||||
})
|
||||
|
||||
-- Use buffer source for `/`.
|
||||
cmp.setup.cmdline("/", {sources = {{name = "buffer"}}})
|
||||
|
||||
-- Use cmdline & path source for ':'.
|
||||
cmp.setup.cmdline(":", {
|
||||
sources = cmp.config.sources({{name = "path"}}, {{name = "cmdline"}})
|
||||
})
|
||||
@@ -1,15 +0,0 @@
|
||||
require'colorizer'.setup()
|
||||
local status_ok, colorizer = pcall(require, "colorizer")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
colorizer.setup({ "*" }, {
|
||||
RGB = true, -- #RGB hex codes
|
||||
RRGGBB = true, -- #RRGGBB hex codes
|
||||
RRGGBBAA = true, -- #RRGGBBAA hex codes
|
||||
rgb_fn = true, -- CSS rgb() and rgba() functions
|
||||
hsl_fn = true, -- CSS hsl() and hsla() functions
|
||||
css = true, -- Enable all CSS features: rgb_fn, hsl_fn, names, RGB, RRGGBB
|
||||
css_fn = true, -- Enable all CSS *functions*: rgb_fn, hsl_fn
|
||||
namess = true, -- "Name" codes like Blue
|
||||
})
|
||||
@@ -1,37 +0,0 @@
|
||||
local cb = require'diffview.config'.diffview_callback
|
||||
|
||||
require'diffview'.setup {
|
||||
diff_binaries = false, -- Show diffs for binaries
|
||||
use_icons = true, -- Requires nvim-web-devicons
|
||||
file_panel = {
|
||||
width = 35,
|
||||
},
|
||||
key_bindings = {
|
||||
disable_defaults = false, -- Disable the default key bindings
|
||||
-- The `view` bindings are active in the diff buffers, only when the current
|
||||
-- tabpage is a Diffview.
|
||||
view = {
|
||||
["<tab>"] = cb("select_next_entry"), -- Open the diff for the next file
|
||||
["<s-tab>"] = cb("select_prev_entry"), -- Open the diff for the previous file
|
||||
["<leader>e"] = cb("focus_files"), -- Bring focus to the files panel
|
||||
["<leader>b"] = cb("toggle_files"), -- Toggle the files panel.
|
||||
},
|
||||
file_panel = {
|
||||
["j"] = cb("next_entry"), -- Bring the cursor to the next file entry
|
||||
["<down>"] = cb("next_entry"),
|
||||
["k"] = cb("prev_entry"), -- Bring the cursor to the previous file entry.
|
||||
["<up>"] = cb("prev_entry"),
|
||||
["<cr>"] = cb("select_entry"), -- Open the diff for the selected entry.
|
||||
["o"] = cb("select_entry"),
|
||||
["<2-LeftMouse>"] = cb("select_entry"),
|
||||
["-"] = cb("toggle_stage_entry"), -- Stage / unstage the selected entry.
|
||||
["S"] = cb("stage_all"), -- Stage all entries.
|
||||
["U"] = cb("unstage_all"), -- Unstage all entries.
|
||||
["R"] = cb("refresh_files"), -- Update stats and entries in the file list.
|
||||
["<tab>"] = cb("select_next_entry"),
|
||||
["<s-tab>"] = cb("select_prev_entry"),
|
||||
["<leader>e"] = cb("focus_files"),
|
||||
["<leader>b"] = cb("toggle_files"),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
local lsp_installer = require("nvim-lsp-installer")
|
||||
|
||||
-- Register a handler that will be called for all installed servers.
|
||||
-- Alternatively, you may also register handlers on specific server instances instead (see example below).
|
||||
lsp_installer.on_server_ready(function(server)
|
||||
local opts = {}
|
||||
|
||||
-- (optional) Customize the options passed to the server
|
||||
-- if server.name == "tsserver" then
|
||||
-- opts.root_dir = function() ... end
|
||||
-- end
|
||||
|
||||
-- This setup() function is exactly the same as lspconfig's setup function.
|
||||
-- Refer to https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md
|
||||
server:setup(opts)
|
||||
end)
|
||||
@@ -1,150 +0,0 @@
|
||||
require("mason").setup()
|
||||
require("mason-lspconfig").setup()
|
||||
local nvim_lsp = require("lspconfig")
|
||||
|
||||
-- Use an on_attach function to only map the following keys
|
||||
-- after the language server attaches to the current buffer
|
||||
local on_attach = function(bufnr)
|
||||
local function buf_set_keymap(...)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, ...)
|
||||
end
|
||||
|
||||
-- Mappings.
|
||||
local opts = {noremap = true, silent = true}
|
||||
|
||||
-- See `:help vim.lsp.*` for documentation on any of the below functions
|
||||
buf_set_keymap("n", "gD", "<Cmd>lua vim.lsp.buf.declaration()<CR>", opts)
|
||||
buf_set_keymap("n", "gd", "<Cmd>lua vim.lsp.buf.definition()<CR>", opts)
|
||||
buf_set_keymap("n", "K", "<Cmd>lua vim.lsp.buf.hover()<CR>", opts)
|
||||
buf_set_keymap("n", "gi", "<cmd>lua vim.lsp.buf.implementation()<CR>", opts)
|
||||
buf_set_keymap("n", "gT", vim.lsp.buf.type_definition, opts)
|
||||
-- buf_set_keymap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
|
||||
buf_set_keymap("n", "<space>wa",
|
||||
"<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>", opts)
|
||||
buf_set_keymap("n", "<space>wr",
|
||||
"<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>", opts)
|
||||
buf_set_keymap("n", "<space>wl",
|
||||
"<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>",
|
||||
opts)
|
||||
buf_set_keymap("n", "<space>D",
|
||||
"<cmd>lua vim.lsp.buf.type_definition()<CR>", opts)
|
||||
buf_set_keymap("n", "<space>rn", "<cmd>lua vim.lsp.buf.rename()<CR>", opts)
|
||||
buf_set_keymap("n", "<space>ca", "<cmd>lua vim.lsp.buf.code_action()<CR>",
|
||||
opts)
|
||||
buf_set_keymap("n", "gr", "<cmd>lua vim.lsp.buf.references()<CR>", opts)
|
||||
buf_set_keymap("n", "<space>e", "<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>", opts)
|
||||
buf_set_keymap("n", "[d", "<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>", opts)
|
||||
|
||||
buf_set_keymap("n", "]d", "<cmd>lua vim.lsp.diagnostic.goto_next()<CR>", opts)
|
||||
buf_set_keymap("n", "<space>q", "<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>", opts)
|
||||
buf_set_keymap("n", "<space>f", "<cmd>lua vim.lsp.buf.formatting()<CR>", opts)
|
||||
|
||||
end
|
||||
|
||||
-- Use a loop to conveniently call 'setup' on multiple servers and
|
||||
-- map buffer local keybindings when the language server attaches
|
||||
--local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||
capabilities = require("cmp_nvim_lsp").default_capabilities()
|
||||
|
||||
local servers = {
|
||||
"gopls", "bashls", "jedi_language_server", "dockerls", "terraformls",
|
||||
"tsserver", "texlab", "yamlls", "jsonls", "clangd", "sourcekit"
|
||||
}
|
||||
for _, lsp in ipairs(servers) do
|
||||
nvim_lsp[lsp].setup {
|
||||
on_attach = on_attach,
|
||||
capabilities = capabilities,
|
||||
settings = {
|
||||
gopls = {analyses = {unusedparams = false}, staticcheck = true},
|
||||
json = {
|
||||
format = {enabled = false},
|
||||
schemas = {
|
||||
{
|
||||
description = "ESLint config",
|
||||
fileMatch = {".eslintrc.json", ".eslintrc"},
|
||||
url = "http://json.schemastore.org/eslintrc"
|
||||
}, {
|
||||
description = "Package config",
|
||||
fileMatch = {"package.json"},
|
||||
url = "https://json.schemastore.org/package"
|
||||
}, {
|
||||
description = "Packer config",
|
||||
fileMatch = {"packer.json"},
|
||||
url = "https://json.schemastore.org/packer"
|
||||
}, {
|
||||
description = "Renovate config",
|
||||
fileMatch = {
|
||||
"renovate.json", "renovate.json5",
|
||||
".github/renovate.json", ".github/renovate.json5",
|
||||
".renovaterc", ".renovaterc.json"
|
||||
},
|
||||
url = "https://docs.renovatebot.com/renovate-schema"
|
||||
}, {
|
||||
description = "OpenApi config",
|
||||
fileMatch = {"*api*.json"},
|
||||
url = "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.1/schema.json"
|
||||
}
|
||||
}
|
||||
},
|
||||
redhat = {telemetry = {enabled = false}},
|
||||
texlab = {
|
||||
auxDirectory = ".",
|
||||
bibtexFormatter = "texlab",
|
||||
build = {
|
||||
args = {
|
||||
"--keep-intermediates", "--keep-logs", "--synctex", "%f"
|
||||
},
|
||||
executable = "tectonic",
|
||||
forwardSearchAfter = false,
|
||||
onSave = false
|
||||
},
|
||||
chktex = {onEdit = false, onOpenAndSave = false},
|
||||
diagnosticsDelay = 300,
|
||||
formatterLineLength = 80,
|
||||
forwardSearch = {args = {}},
|
||||
latexFormatter = "latexindent",
|
||||
latexindent = {modifyLineBreaks = false}
|
||||
},
|
||||
yaml = {
|
||||
schemaStore = {
|
||||
enable = true,
|
||||
url = "https://www.schemastore.org/api/json/catalog.json"
|
||||
},
|
||||
schemas = {
|
||||
kubernetes = "/*.yaml",
|
||||
["http://json.schemastore.org/github-workflow"] = ".github/workflows/*.{yml,yaml}",
|
||||
["http://json.schemastore.org/github-action"] = ".github/action.{yml,yaml}",
|
||||
["http://json.schemastore.org/ansible-stable-2.9"] = "roles/tasks/*.{yml,yaml}",
|
||||
["http://json.schemastore.org/prettierrc"] = ".prettierrc.{yml,yaml}",
|
||||
["http://json.schemastore.org/kustomization"] = "kustomization.{yml,yaml}",
|
||||
["http://json.schemastore.org/ansible-playbook"] = "*play*.{yml,yaml}",
|
||||
["http://json.schemastore.org/chart"] = "Chart.{yml,yaml}",
|
||||
["https://json.schemastore.org/dependabot-v2"] = ".github/dependabot.{yml,yaml}",
|
||||
["https://json.schemastore.org/gitlab-ci"] = "*gitlab-ci*.{yml,yaml}",
|
||||
["https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.1/schema.json"] = "*api*.{yml,yaml}",
|
||||
["https://raw.githubusercontent.com/compose-spec/compose-spec/master/schema/compose-spec.json"] = "docker-compose.{yml,yaml}",
|
||||
["https://raw.githubusercontent.com/argoproj/argo-workflows/master/api/jsonschema/schema.json"] = "*flow*.{yml,yaml}"
|
||||
},
|
||||
format = {enabled = false},
|
||||
validate = false, -- TODO: conflicts between Kubernetes resources and kustomization.yaml
|
||||
completion = true,
|
||||
hover = true
|
||||
}
|
||||
},
|
||||
flags = {debounce_text_changes = 150}
|
||||
}
|
||||
require"lsp_signature".setup({
|
||||
bind = true, -- This is mandatory, otherwise border config won't get registered.
|
||||
floating_window = true, -- show hint in a floating window, set to false for virtual text only mode
|
||||
doc_lines = 2, -- Set to 0 for not showing doc
|
||||
hint_prefix = "🐼 ",
|
||||
-- use_lspsaga = false, -- set to true if you want to use lspsaga popup
|
||||
handler_opts = {
|
||||
border = "shadow" -- double, single, shadow, none
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
-- Test source-kit
|
||||
require'lspconfig'.sourcekit.setup{}
|
||||
|
||||
@@ -1,114 +0,0 @@
|
||||
local colors = {
|
||||
red = '#ca1243',
|
||||
grey = '#a0a1a7',
|
||||
black = '#383a42',
|
||||
white = '#f3f3f3',
|
||||
light_green = '#83a598',
|
||||
orange = '#fe8019',
|
||||
green = '#8ec07c',
|
||||
}
|
||||
|
||||
local empty = require('lualine.component'):extend()
|
||||
function empty:draw(default_highlight)
|
||||
self.status = ''
|
||||
self.applied_separator = ''
|
||||
self:apply_highlights(default_highlight)
|
||||
self:apply_section_separators()
|
||||
return self.status
|
||||
end
|
||||
|
||||
-- Put proper separators and gaps between components in sections
|
||||
local function process_sections(sections)
|
||||
for name, section in pairs(sections) do
|
||||
local left = name:sub(9, 10) < 'x'
|
||||
for pos = 1, name ~= 'lualine_z' and #section or #section - 1 do
|
||||
table.insert(section, pos * 2, { empty, color = { fg = colors.white, bg = colors.white } })
|
||||
end
|
||||
for id, comp in ipairs(section) do
|
||||
if type(comp) ~= 'table' then
|
||||
comp = { comp }
|
||||
section[id] = comp
|
||||
end
|
||||
comp.separator = left and { right = '' } or { left = '' }
|
||||
end
|
||||
end
|
||||
return sections
|
||||
end
|
||||
|
||||
local function search_result()
|
||||
if vim.v.hlsearch == 0 then
|
||||
return ''
|
||||
end
|
||||
local last_search = vim.fn.getreg '/'
|
||||
if not last_search or last_search == '' then
|
||||
return ''
|
||||
end
|
||||
local searchcount = vim.fn.searchcount { maxcount = 9999 }
|
||||
return last_search .. '(' .. searchcount.current .. '/' .. searchcount.total .. ')'
|
||||
end
|
||||
|
||||
local function modified()
|
||||
if vim.bo.modified then
|
||||
return '+'
|
||||
elseif vim.bo.modifiable == false or vim.bo.readonly == true then
|
||||
return '-'
|
||||
end
|
||||
return ''
|
||||
end
|
||||
|
||||
require('lualine').setup {
|
||||
options = {
|
||||
theme = 'auto',
|
||||
component_separators = '',
|
||||
section_separators = { left = '', right = '' },
|
||||
},
|
||||
sections = process_sections {
|
||||
lualine_a = { 'mode' },
|
||||
lualine_b = {
|
||||
'branch',
|
||||
'diff',
|
||||
{
|
||||
'diagnostics',
|
||||
source = { 'nvim' },
|
||||
sections = { 'error' },
|
||||
diagnostics_color = { error = { bg = colors.red, fg = colors.white } },
|
||||
},
|
||||
{
|
||||
'diagnostics',
|
||||
source = { 'nvim' },
|
||||
sections = { 'warn' },
|
||||
diagnostics_color = { warn = { bg = colors.orange, fg = colors.white } },
|
||||
},
|
||||
{ 'filename', file_status = false, path = 1 },
|
||||
{ modified, color = { bg = colors.red } },
|
||||
{
|
||||
'%w',
|
||||
cond = function()
|
||||
return vim.wo.previewwindow
|
||||
end,
|
||||
},
|
||||
{
|
||||
'%r',
|
||||
cond = function()
|
||||
return vim.bo.readonly
|
||||
end,
|
||||
},
|
||||
{
|
||||
'%q',
|
||||
cond = function()
|
||||
return vim.bo.buftype == 'quickfix'
|
||||
end,
|
||||
},
|
||||
},
|
||||
lualine_c = {},
|
||||
lualine_x = {},
|
||||
lualine_y = { search_result, 'filetype' },
|
||||
lualine_z = { '%l:%c', '%p%%/%L' },
|
||||
},
|
||||
inactive_sections = {
|
||||
lualine_c = { '%f %y %m' },
|
||||
lualine_x = {},
|
||||
},
|
||||
tabline = {},
|
||||
extensions = {"nvim-tree"}
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
local neogit = require('neogit')
|
||||
--neogit.config.use_magit_keybindings()
|
||||
|
||||
neogit.setup {
|
||||
disable_signs = false,
|
||||
disable_context_highlighting = false,
|
||||
disable_commit_confirmation = true,
|
||||
-- customize displayed signs
|
||||
signs = {
|
||||
-- { CLOSED, OPENED }
|
||||
section = { ">", "v" },
|
||||
item = { ">", "v" },
|
||||
hunk = { "", "" },
|
||||
},
|
||||
integrations = {
|
||||
diffview = true
|
||||
},
|
||||
-- override/add mappings
|
||||
mappings = {
|
||||
-- modify status buffer mappings
|
||||
status = {
|
||||
-- Adds a mapping with "B" as key that does the "BranchPopup" command
|
||||
["B"] = "BranchPopup",
|
||||
["C"] = "CommitPopup",
|
||||
-- ["P"] = "PullPopup",
|
||||
["S"] = "Stage",
|
||||
-- ["D"] = "Discard",
|
||||
-- Removes the default mapping of "s"
|
||||
-- ["s"] = "",
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
local nightfox = require('nightfox')
|
||||
|
||||
-- This function set the configuration of nightfox. If a value is not passed in the setup function
|
||||
-- it will be taken from the default configuration above
|
||||
nightfox.setup({
|
||||
fox = "terafox", -- change the colorscheme to use terafox
|
||||
styles = {
|
||||
comments = "italic", -- change style of comments to be italic
|
||||
keywords = "bold", -- change style of keywords to be bold
|
||||
functions = "italic,bold" -- styles can be a comma separated list
|
||||
},
|
||||
inverse = {
|
||||
match_paren = true, -- inverse the highlighting of match_parens
|
||||
},
|
||||
colors = {
|
||||
red = "#FF000", -- Override the red color for MAX POWER
|
||||
--bg_alt = "#000000",
|
||||
},
|
||||
hlgroups = {
|
||||
TSPunctDelimiter = { fg = "${red}" }, -- Override a highlight group with the color red
|
||||
LspCodeLens = { bg = "#000000", style = "italic" },
|
||||
}
|
||||
})
|
||||
|
||||
-- Load the configuration set above and apply the colorscheme
|
||||
nightfox.load()
|
||||
vim.cmd("colorscheme terafox")
|
||||
@@ -1,162 +0,0 @@
|
||||
local g = vim.g
|
||||
|
||||
g.nvim_tree_indent_markers = 1 -- 0 by default, this option shows indent markers when folders are open
|
||||
g.nvim_tree_git_hl = 1 -- 0 by default, will enable file highlight for git attributes (can be used without the icons).
|
||||
g.nvim_tree_highlight_opened_files = 1 -- 0 by default, will enable folder and file icon highlight for opened files/directories.
|
||||
g.nvim_tree_root_folder_modifier = ":~" -- This is the default. See :help filename-modifiers for more options
|
||||
g.nvim_tree_add_trailing = 1 -- 0 by default, append a trailing slash to folder names
|
||||
g.nvim_tree_group_empty = 1 -- 0 by default, compact folders that only contain a single folder into one node in the file tree
|
||||
g.nvim_tree_disable_window_picker = 1 -- 0 by default, will disable the window picker.
|
||||
g.nvim_tree_icon_padding = " " -- one space by default, used for rendering the space between the icon and the filename. Use with caution, it could break rendering if you set an empty string depending on your font.
|
||||
g.nvim_tree_symlink_arrow = " >> " -- defaults to ' ➛ '. used as a separator between symlinks' source and target.
|
||||
g.nvim_tree_respect_buf_cwd = 1 -- 0 by default, will change cwd of nvim-tree to that of new buffer's when opening nvim-tree.
|
||||
|
||||
g.nvim_tree_show_icons = {git = 1, folders = 1, files = 1, folder_arrows = 1}
|
||||
g.nvim_tree_icons = {
|
||||
default = "",
|
||||
symlink = "",
|
||||
git = {
|
||||
unstaged = "",
|
||||
staged = "S",
|
||||
unmerged = "",
|
||||
renamed = "➜",
|
||||
deleted = "",
|
||||
untracked = "U",
|
||||
ignored = "◌"
|
||||
},
|
||||
folder = {
|
||||
default = "",
|
||||
open = "",
|
||||
empty = "",
|
||||
empty_open = "",
|
||||
symlink = ""
|
||||
}
|
||||
}
|
||||
g.loaded_netrw = 1
|
||||
g.loaded_netrwPlugin = 1
|
||||
local tree_cb = require"nvim-tree.config".nvim_tree_callback
|
||||
|
||||
-- This function has been generated from your
|
||||
-- view.mappings.list
|
||||
-- view.mappings.custom_only
|
||||
-- remove_keymaps
|
||||
--
|
||||
-- You should add this function to your configuration and set on_attach = on_attach in the nvim-tree setup call.
|
||||
--
|
||||
-- Although care was taken to ensure correctness and completeness, your review is required.
|
||||
--
|
||||
-- Please check for the following issues in auto generated content:
|
||||
-- "Mappings removed" is as you expect
|
||||
-- "Mappings migrated" are correct
|
||||
--
|
||||
-- Please see https://github.com/nvim-tree/nvim-tree.lua/wiki/Migrating-To-on_attach for assistance in migrating.
|
||||
--
|
||||
|
||||
local function on_attach(bufnr)
|
||||
local api = require('nvim-tree.api')
|
||||
|
||||
local function opts(desc)
|
||||
return { desc = 'nvim-tree: ' .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true }
|
||||
end
|
||||
|
||||
|
||||
-- Default mappings not inserted as:
|
||||
-- remove_keymaps = true
|
||||
-- OR
|
||||
-- view.mappings.custom_only = true
|
||||
|
||||
|
||||
-- Mappings migrated from view.mappings.list
|
||||
--
|
||||
-- You will need to insert "your code goes here" for any mappings with a custom action_cb
|
||||
vim.keymap.set('n', '<CR>', api.node.open.edit, opts('Open'))
|
||||
vim.keymap.set('n', 'o', api.node.open.edit, opts('Open'))
|
||||
vim.keymap.set('n', '<2-LeftMouse>', api.node.open.edit, opts('Open'))
|
||||
vim.keymap.set('n', '<2-RightMouse>', api.tree.change_root_to_node, opts('CD'))
|
||||
vim.keymap.set('n', '<C-]>', api.tree.change_root_to_node, opts('CD'))
|
||||
vim.keymap.set('n', '<C-v>', api.node.open.vertical, opts('Open: Vertical Split'))
|
||||
vim.keymap.set('n', '<C-s>', api.node.open.horizontal, opts('Open: Horizontal Split'))
|
||||
vim.keymap.set('n', '<C-t>', api.node.open.tab, opts('Open: New Tab'))
|
||||
vim.keymap.set('n', '<', api.node.navigate.sibling.prev, opts('Previous Sibling'))
|
||||
vim.keymap.set('n', '>', api.node.navigate.sibling.next, opts('Next Sibling'))
|
||||
vim.keymap.set('n', 'P', api.node.navigate.parent, opts('Parent Directory'))
|
||||
vim.keymap.set('n', '<BS>', api.node.navigate.parent_close, opts('Close Directory'))
|
||||
vim.keymap.set('n', '<S-CR>', api.node.navigate.parent_close, opts('Close Directory'))
|
||||
vim.keymap.set('n', '<Tab>', api.node.open.preview, opts('Open Preview'))
|
||||
vim.keymap.set('n', 'K', api.node.navigate.sibling.first, opts('First Sibling'))
|
||||
vim.keymap.set('n', 'J', api.node.navigate.sibling.last, opts('Last Sibling'))
|
||||
vim.keymap.set('n', 'H', api.tree.toggle_hidden_filter, opts('Toggle Dotfiles'))
|
||||
vim.keymap.set('n', 'R', api.tree.reload, opts('Refresh'))
|
||||
vim.keymap.set('n', 'a', api.fs.create, opts('Create'))
|
||||
vim.keymap.set('n', 'd', api.fs.remove, opts('Delete'))
|
||||
vim.keymap.set('n', 'r', api.fs.rename, opts('Rename'))
|
||||
vim.keymap.set('n', '<C-r>', api.fs.rename_sub, opts('Rename: Omit Filename'))
|
||||
vim.keymap.set('n', 'x', api.fs.cut, opts('Cut'))
|
||||
vim.keymap.set('n', 'c', api.fs.copy.node, opts('Copy'))
|
||||
vim.keymap.set('n', 'p', api.fs.paste, opts('Paste'))
|
||||
vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name'))
|
||||
vim.keymap.set('n', 'Y', api.fs.copy.relative_path, opts('Copy Relative Path'))
|
||||
vim.keymap.set('n', 'gy', api.fs.copy.absolute_path, opts('Copy Absolute Path'))
|
||||
vim.keymap.set('n', '[c', api.node.navigate.git.prev, opts('Prev Git'))
|
||||
vim.keymap.set('n', ']c', api.node.navigate.git.next, opts('Next Git'))
|
||||
vim.keymap.set('n', '-', api.tree.change_root_to_parent, opts('Up'))
|
||||
vim.keymap.set('n', 's', api.node.run.system, opts('Run System'))
|
||||
vim.keymap.set('n', 'q', api.tree.close, opts('Close'))
|
||||
vim.keymap.set('n', 'g?', api.tree.toggle_help, opts('Help'))
|
||||
end
|
||||
|
||||
require("nvim-tree").setup {
|
||||
-- disables netrw completely
|
||||
disable_netrw = true,
|
||||
-- hijack netrw window on startup
|
||||
hijack_netrw = true,
|
||||
-- closes neovim automatically when the tree is the last **WINDOW** in the view
|
||||
--auto_close = true,
|
||||
-- opens the tree when changing/opening a new tab if the tree wasn't previously opened
|
||||
open_on_tab = true,
|
||||
-- hijack the cursor in the tree to put it at the start of the filename
|
||||
hijack_cursor = true,
|
||||
-- updates the root directory of the tree on `DirChanged` (when your run `:cd` usually)
|
||||
update_cwd = true,
|
||||
-- this option hides files and folders starting with a dot `.`
|
||||
--hide_dotfiles = true,
|
||||
-- show lsp diagnostics in the signcolumn
|
||||
diagnostics = {
|
||||
enable = true,
|
||||
icons = {hint = "", info = "", warning = "", error = ""}
|
||||
},
|
||||
git = {ignore = true},
|
||||
-- update the focused file on `BufEnter`, un-collapses the folders recursively until it finds the file
|
||||
update_focused_file = {
|
||||
-- enables the feature
|
||||
enable = true,
|
||||
-- update the root directory of the tree to the one of the folder containing the file if the file is not under the current root directory
|
||||
-- only relevant when `update_focused_file.enable` is true
|
||||
update_cwd = true,
|
||||
-- list of buffer names / filetypes that will not update the cwd if the file isn't found under the current root directory
|
||||
-- only relevant when `update_focused_file.update_cwd` is true and `update_focused_file.enable` is true
|
||||
ignore_list = {".git", "node_modules", ".cache"}
|
||||
},
|
||||
-- configuration options for the system open command (`s` in the tree by default)
|
||||
system_open = {
|
||||
-- the command to run this, leaving nil should work in most cases
|
||||
cmd = nil,
|
||||
-- the command arguments as a list
|
||||
args = {}
|
||||
},
|
||||
|
||||
trash = {cmd = "trash-put"},
|
||||
|
||||
view = {
|
||||
-- show line numbers in tree disabled
|
||||
number = false,
|
||||
relativenumber = false,
|
||||
-- width of the window, can be either a number (columns) or a string in `%`
|
||||
width = 30,
|
||||
-- side of the tree, can be one of 'left' | 'right' | 'top' | 'bottom'
|
||||
side = "left",
|
||||
-- if true the tree will resize itself after opening a file
|
||||
--auto_resize = true,
|
||||
},
|
||||
on_attach = on_attach
|
||||
}
|
||||
@@ -1,66 +0,0 @@
|
||||
local actions = require('telescope.actions')
|
||||
local telescope = require('telescope')
|
||||
|
||||
--telescope.load_extension('projects')
|
||||
telescope.load_extension('fzf')
|
||||
|
||||
telescope.setup{
|
||||
defaults = {
|
||||
file_ignore_patterns = {"node_modules", "%.jpg", "%.png"},
|
||||
vimgrep_arguments = {
|
||||
'rg',
|
||||
'--follow',
|
||||
'--color=never',
|
||||
'--no-heading',
|
||||
'--with-filename',
|
||||
'--line-number',
|
||||
'--column',
|
||||
'--smart-case'
|
||||
},
|
||||
mappings = {
|
||||
i = {
|
||||
-- Close on first esc instead of gonig to normal mode
|
||||
["<esc>"] = actions.close,
|
||||
["<A-q>"] = actions.send_selected_to_qflist,
|
||||
["<C-q>"] = actions.send_to_qflist,
|
||||
["<s-tab>"] = actions.toggle_selection + actions.move_selection_next,
|
||||
["<tab>"] = actions.toggle_selection + actions.move_selection_previous,
|
||||
},
|
||||
n = {
|
||||
["<s-tab>"] = actions.toggle_selection + actions.move_selection_next,
|
||||
["<tab>"] = actions.toggle_selection + actions.move_selection_previous,
|
||||
["<A-q>"] = actions.send_selected_to_qflist,
|
||||
["<C-q>"] = actions.send_to_qflist,
|
||||
},
|
||||
},
|
||||
prompt_prefix = " ",
|
||||
selection_caret = " ",
|
||||
entry_prefix = " ",
|
||||
initial_mode = "insert",
|
||||
selection_strategy = "reset",
|
||||
sorting_strategy = "descending",
|
||||
layout_strategy = "flex",
|
||||
layout_config = {
|
||||
width = 0.75,
|
||||
prompt_position = "bottom",
|
||||
preview_cutoff = 120,
|
||||
horizontal = { mirror = false },
|
||||
vertical = { mirror = true },
|
||||
},
|
||||
file_sorter = require'telescope.sorters'.get_fuzzy_file,
|
||||
generic_sorter = require'telescope.sorters'.get_generic_fuzzy_sorter,
|
||||
-- path_display = true, -- strange behaviour not showing the files in result window
|
||||
winblend = 0,
|
||||
border = {},
|
||||
borderchars = { '─', '│', '─', '│', '╭', '╮', '╯', '╰' },
|
||||
color_devicons = true,
|
||||
use_less = true,
|
||||
set_env = { ['COLORTERM'] = 'truecolor' }, -- default = nil,
|
||||
file_previewer = require'telescope.previewers'.vim_buffer_cat.new,
|
||||
grep_previewer = require'telescope.previewers'.vim_buffer_vimgrep.new,
|
||||
qflist_previewer = require'telescope.previewers'.vim_buffer_qflist.new,
|
||||
|
||||
-- Developer configurations: Not meant for general override
|
||||
buffer_previewer_maker = require'telescope.previewers'.buffer_previewer_maker
|
||||
}
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
require"nvim-treesitter.configs".setup {
|
||||
ensure_installed = {
|
||||
"bash", "cmake", "dockerfile", "go", "hcl", "html", "java",
|
||||
"javascript", "json", "latex", "ledger", "lua", "python", "toml", "yaml"
|
||||
}, -- one of "all", "maintained" (parsers with maintainers), or a list of languages
|
||||
ignore_install = {}, -- List of parsers to ignore installing
|
||||
highlight = {
|
||||
enable = true, -- false will disable the whole extension
|
||||
disable = {} -- list of language that will be disabled
|
||||
},
|
||||
incremental_selection = {
|
||||
enable = true,
|
||||
keymaps = {
|
||||
init_selection = "<CR>",
|
||||
scope_incremental = "<CR>",
|
||||
node_incremental = "<TAB>",
|
||||
node_decremental = "<S-TAB>"
|
||||
}
|
||||
},
|
||||
indent = {enable = true},
|
||||
autopairs = {{enable = true}},
|
||||
textobjects = {
|
||||
select = {
|
||||
enable = true,
|
||||
-- Automatically jump forward to textobj, similar to targets.vim
|
||||
lookahead = true,
|
||||
keymaps = {
|
||||
-- You can use the capture groups defined in textobjects.scm
|
||||
["af"] = "@function.outer",
|
||||
["if"] = "@function.inner",
|
||||
["ac"] = "@class.outer",
|
||||
["ic"] = "@class.inner",
|
||||
["al"] = "@loop.outer",
|
||||
["il"] = "@loop.inner",
|
||||
["ib"] = "@block.inner",
|
||||
["ab"] = "@block.outer",
|
||||
["ir"] = "@parameter.inner",
|
||||
["ar"] = "@parameter.outer"
|
||||
}
|
||||
}
|
||||
},
|
||||
rainbow = {
|
||||
enable = true,
|
||||
extended_mode = true, -- Highlight also non-parentheses delimiters, boolean or table: lang -> boolean
|
||||
max_file_lines = 2000 -- Do not enable for files with more than specified lines
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
local g = vim.g
|
||||
g.vsnip_snippet_dir = os.getenv('HOME') .. '/.config/nvim/snippets/'
|
||||
@@ -1,111 +0,0 @@
|
||||
--isable v
|
||||
-- local presets = require("which-key.plugins.presets")
|
||||
-- presets.operators["v"] = nil
|
||||
require("which-key").setup {
|
||||
plugins = {
|
||||
marks = true, -- shows a list of your marks on ' and `
|
||||
registers = true, -- shows your registers on " in NORMAL or <C-r> in INSERT mode
|
||||
spelling = {
|
||||
enabled = true, -- enabling this will show WhichKey when pressing z= to select spelling suggestions
|
||||
suggestions = 20 -- how many suggestions should be shown in the list?
|
||||
},
|
||||
-- the presets plugin, adds help for a bunch of default keybindings in Neovim
|
||||
-- No actual key bindings are created
|
||||
presets = {
|
||||
operators = true, -- adds help for operators like d, y, ... and registers them for motion / text object completion
|
||||
motions = true, -- adds help for motions
|
||||
text_objects = true, -- help for text objects triggered after entering an operator
|
||||
windows = true, -- default bindings on <c-w>
|
||||
nav = true, -- misc bindings to work with windows
|
||||
z = true, -- bindings for folds, spelling and others prefixed with z
|
||||
g = true -- bindings for prefixed with g
|
||||
}
|
||||
},
|
||||
-- add operators that will trigger motion and text object completion
|
||||
-- to enable all native operators, set the preset / operators plugin above
|
||||
operators = {gc = "Comments"},
|
||||
key_labels = {
|
||||
-- override the label used to display some keys. It doesn't effect WK in any other way.
|
||||
-- For example:
|
||||
-- ["<space>"] = "SPC",
|
||||
-- ["<cr>"] = "RET",
|
||||
-- ["<tab>"] = "TAB",
|
||||
},
|
||||
icons = {
|
||||
breadcrumb = "»", -- symbol used in the command line area that shows your active key combo
|
||||
separator = "➜", -- symbol used between a key and it's label
|
||||
group = "+" -- symbol prepended to a group
|
||||
},
|
||||
window = {
|
||||
border = "none", -- none, single, double, shadow
|
||||
position = "bottom", -- bottom, top
|
||||
margin = {1, 0, 1, 0}, -- extra window margin [top, right, bottom, left]
|
||||
padding = {2, 2, 2, 2} -- extra window padding [top, right, bottom, left]
|
||||
},
|
||||
layout = {
|
||||
height = {min = 4, max = 25}, -- min and max height of the columns
|
||||
width = {min = 20, max = 50}, -- min and max width of the columns
|
||||
spacing = 3, -- spacing between columns
|
||||
align = "left" -- align columns left, center or right
|
||||
},
|
||||
ignore_missing = false, -- enable this to hide mappings for which you didn't specify a label
|
||||
hidden = {
|
||||
"<silent>", "<cmd>", "<Cmd>", "<cr>", "<CR>", "call", "lua", "require",
|
||||
"^:", "^ "
|
||||
}, -- hide mapping boilerplate
|
||||
show_help = true, -- show help message on the command line when the popup is visible
|
||||
triggers = "auto", -- automatically setup triggers
|
||||
-- triggers = {"<leader>"} -- or specify a list manually
|
||||
triggers_blacklist = {
|
||||
-- list of mode / prefixes that should never be hooked by WhichKey
|
||||
-- this is mostly relevant for key maps that start with a native binding
|
||||
-- most people should not need to change this
|
||||
i = {"j", "k"},
|
||||
v = {"j", "k"}
|
||||
}
|
||||
|
||||
}
|
||||
local wk = require("which-key")
|
||||
default_options = {noremap = true, silent = true}
|
||||
|
||||
-- register non leader based mappings
|
||||
--wk.register({ga = {"<Plug>(EasyAlign)", "Align", mode = "x"}})
|
||||
|
||||
-- Register all leader based mappings
|
||||
local wk = require("which-key")
|
||||
-- As an example, we will create the following mappings:
|
||||
-- * <leader>ff find files
|
||||
-- * <leader>fr show recent files
|
||||
-- * <leader>fb Foobar
|
||||
-- we'll document:
|
||||
-- * <leader>fn new file
|
||||
-- * <leader>fe edit file
|
||||
-- and hide <leader>1
|
||||
wk.register({
|
||||
["<leader>"] = {
|
||||
b = {
|
||||
name = "Buffers",
|
||||
b = {
|
||||
"<cmd>lua require'telescope.builtin'.buffers({ sort_mru = true, ignore_current_buffer = true })<cr>",
|
||||
"Find buffer"
|
||||
}
|
||||
},
|
||||
g = {
|
||||
name = "Git",
|
||||
c = { "<cmd>Neogit Commit<cr>", "Git Commit" },
|
||||
g = { "<cmd>Neogit<cr>", "Open NeoGit" },
|
||||
p = { "<cmd> Neogit Push<cr>" }
|
||||
},
|
||||
f = {
|
||||
name = "File",
|
||||
f = { "<cmd>Telescope find_files<cr>", "Find File" },
|
||||
r = { "<cmd>Telescope oldfiles<cr>", "Open Recent File" },
|
||||
n = { "<cmd>enew<cr>", "New File" },
|
||||
},
|
||||
},
|
||||
s = {
|
||||
name = "Search",
|
||||
c = {"<cmd>Telescope colorscheme<cr>", "Colorscheme" }
|
||||
}
|
||||
|
||||
})
|
||||
@@ -1,35 +0,0 @@
|
||||
local keymap = vim.api.nvim_set_keymap
|
||||
local default_options = {noremap = true, silent = true}
|
||||
-- local expr_options = {noremap = true, expr = true, silent = true}
|
||||
|
||||
-- map the leader key
|
||||
keymap('n', '<Space>', '<NOP>', default_options)
|
||||
vim.g.mapleader = " "
|
||||
|
||||
-- easier escape key mapping
|
||||
keymap('i', 'jk', '<ESC>', default_options)
|
||||
|
||||
keymap('n', '<c-s>', ':w<CR>', default_options)
|
||||
keymap('i', '<c-s>', '<ESC>:w<CR>a', default_options)
|
||||
|
||||
-- paste over currently selected text without yanking it
|
||||
keymap("v", "p", "\"_dP", default_options)
|
||||
|
||||
-- buffer focus
|
||||
keymap('n', '<c-j>', '<c-w>j', default_options)
|
||||
keymap('n', '<c-h>', '<c-w>h', default_options)
|
||||
keymap('n', '<c-k>', '<c-w>k', default_options)
|
||||
keymap('n', '<c-l>', '<c-w>l', default_options)
|
||||
|
||||
-- Resizing panes
|
||||
keymap("n", "<Left>", ":vertical resize +1<CR>", default_options)
|
||||
keymap("n", "<Right>", ":vertical resize -1<CR>", default_options)
|
||||
keymap("n", "<Up>", ":resize -1<CR>", default_options)
|
||||
keymap("n", "<Down>", ":resize +1<CR>", default_options)
|
||||
|
||||
-- Move selected line / block of text in visual mode
|
||||
keymap("x", "K", ":move '<-2<CR>gv-gv", default_options)
|
||||
keymap("x", "J", ":move '>+1<CR>gv-gv", default_options)
|
||||
|
||||
-- Toggle nvim-tree open or closed
|
||||
keymap("n", "<c-n>", "<CMD>NvimTreeToggle<CR>", default_options)
|
||||
@@ -1,121 +0,0 @@
|
||||
-- Plugins
|
||||
|
||||
local execute = vim.api.nvim_command
|
||||
local fn = vim.fn
|
||||
local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim'
|
||||
|
||||
|
||||
-- returns the require for use in `config` parameter of packer's use
|
||||
-- expects the name of the config file
|
||||
function get_config(name)
|
||||
return string.format("require(\"config/%s\")", name)
|
||||
end
|
||||
|
||||
-- Install packer if not available
|
||||
if fn.empty(fn.glob(install_path)) > 0 then
|
||||
fn.system({
|
||||
"git", "clone", "https://github.com/wbthomason/packer.nvim",
|
||||
install_path
|
||||
})
|
||||
execute "packadd packer.nvim"
|
||||
end
|
||||
|
||||
-- Initialize and configure packer
|
||||
local packer = require("packer")
|
||||
packer.init {
|
||||
enable = true, -- enable profiling via :PackerCompile profile=true
|
||||
threshold = 0 -- the amount in ms that a plugins load time must be over for it to be included in the profile
|
||||
}
|
||||
local use = packer.use
|
||||
packer.reset()
|
||||
|
||||
-- actual plugins list
|
||||
use "wbthomason/packer.nvim"
|
||||
|
||||
use {"kyazdani42/nvim-tree.lua", config = get_config("nvim-tree")}
|
||||
|
||||
use {
|
||||
"nvim-lualine/lualine.nvim",
|
||||
config = get_config("lualine"),
|
||||
requires = {"kyazdani42/nvim-web-devicons", opt = true}
|
||||
}
|
||||
|
||||
use {
|
||||
'nvim-telescope/telescope.nvim',
|
||||
config = get_config("telescope"),
|
||||
requires = { {'nvim-lua/plenary.nvim'} }
|
||||
}
|
||||
|
||||
use { 'nvim-telescope/telescope-fzf-native.nvim', run = 'make' }
|
||||
|
||||
use {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
config = get_config("treesitter"),
|
||||
run = ":TSUpdate"
|
||||
}
|
||||
|
||||
use "nvim-treesitter/nvim-treesitter-textobjects"
|
||||
|
||||
use {
|
||||
"hrsh7th/nvim-cmp",
|
||||
requires = {
|
||||
{"hrsh7th/cmp-nvim-lsp"}, {"hrsh7th/cmp-buffer"}, {"hrsh7th/cmp-path"},
|
||||
{"hrsh7th/cmp-cmdline"}, {"hrsh7th/cmp-vsnip"},
|
||||
{"f3fora/cmp-spell", {"hrsh7th/cmp-calc"}, {"hrsh7th/cmp-emoji"}}
|
||||
},
|
||||
config = get_config("cmp")
|
||||
}
|
||||
|
||||
use {"onsails/lspkind-nvim", requires = {{"famiu/bufdelete.nvim"}}}
|
||||
|
||||
-- LSP
|
||||
use {"ray-x/lsp_signature.nvim", requires = {{"neovim/nvim-lspconfig"}}}
|
||||
|
||||
use { "williamboman/mason.nvim" }
|
||||
use { "williamboman/mason-lspconfig.nvim" }
|
||||
use {
|
||||
"neovim/nvim-lspconfig",
|
||||
config = get_config("lsp")
|
||||
}
|
||||
use {
|
||||
"williamboman/nvim-lsp-installer",
|
||||
config = get_config("lsp-installer")
|
||||
}
|
||||
|
||||
use {"folke/which-key.nvim", event = "VimEnter", config = get_config("which")}
|
||||
|
||||
-- requirement for Neogit
|
||||
use {
|
||||
"sindrets/diffview.nvim",
|
||||
cmd = {
|
||||
"DiffviewOpen", "DiffviewClose", "DiffviewToggleFiles",
|
||||
"DiffviewFocusFiles"
|
||||
},
|
||||
config = get_config("diffview")
|
||||
}
|
||||
|
||||
use {
|
||||
"TimUntersberger/neogit",
|
||||
requires = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
"nvim-telescope/telescope.nvim", -- optional
|
||||
"sindrets/diffview.nvim", -- optional
|
||||
},
|
||||
cmd = "Neogit",
|
||||
config = get_config("neogit")
|
||||
}
|
||||
|
||||
use {"hrsh7th/vim-vsnip", config = get_config("vsnip")}
|
||||
|
||||
use({
|
||||
"andrewferrier/wrapping.nvim",
|
||||
config = function()
|
||||
require("wrapping").setup()
|
||||
end,
|
||||
})
|
||||
|
||||
-- Theme
|
||||
use {
|
||||
'EdenEast/nightfox.nvim',
|
||||
config = get_config("nightfox")
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
-- Nightfox
|
||||
require('nightfox').load('terafox')
|
||||
--require('nightfox').load('terafox')
|
||||
--vim.cmd("colorscheme nightfox")
|
||||
|
||||
21
nvim/m-housh/init.lua
Executable file
21
nvim/m-housh/init.lua
Executable file
@@ -0,0 +1,21 @@
|
||||
-- Leader needs to be set before loading plugins
|
||||
vim.g.mapleader = " "
|
||||
vim.g.maplocalleader = " "
|
||||
|
||||
-- Auto commands
|
||||
require('user.autocmd')
|
||||
|
||||
-- Plugins
|
||||
require('user.plugins')
|
||||
|
||||
-- Key maps
|
||||
require('user.mappings')
|
||||
|
||||
-- Theme (must stay after plugins are loaded)
|
||||
require('user.theme')
|
||||
|
||||
-- Common settings
|
||||
require('user.settings')
|
||||
|
||||
vim.o.shiftwidth = 2
|
||||
|
||||
81
nvim/m-housh/lua/user/autocmd.lua
Executable file
81
nvim/m-housh/lua/user/autocmd.lua
Executable file
@@ -0,0 +1,81 @@
|
||||
local defaultGroupOptions = { clear = true }
|
||||
local markdownGroup = vim.api.nvim_create_augroup("MyMarkdownGroup", defaultGroupOptions)
|
||||
local spellGroup = vim.api.nvim_create_augroup('SpellGroup', defaultGroupOptions)
|
||||
local createCmd = vim.api.nvim_create_autocmd
|
||||
local swiftGroup = vim.api.nvim_create_augroup('swift_lsp', { clear = true })
|
||||
|
||||
-- Remove all trailing whitespace on save
|
||||
vim.api.nvim_exec([[
|
||||
augroup TrimWhiteSpace
|
||||
au!
|
||||
autocmd BufWritePre * :%s/\s\+$//e
|
||||
augroup END
|
||||
]], false)
|
||||
|
||||
-- Prevent new line to also start with a comment
|
||||
vim.api.nvim_exec([[
|
||||
augroup NewLineComment
|
||||
au!
|
||||
au FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o
|
||||
augroup END
|
||||
]], false)
|
||||
|
||||
-- Spell check
|
||||
createCmd(
|
||||
"BufEnter",
|
||||
{
|
||||
pattern = { '*.md', '*.markdown', '*.txt', '*.tex' },
|
||||
group = spellGroup,
|
||||
callback = function(_)
|
||||
vim.cmd.setlocal('textwidth=80')
|
||||
vim.cmd.setlocal('spell spelllang=en_us')
|
||||
end,
|
||||
}
|
||||
)
|
||||
|
||||
-- Markdown
|
||||
createCmd(
|
||||
"BufWritePost",
|
||||
{
|
||||
pattern = { "*.md", "*.markdown" },
|
||||
group = markdownGroup,
|
||||
callback = function(_)
|
||||
local cursor = vim.fn.getpos('.')
|
||||
vim.cmd("FormatWrite")
|
||||
vim.fn.setpos('.', cursor)
|
||||
end,
|
||||
}
|
||||
)
|
||||
|
||||
-- Go
|
||||
createCmd(
|
||||
"BufWritePre",
|
||||
{
|
||||
pattern = "*.go",
|
||||
callback = function()
|
||||
require('go.format').goimport()
|
||||
end,
|
||||
group = vim.api.nvim_create_augroup("GoFormat", defaultGroupOptions)
|
||||
}
|
||||
)
|
||||
|
||||
-- Swift
|
||||
-- createCmd(
|
||||
-- "FileType",
|
||||
-- {
|
||||
-- pattern = { 'swift' },
|
||||
-- callback = function()
|
||||
-- local root_dir = vim.fs.dirname(vim.fs.find({
|
||||
-- "Package.swift",
|
||||
-- ".git",
|
||||
-- }, { upward = true })[1])
|
||||
-- local client = vim.lsp.start({
|
||||
-- name = "sourcekit-lsp",
|
||||
-- cmd = { "sourcekit-lsp" },
|
||||
-- root_dir = root_dir
|
||||
-- })
|
||||
-- vim.lsp.buf_attach_client(0, client)
|
||||
-- end,
|
||||
-- group = swiftGroup
|
||||
-- }
|
||||
-- )
|
||||
126
nvim/m-housh/lua/user/mappings.lua
Executable file
126
nvim/m-housh/lua/user/mappings.lua
Executable file
@@ -0,0 +1,126 @@
|
||||
local keymap = vim.keymap.set
|
||||
local default_options = {noremap = true, silent = true}
|
||||
local telescope = require('telescope.builtin')
|
||||
-- local expr_options = {noremap = true, expr = true, silent = true}
|
||||
vim.g.mapleader = " "
|
||||
vim.g.maplocalleader = " "
|
||||
|
||||
-- easier escape key mapping
|
||||
keymap('i', 'jk', '<ESC>', default_options)
|
||||
|
||||
keymap('n', '<c-s>', ':w<CR>', default_options)
|
||||
keymap('i', '<c-s>', '<ESC>:w<CR>a', default_options)
|
||||
|
||||
-- paste over currently selected text without yanking it
|
||||
keymap("v", "p", "\"_dP", default_options)
|
||||
|
||||
-- buffer focus
|
||||
-- keymap('n', '<c-j>', '<c-w>j', default_options)
|
||||
-- keymap('n', '<c-h>', '<c-w>h', default_options)
|
||||
-- keymap('n', '<c-k>', '<c-w>k', default_options)
|
||||
-- keymap('n', '<c-l>', '<c-w>l', default_options)
|
||||
|
||||
-- Resizing panes
|
||||
keymap("n", "<Left>", ":vertical resize +1<CR>", default_options)
|
||||
keymap("n", "<Right>", ":vertical resize -1<CR>", default_options)
|
||||
keymap("n", "<Up>", ":resize -1<CR>", default_options)
|
||||
keymap("n", "<Down>", ":resize +1<CR>", default_options)
|
||||
|
||||
-- Move selected line / block of text in visual mode
|
||||
keymap("x", "K", ":move '<-2<CR>gv-gv", default_options)
|
||||
keymap("x", "J", ":move '>+1<CR>gv-gv", default_options)
|
||||
|
||||
-- Toggle neo-tree open or closed
|
||||
keymap("n", "<c-n>", "<CMD>:Neotree toggle<CR>", default_options)
|
||||
|
||||
-- Toggle Lazy Git
|
||||
keymap("n", '<leader>gg', ':LazyGit<CR>', default_options)
|
||||
keymap("n", "<leader>gf", ":Telescope git_files<CR>", default_options)
|
||||
keymap("n", "<leader>t", ":ToggleTerm<CR>", default_options)
|
||||
|
||||
-- Zen Mode Toggle
|
||||
keymap('n', '<leader>z', "<cmd>:ZenMode<CR>", default_options)
|
||||
|
||||
-- Toggle term key maps, that get attached when terminal is opened.
|
||||
function _G.set_terminal_keymaps()
|
||||
local opts = { buffer = 0 }
|
||||
vim.keymap.set('t', '<esc>', [[<C-\><C-n>]], opts)
|
||||
end
|
||||
|
||||
vim.cmd('autocmd! TermOpen term://* lua set_terminal_keymaps()')
|
||||
|
||||
-- Formatting
|
||||
keymap('n', '<leader>f', '<cmd>:Format<CR>', default_options)
|
||||
keymap('n', '<leader>F', '<cmd>:FormatWrite<CR>', default_options)
|
||||
|
||||
-- Telescope keymaps
|
||||
vim.keymap.set('n', '<leader>ff', telescope.find_files, {})
|
||||
vim.keymap.set('n', '<leader>fg', telescope.live_grep, {})
|
||||
vim.keymap.set('n', '<leader>fb', telescope.buffers, {})
|
||||
vim.keymap.set('n', '<leader>fh', telescope.help_tags, {})
|
||||
|
||||
-- Find espanso config files.
|
||||
keymap('n', '<leader>fe', function()
|
||||
telescope.find_files({
|
||||
cwd='$HOME/.dotfiles/espanso/espanso'
|
||||
})
|
||||
end, default_options)
|
||||
|
||||
-- Find nvim config files.
|
||||
keymap('n', '<leader>fn', function()
|
||||
telescope.find_files({
|
||||
cwd='$HOME/.dotfiles/nvim/m-housh'
|
||||
})
|
||||
end, default_options)
|
||||
|
||||
-- Find script files.
|
||||
keymap('n', '<leader>fs', function()
|
||||
telescope.find_files({
|
||||
cwd='$HOME/.dotfiles/scripts/scripts'
|
||||
})
|
||||
end, default_options)
|
||||
|
||||
-- Find zsh config files.
|
||||
keymap('n', '<leader>fz', function()
|
||||
telescope.find_files({
|
||||
cwd = '$HOME/.dotfiles/zsh/config',
|
||||
hidden = true
|
||||
})
|
||||
end, default_options)
|
||||
|
||||
-- Turn off highlighting after search.
|
||||
keymap('n', '<leader>n', '<cmd>:noh<cr>', default_options)
|
||||
|
||||
-- Toggle Spell Checking.
|
||||
keymap('n', '<leader>s', '<cmd>:set spell!<cr>', default_options)
|
||||
|
||||
-- LuaSnip Keymaps
|
||||
--local ls = require('luasnip')
|
||||
|
||||
-- <c-k> to expand snippets.
|
||||
-- This will expand the snippet or jump to the next item within the snippet.
|
||||
-- vim.keymap.set({ "i", "s" }, "<c-k>", function()
|
||||
-- if ls.expand_or_jumpable() then
|
||||
-- ls.expand_or_jump()
|
||||
-- end
|
||||
-- end, { silent = true })
|
||||
|
||||
|
||||
-- <c-j>
|
||||
-- This will jump backwards in the snippet.
|
||||
-- vim.keymap.set({ "i", "s" }, "<c-j>", function()
|
||||
-- if ls.jumpable(-1) then
|
||||
-- ls.jump(-1)
|
||||
-- end
|
||||
-- end, { silent = true })
|
||||
|
||||
-- <c-l>
|
||||
-- This is for selecting withing a list of options.
|
||||
-- vim.keymap.set("i", "<c-l>", function()
|
||||
-- if ls.choice_active() then
|
||||
-- ls.change_choice(1)
|
||||
-- end
|
||||
-- end, { silent = true })
|
||||
|
||||
-- Reload the snippets.
|
||||
--vim.keymap.set("n", "<leader><leader>s", "<cmd>source ~/.config/m-housh/lua/snippets/init.lua<cr>")
|
||||
155
nvim/m-housh/lua/user/plugin/cmp.lua
Executable file
155
nvim/m-housh/lua/user/plugin/cmp.lua
Executable file
@@ -0,0 +1,155 @@
|
||||
return {
|
||||
"hrsh7th/nvim-cmp",
|
||||
enabled = true,
|
||||
dependencies = {
|
||||
"hrsh7th/cmp-nvim-lsp",
|
||||
"hrsh7th/cmp-buffer",
|
||||
"hrsh7th/cmp-path",
|
||||
"hrsh7th/cmp-cmdline",
|
||||
--"hrsh7th/cmp-vsnip",
|
||||
'saadparwaiz1/cmp_luasnip',
|
||||
"f3fora/cmp-spell",
|
||||
"hrsh7th/cmp-calc",
|
||||
"hrsh7th/cmp-emoji",
|
||||
--"L3MON4D3/LuaSnip",
|
||||
|
||||
-- Adds a number of user-friendly snippets
|
||||
'rafamadriz/friendly-snippets',
|
||||
},
|
||||
event = { 'BufReadPre', 'BufNewFile' },
|
||||
config = function()
|
||||
-- Setup nvim-cmp.
|
||||
local cmp = require "cmp"
|
||||
local lspkind = require("lspkind")
|
||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||
capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities)
|
||||
--local luasnip = require('luasnip')
|
||||
|
||||
local has_words_before = function()
|
||||
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
||||
return col ~= 0
|
||||
and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(
|
||||
col, col):match("%s") == nil
|
||||
end
|
||||
|
||||
local feedkey = function(key, mode)
|
||||
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes(key, true, true, true),
|
||||
mode, true)
|
||||
end
|
||||
|
||||
|
||||
require('lspconfig').sourcekit.setup {
|
||||
capabilities = capabilities
|
||||
}
|
||||
|
||||
lspkind.init({
|
||||
symbol_map = {
|
||||
|
||||
Text = "",
|
||||
Method = "",
|
||||
Function = "",
|
||||
Constructor = "",
|
||||
Field = "ﰠ",
|
||||
Variable = "",
|
||||
Class = "ﴯ",
|
||||
Interface = "",
|
||||
Module = "",
|
||||
Property = "ﰠ",
|
||||
Unit = "塞",
|
||||
Value = "",
|
||||
Enum = "",
|
||||
Keyword = "",
|
||||
Snippet = "",
|
||||
Color = "",
|
||||
File = "",
|
||||
Reference = "",
|
||||
Folder = "",
|
||||
EnumMember = "",
|
||||
Constant = "",
|
||||
Struct = "פּ",
|
||||
Event = "",
|
||||
Operator = "",
|
||||
TypeParameter = ""
|
||||
}
|
||||
})
|
||||
|
||||
-- Configure nvim-cmp.
|
||||
--require('luasnip.loaders.from_vscode').lazy_load()
|
||||
--luasnip.config.setup {}
|
||||
cmp.setup({
|
||||
formatting = {
|
||||
format = lspkind.cmp_format {
|
||||
with_text = false,
|
||||
maxwidth = 50,
|
||||
menu = {
|
||||
buffer = "BUF",
|
||||
nvim_lsp = "LSP",
|
||||
path = "PATH",
|
||||
vsnip = "SNIP",
|
||||
calc = "CALC",
|
||||
spell = "SPELL",
|
||||
emoji = "EMOJI"
|
||||
}
|
||||
}
|
||||
},
|
||||
experimental = {native_menu = false, ghost_text = false},
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
luasnip.lsp_expand(args.body)
|
||||
--require('luasnip').lsp_expand(args.body)
|
||||
end
|
||||
},
|
||||
mapping = {
|
||||
["<C-p>"] = cmp.mapping.select_prev_item(),
|
||||
["<C-n>"] = cmp.mapping.select_next_item(),
|
||||
["<C-d>"] = cmp.mapping.scroll_docs(-4),
|
||||
["<C-f>"] = cmp.mapping.scroll_docs(4),
|
||||
["<C-Space>"] = cmp.mapping.complete(),
|
||||
["<C-e>"] = cmp.mapping.abort(),
|
||||
["<CR>"] = cmp.mapping.confirm {
|
||||
behavior = cmp.ConfirmBehavior.Replace,
|
||||
select = true
|
||||
},
|
||||
-- Accept ([y]es) the completions.
|
||||
['<C-y'] = cmp.mapping.confirm { select = true },
|
||||
-- ["<Tab>"] = cmp.mapping(function(fallback)
|
||||
-- if cmp.visible() then
|
||||
-- cmp.select_next_item()
|
||||
-- -- elseif luasnip.expandable() then
|
||||
-- -- luasnip.expand()
|
||||
-- -- elseif luasnip.expand_or_jumpable() then
|
||||
-- -- luasnip.expand_or_jump()
|
||||
-- elseif has_words_before() then
|
||||
-- cmp.complete()
|
||||
-- else
|
||||
-- fallback()
|
||||
-- end
|
||||
-- end, {"i", "s"}),
|
||||
["<S-Tab>"] = cmp.mapping(function()
|
||||
if cmp.visible() then
|
||||
cmp.select_prev_item()
|
||||
-- elseif vim.fn["vsnip#jumpable"](-1) == 1 then
|
||||
-- feedkey("<Plug>(vsnip-jump-prev)", "")
|
||||
end
|
||||
end, {"i", "s"})
|
||||
},
|
||||
sources = {
|
||||
{name = "nvim_lsp"},
|
||||
{name = "buffer", keyword_length = 5},
|
||||
--{name = 'luasnip', option = { show_autosnippets = true } },
|
||||
{name = "calc"},
|
||||
{name = "emoji"},
|
||||
{name = "spell"},
|
||||
{name = "path"}
|
||||
}
|
||||
})
|
||||
|
||||
-- Use buffer source for `/`.
|
||||
cmp.setup.cmdline("/", {sources = {{name = "buffer"}}})
|
||||
|
||||
-- Use cmdline & path source for ':'.
|
||||
cmp.setup.cmdline(":", {
|
||||
sources = cmp.config.sources({{name = "path"}}, {{name = "cmdline"}})
|
||||
})
|
||||
end
|
||||
}
|
||||
7
nvim/m-housh/lua/user/plugin/comment.lua
Executable file
7
nvim/m-housh/lua/user/plugin/comment.lua
Executable file
@@ -0,0 +1,7 @@
|
||||
return {
|
||||
'numToStr/Comment.nvim',
|
||||
opts = {
|
||||
-- add any options here
|
||||
},
|
||||
event = { 'BufReadPre', 'BufNewFile' },
|
||||
}
|
||||
32
nvim/m-housh/lua/user/plugin/formatter.lua
Executable file
32
nvim/m-housh/lua/user/plugin/formatter.lua
Executable file
@@ -0,0 +1,32 @@
|
||||
return {
|
||||
"mhartington/formatter.nvim",
|
||||
event = { 'BufReadPre', 'BufNewFile' },
|
||||
config = function()
|
||||
local util = require("formatter.util")
|
||||
require("formatter").setup({
|
||||
filetype = {
|
||||
markdown = function()
|
||||
return {
|
||||
exe = "prettier",
|
||||
args = {
|
||||
"--stdin-filepath",
|
||||
util.escape_path(util.get_current_buffer_file_path()),
|
||||
"--print-width",
|
||||
"80",
|
||||
"--prose-wrap",
|
||||
"always",
|
||||
"--parser",
|
||||
"markdown"
|
||||
},
|
||||
stdin = true,
|
||||
try_node_modules = true,
|
||||
}
|
||||
end,
|
||||
["*"] = {
|
||||
-- formatter for any / all file types.
|
||||
require("formatter.filetypes.any").remove_trailing_whitespace
|
||||
}
|
||||
}
|
||||
})
|
||||
end
|
||||
}
|
||||
18
nvim/m-housh/lua/user/plugin/go.lua
Executable file
18
nvim/m-housh/lua/user/plugin/go.lua
Executable file
@@ -0,0 +1,18 @@
|
||||
return {
|
||||
"ray-x/go.nvim",
|
||||
lazy = true,
|
||||
dependencies = { -- optional packages
|
||||
"ray-x/guihua.lua",
|
||||
"neovim/nvim-lspconfig",
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
'mfussenegger/nvim-dap',
|
||||
'rcarriga/nvim-dap-ui',
|
||||
'theHamsta/nvim-dap-virtual-text',
|
||||
},
|
||||
config = function()
|
||||
require("go").setup()
|
||||
end,
|
||||
--event = {'BufReadPre', 'BufNewFile'},
|
||||
ft = {"go", 'gomod'},
|
||||
build = ':lua require("go.install").update_all_sync()' -- if you need to install/update all binaries
|
||||
}
|
||||
31
nvim/m-housh/lua/user/plugin/init.lua
Executable file
31
nvim/m-housh/lua/user/plugin/init.lua
Executable file
@@ -0,0 +1,31 @@
|
||||
-- This file contains plugin's that don't require much configuration.
|
||||
return {
|
||||
-- {
|
||||
-- "L3MON4D3/LuaSnip",
|
||||
-- version = "2.*",
|
||||
-- build = "make install_jsregexp",
|
||||
-- event = { 'BufReadPre', 'BufNewFile' },
|
||||
-- config = function()
|
||||
-- local luasnip = require('luasnip')
|
||||
-- local types = require('luasnip.util.types')
|
||||
-- luasnip.config.set_config {
|
||||
-- history = true,
|
||||
-- updateevents = "TextChanged,TextChangedI",
|
||||
-- enable_autosnippets = true,
|
||||
-- ext_opts = {
|
||||
-- [types.choiceNode] = {
|
||||
-- active = {
|
||||
-- virt_text = { { "<-", "Error" } },
|
||||
-- },
|
||||
-- },
|
||||
-- },
|
||||
-- }
|
||||
-- end
|
||||
-- },
|
||||
{
|
||||
"hrsh7th/vim-vsnip",
|
||||
config = function()
|
||||
vim.g.vsnip_snippet_dir = os.getenv('HOME') .. '/.config/m-housh/lua/snippets/'
|
||||
end
|
||||
},
|
||||
}
|
||||
10
nvim/m-housh/lua/user/plugin/lazygit.lua
Executable file
10
nvim/m-housh/lua/user/plugin/lazygit.lua
Executable file
@@ -0,0 +1,10 @@
|
||||
return {
|
||||
"kdheepak/lazygit.nvim",
|
||||
dependencies = {
|
||||
"nvim-telescope/telescope.nvim",
|
||||
"nvim-lua/plenary.nvim"
|
||||
},
|
||||
config = function()
|
||||
require("telescope").load_extension("lazygit")
|
||||
end,
|
||||
}
|
||||
224
nvim/m-housh/lua/user/plugin/lsp.lua
Executable file
224
nvim/m-housh/lua/user/plugin/lsp.lua
Executable file
@@ -0,0 +1,224 @@
|
||||
return {
|
||||
{
|
||||
"williamboman/nvim-lsp-installer",
|
||||
config = function()
|
||||
require("nvim-lsp-installer").setup({})
|
||||
end
|
||||
},
|
||||
{
|
||||
"williamboman/mason-lspconfig.nvim",
|
||||
dependencies = {
|
||||
"williamboman/mason.nvim",
|
||||
"onsails/lspkind-nvim",
|
||||
"famiu/bufdelete.nvim",
|
||||
"ray-x/lsp_signature.nvim",
|
||||
"neovim/nvim-lspconfig",
|
||||
"folke/neodev.nvim",
|
||||
"mhartington/formatter.nvim",
|
||||
"ray-x/go.nvim",
|
||||
},
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
"bashls",
|
||||
"clangd",
|
||||
"dockerls",
|
||||
"gopls",
|
||||
"jsonls",
|
||||
"jedi_language_server",
|
||||
"lua_ls",
|
||||
"marksman",
|
||||
"terraformls",
|
||||
"tsserver",
|
||||
"texlab",
|
||||
"yamlls",
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
dependencies = {
|
||||
"hrsh7th/cmp-nvim-lsp",
|
||||
},
|
||||
config = function()
|
||||
require('neodev').setup()
|
||||
require("mason").setup()
|
||||
require("mason-lspconfig").setup()
|
||||
local nvim_lsp = require("lspconfig")
|
||||
|
||||
-- Use an on_attach function to only map the following keys
|
||||
-- after the language server attaches to the current buffer
|
||||
local on_attach = function(bufnr)
|
||||
local function buf_set_keymap(...)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, ...)
|
||||
end
|
||||
|
||||
-- Mappings.
|
||||
local opts = {noremap = true, silent = true}
|
||||
|
||||
-- See `:help vim.lsp.*` for documentation on any of the below functions
|
||||
buf_set_keymap("n", "gD", "<Cmd>lua vim.lsp.buf.declaration()<CR>", opts)
|
||||
buf_set_keymap("n", "gd", "<Cmd>lua vim.lsp.buf.definition()<CR>", opts)
|
||||
buf_set_keymap("n", "K", "<Cmd>lua vim.lsp.buf.hover()<CR>", opts)
|
||||
buf_set_keymap("n", "gi", "<cmd>lua vim.lsp.buf.implementation()<CR>", opts)
|
||||
buf_set_keymap("n", "gT", vim.lsp.buf.type_definition, opts)
|
||||
-- buf_set_keymap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
|
||||
buf_set_keymap("n", "<space>wa",
|
||||
"<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>", opts)
|
||||
buf_set_keymap("n", "<space>wr",
|
||||
"<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>", opts)
|
||||
buf_set_keymap("n", "<space>wl",
|
||||
"<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>",
|
||||
opts)
|
||||
buf_set_keymap("n", "<space>D",
|
||||
"<cmd>lua vim.lsp.buf.type_definition()<CR>", opts)
|
||||
buf_set_keymap("n", "<space>rn", "<cmd>lua vim.lsp.buf.rename()<CR>", opts)
|
||||
buf_set_keymap("n", "<space>ca", "<cmd>lua vim.lsp.buf.code_action()<CR>",
|
||||
opts)
|
||||
buf_set_keymap("n", "gr", "<cmd>lua vim.lsp.buf.references()<CR>", opts)
|
||||
buf_set_keymap("n", "<space>e", "<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>", opts)
|
||||
buf_set_keymap("n", "[d", "<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>", opts)
|
||||
|
||||
buf_set_keymap("n", "]d", "<cmd>lua vim.lsp.diagnostic.goto_next()<CR>", opts)
|
||||
buf_set_keymap("n", "<space>q", "<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>", opts)
|
||||
buf_set_keymap("n", "<space>f", "<cmd>lua vim.lsp.buf.formatting()<CR>", opts)
|
||||
|
||||
vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
|
||||
end
|
||||
|
||||
-- Use a loop to conveniently call 'setup' on multiple servers and
|
||||
-- map buffer local keybindings when the language server attaches
|
||||
--local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||
local capabilities = require("cmp_nvim_lsp").default_capabilities()
|
||||
|
||||
local servers = {
|
||||
"bashls",
|
||||
"clangd",
|
||||
"dockerls",
|
||||
"gopls",
|
||||
"jsonls",
|
||||
"jedi_language_server",
|
||||
"lua_ls",
|
||||
"marksman",
|
||||
"sourcekit",
|
||||
"terraformls",
|
||||
"tsserver",
|
||||
"texlab",
|
||||
"yamlls",
|
||||
}
|
||||
for _, lsp in ipairs(servers) do
|
||||
nvim_lsp[lsp].setup {
|
||||
on_attach = on_attach,
|
||||
capabilities = capabilities,
|
||||
settings = {
|
||||
gopls = {
|
||||
experimentalPostfixCompletions = true,
|
||||
analyses = {
|
||||
unusedparams = true,
|
||||
shadow = true
|
||||
},
|
||||
staticcheck = true
|
||||
},
|
||||
lua_ls = {
|
||||
Lua = {
|
||||
completion = {
|
||||
callSnippet = "Replace"
|
||||
},
|
||||
workspace = { checkThirdParty = false },
|
||||
telemetry = { enable = false },
|
||||
}
|
||||
},
|
||||
json = {
|
||||
format = {enabled = false},
|
||||
schemas = {
|
||||
{
|
||||
description = "ESLint config",
|
||||
fileMatch = {".eslintrc.json", ".eslintrc"},
|
||||
url = "http://json.schemastore.org/eslintrc"
|
||||
}, {
|
||||
description = "Package config",
|
||||
fileMatch = {"package.json"},
|
||||
url = "https://json.schemastore.org/package"
|
||||
}, {
|
||||
description = "Packer config",
|
||||
fileMatch = {"packer.json"},
|
||||
url = "https://json.schemastore.org/packer"
|
||||
}, {
|
||||
description = "Renovate config",
|
||||
fileMatch = {
|
||||
"renovate.json", "renovate.json5",
|
||||
".github/renovate.json", ".github/renovate.json5",
|
||||
".renovaterc", ".renovaterc.json"
|
||||
},
|
||||
url = "https://docs.renovatebot.com/renovate-schema"
|
||||
}, {
|
||||
description = "OpenApi config",
|
||||
fileMatch = {"*api*.json"},
|
||||
url = "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.1/schema.json"
|
||||
}
|
||||
}
|
||||
},
|
||||
redhat = {telemetry = {enabled = false}},
|
||||
texlab = {
|
||||
auxDirectory = ".",
|
||||
bibtexFormatter = "texlab",
|
||||
build = {
|
||||
args = {
|
||||
"--keep-intermediates", "--keep-logs", "--synctex", "%f"
|
||||
},
|
||||
executable = "tectonic",
|
||||
forwardSearchAfter = false,
|
||||
onSave = false
|
||||
},
|
||||
chktex = {onEdit = false, onOpenAndSave = false},
|
||||
diagnosticsDelay = 300,
|
||||
formatterLineLength = 80,
|
||||
forwardSearch = {args = {}},
|
||||
latexFormatter = "latexindent",
|
||||
latexindent = {modifyLineBreaks = false}
|
||||
},
|
||||
yaml = {
|
||||
schemaStore = {
|
||||
enable = true,
|
||||
url = "https://www.schemastore.org/api/json/catalog.json"
|
||||
},
|
||||
schemas = {
|
||||
kubernetes = "/*.yaml",
|
||||
["http://json.schemastore.org/github-workflow"] = ".github/workflows/*.{yml,yaml}",
|
||||
["http://json.schemastore.org/github-action"] = ".github/action.{yml,yaml}",
|
||||
["http://json.schemastore.org/ansible-stable-2.9"] = "roles/tasks/*.{yml,yaml}",
|
||||
["http://json.schemastore.org/prettierrc"] = ".prettierrc.{yml,yaml}",
|
||||
["http://json.schemastore.org/kustomization"] = "kustomization.{yml,yaml}",
|
||||
["http://json.schemastore.org/ansible-playbook"] = "*play*.{yml,yaml}",
|
||||
["http://json.schemastore.org/chart"] = "Chart.{yml,yaml}",
|
||||
["https://json.schemastore.org/dependabot-v2"] = ".github/dependabot.{yml,yaml}",
|
||||
["https://json.schemastore.org/gitlab-ci"] = "*gitlab-ci*.{yml,yaml}",
|
||||
["https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.1/schema.json"] = "*api*.{yml,yaml}",
|
||||
["https://raw.githubusercontent.com/compose-spec/compose-spec/master/schema/compose-spec.json"] = "docker-compose.{yml,yaml}",
|
||||
["https://raw.githubusercontent.com/argoproj/argo-workflows/master/api/jsonschema/schema.json"] = "*flow*.{yml,yaml}"
|
||||
},
|
||||
format = {enabled = false},
|
||||
validate = false, -- TODO: conflicts between Kubernetes resources and kustomization.yaml
|
||||
completion = true,
|
||||
hover = true
|
||||
}
|
||||
},
|
||||
flags = {debounce_text_changes = 150}
|
||||
}
|
||||
require"lsp_signature".setup({
|
||||
bind = true, -- This is mandatory, otherwise border config won't get registered.
|
||||
floating_window = true, -- show hint in a floating window, set to false for virtual text only mode
|
||||
doc_lines = 2, -- Set to 0 for not showing doc
|
||||
hint_prefix = "🐼 ",
|
||||
-- use_lspsaga = false, -- set to true if you want to use lspsaga popup
|
||||
handler_opts = {
|
||||
border = "shadow" -- double, single, shadow, none
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
-- Test source-kit
|
||||
require('lspconfig').sourcekit.setup{}
|
||||
|
||||
end
|
||||
}
|
||||
}
|
||||
119
nvim/m-housh/lua/user/plugin/lualine.lua
Executable file
119
nvim/m-housh/lua/user/plugin/lualine.lua
Executable file
@@ -0,0 +1,119 @@
|
||||
return {
|
||||
"nvim-lualine/lualine.nvim",
|
||||
config = function()
|
||||
local colors = {
|
||||
red = '#ca1243',
|
||||
grey = '#a0a1a7',
|
||||
black = '#383a42',
|
||||
white = '#f3f3f3',
|
||||
light_green = '#83a598',
|
||||
orange = '#fe8019',
|
||||
green = '#8ec07c',
|
||||
}
|
||||
|
||||
local empty = require('lualine.component'):extend()
|
||||
function empty:draw(default_highlight)
|
||||
self.status = ''
|
||||
self.applied_separator = ''
|
||||
self:apply_highlights(default_highlight)
|
||||
self:apply_section_separators()
|
||||
return self.status
|
||||
end
|
||||
|
||||
-- Put proper separators and gaps between components in sections
|
||||
local function process_sections(sections)
|
||||
for name, section in pairs(sections) do
|
||||
local left = name:sub(9, 10) < 'x'
|
||||
for pos = 1, name ~= 'lualine_z' and #section or #section - 1 do
|
||||
table.insert(section, pos * 2, { empty, color = { fg = colors.white, bg = colors.white } })
|
||||
end
|
||||
for id, comp in ipairs(section) do
|
||||
if type(comp) ~= 'table' then
|
||||
comp = { comp }
|
||||
section[id] = comp
|
||||
end
|
||||
comp.separator = left and { right = '' } or { left = '' }
|
||||
end
|
||||
end
|
||||
return sections
|
||||
end
|
||||
|
||||
local function search_result()
|
||||
if vim.v.hlsearch == 0 then
|
||||
return ''
|
||||
end
|
||||
local last_search = vim.fn.getreg '/'
|
||||
if not last_search or last_search == '' then
|
||||
return ''
|
||||
end
|
||||
local searchcount = vim.fn.searchcount { maxcount = 9999 }
|
||||
return last_search .. '(' .. searchcount.current .. '/' .. searchcount.total .. ')'
|
||||
end
|
||||
|
||||
local function modified()
|
||||
if vim.bo.modified then
|
||||
return '+'
|
||||
elseif vim.bo.modifiable == false or vim.bo.readonly == true then
|
||||
return '-'
|
||||
end
|
||||
return ''
|
||||
end
|
||||
|
||||
require('lualine').setup {
|
||||
options = {
|
||||
theme = 'auto',
|
||||
component_separators = '',
|
||||
section_separators = { left = '', right = '' },
|
||||
},
|
||||
sections = process_sections {
|
||||
lualine_a = { 'mode' },
|
||||
lualine_b = {
|
||||
'branch',
|
||||
'diff',
|
||||
{
|
||||
'diagnostics',
|
||||
source = { 'nvim' },
|
||||
sections = { 'error' },
|
||||
diagnostics_color = { error = { bg = colors.red, fg = colors.white } },
|
||||
},
|
||||
{
|
||||
'diagnostics',
|
||||
source = { 'nvim' },
|
||||
sections = { 'warn' },
|
||||
diagnostics_color = { warn = { bg = colors.orange, fg = colors.white } },
|
||||
},
|
||||
{ 'filename', file_status = false, path = 1 },
|
||||
{ modified, color = { bg = colors.red } },
|
||||
{
|
||||
'%w',
|
||||
cond = function()
|
||||
return vim.wo.previewwindow
|
||||
end,
|
||||
},
|
||||
{
|
||||
'%r',
|
||||
cond = function()
|
||||
return vim.bo.readonly
|
||||
end,
|
||||
},
|
||||
{
|
||||
'%q',
|
||||
cond = function()
|
||||
return vim.bo.buftype == 'quickfix'
|
||||
end,
|
||||
},
|
||||
},
|
||||
lualine_c = {},
|
||||
lualine_x = {},
|
||||
lualine_y = { search_result, 'filetype' },
|
||||
lualine_z = { '%l:%c', '%p%%/%L' },
|
||||
},
|
||||
inactive_sections = {
|
||||
lualine_c = { '%f %y %m' },
|
||||
lualine_x = {},
|
||||
},
|
||||
tabline = {},
|
||||
extensions = {"nvim-tree"}
|
||||
}
|
||||
end
|
||||
}
|
||||
25
nvim/m-housh/lua/user/plugin/neo-tree.lua
Executable file
25
nvim/m-housh/lua/user/plugin/neo-tree.lua
Executable file
@@ -0,0 +1,25 @@
|
||||
return {
|
||||
"nvim-neo-tree/neo-tree.nvim",
|
||||
branch = "v3.x",
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
"nvim-tree/nvim-web-devicons", -- not strictly required, but recommended
|
||||
"MunifTanjim/nui.nvim",
|
||||
},
|
||||
opts = {
|
||||
close_if_last_window = false,
|
||||
enable_git_status = true,
|
||||
enable_diagnostics = true,
|
||||
filesystem = {
|
||||
always_show = {
|
||||
"plugins",
|
||||
".zshrc",
|
||||
".zshenv"
|
||||
},
|
||||
filtered_items = {
|
||||
hide_dotfiles = false
|
||||
},
|
||||
use_libuv_file_watcher = true
|
||||
},
|
||||
}
|
||||
}
|
||||
47
nvim/m-housh/lua/user/plugin/noice.lua
Executable file
47
nvim/m-housh/lua/user/plugin/noice.lua
Executable file
@@ -0,0 +1,47 @@
|
||||
return {
|
||||
"folke/noice.nvim",
|
||||
event = "VeryLazy",
|
||||
-- config.lsp.signature.enabled = false
|
||||
opts = {
|
||||
lsp = {
|
||||
-- override markdown rendering so that **cmp** and other plugins use **Treesitter**
|
||||
override = {
|
||||
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
|
||||
["vim.lsp.util.stylize_markdown"] = true,
|
||||
["cmp.entry.get_documentation"] = true,
|
||||
},
|
||||
-- you can enable a preset for easier configuration
|
||||
presets = {
|
||||
bottom_search = true, -- use a classic bottom cmdline for search
|
||||
command_palette = true, -- position the cmdline and popupmenu together
|
||||
long_message_to_split = true, -- long messages will be sent to a split
|
||||
inc_rename = false, -- enables an input dialog for inc-rename.nvim
|
||||
lsp_doc_border = false, -- add a border to hover docs and signature help
|
||||
},
|
||||
signature = { enabled = false },
|
||||
},
|
||||
routes = {
|
||||
{ -- enables messages for showing macro recording.
|
||||
view = "notify",
|
||||
filter = { event = "msg_showmode" },
|
||||
},
|
||||
{ -- Hide the written messages.
|
||||
view = 'notify',
|
||||
filter = {
|
||||
event = "msg_show",
|
||||
kind = "",
|
||||
find = "written"
|
||||
},
|
||||
opts = { skip = true }
|
||||
}
|
||||
},
|
||||
},
|
||||
dependencies = {
|
||||
-- if you lazy-load any plugin below, make sure to add proper `module="..."` entries
|
||||
"MunifTanjim/nui.nvim",
|
||||
-- OPTIONAL:
|
||||
-- `nvim-notify` is only needed, if you want to use the notification view.
|
||||
-- If not available, we use `mini` as the fallback
|
||||
"rcarriga/nvim-notify",
|
||||
},
|
||||
}
|
||||
15
nvim/m-housh/lua/user/plugin/swift.lua
Executable file
15
nvim/m-housh/lua/user/plugin/swift.lua
Executable file
@@ -0,0 +1,15 @@
|
||||
return {
|
||||
'm-housh/swift.nvim',
|
||||
dependencies = {
|
||||
'akinsho/toggleterm.nvim'
|
||||
},
|
||||
ft = { 'swift' },
|
||||
config = function()
|
||||
require('swift').setup()
|
||||
local default_options = { noremap = true, silent = true }
|
||||
local actions = require('swift.actions')
|
||||
|
||||
vim.keymap.set('n', '<c-b>', actions.build, default_options)
|
||||
vim.keymap.set('n', '<c-u>', actions.test, default_options)
|
||||
end
|
||||
}
|
||||
72
nvim/m-housh/lua/user/plugin/telescope.lua
Executable file
72
nvim/m-housh/lua/user/plugin/telescope.lua
Executable file
@@ -0,0 +1,72 @@
|
||||
return {
|
||||
'nvim-telescope/telescope.nvim',
|
||||
branch = '0.1.x',
|
||||
dependencies = {
|
||||
'nvim-lua/plenary.nvim'
|
||||
},
|
||||
lazy = true,
|
||||
config = function()
|
||||
local actions = require('telescope.actions')
|
||||
|
||||
require('telescope').setup({
|
||||
defaults = {
|
||||
file_ignore_patterns = {"node_modules", "%.jpg", "%.png", ".swiftpm"},
|
||||
vimgrep_arguments = {
|
||||
'rg',
|
||||
'--follow',
|
||||
'--color=never',
|
||||
'--no-heading',
|
||||
'--with-filename',
|
||||
'--line-number',
|
||||
'--column',
|
||||
'--smart-case'
|
||||
},
|
||||
mappings = {
|
||||
i = {
|
||||
-- Close on first esc instead of gonig to normal mode
|
||||
["<esc>"] = actions.close,
|
||||
["<A-q>"] = actions.send_selected_to_qflist,
|
||||
["<C-q>"] = actions.send_to_qflist,
|
||||
["<s-tab>"] = actions.toggle_selection + actions.move_selection_next,
|
||||
["<tab>"] = actions.toggle_selection + actions.move_selection_previous,
|
||||
},
|
||||
n = {
|
||||
["<s-tab>"] = actions.toggle_selection + actions.move_selection_next,
|
||||
["<tab>"] = actions.toggle_selection + actions.move_selection_previous,
|
||||
["<A-q>"] = actions.send_selected_to_qflist,
|
||||
["<C-q>"] = actions.send_to_qflist,
|
||||
},
|
||||
},
|
||||
prompt_prefix = " ",
|
||||
selection_caret = " ",
|
||||
entry_prefix = " ",
|
||||
initial_mode = "insert",
|
||||
selection_strategy = "reset",
|
||||
sorting_strategy = "descending",
|
||||
layout_strategy = "flex",
|
||||
layout_config = {
|
||||
width = 0.75,
|
||||
prompt_position = "bottom",
|
||||
preview_cutoff = 120,
|
||||
horizontal = { mirror = false },
|
||||
vertical = { mirror = true },
|
||||
},
|
||||
file_sorter = require'telescope.sorters'.get_fuzzy_file,
|
||||
generic_sorter = require'telescope.sorters'.get_generic_fuzzy_sorter,
|
||||
-- path_display = true, -- strange behaviour not showing the files in result window
|
||||
winblend = 0,
|
||||
border = {},
|
||||
borderchars = { '─', '│', '─', '│', '╭', '╮', '╯', '╰' },
|
||||
color_devicons = true,
|
||||
use_less = true,
|
||||
set_env = { ['COLORTERM'] = 'truecolor' }, -- default = nil,
|
||||
file_previewer = require'telescope.previewers'.vim_buffer_cat.new,
|
||||
grep_previewer = require'telescope.previewers'.vim_buffer_vimgrep.new,
|
||||
qflist_previewer = require'telescope.previewers'.vim_buffer_qflist.new,
|
||||
|
||||
-- Developer configurations: Not meant for general override
|
||||
buffer_previewer_maker = require'telescope.previewers'.buffer_previewer_maker
|
||||
}
|
||||
})
|
||||
end
|
||||
}
|
||||
38
nvim/m-housh/lua/user/plugin/theme.lua
Executable file
38
nvim/m-housh/lua/user/plugin/theme.lua
Executable file
@@ -0,0 +1,38 @@
|
||||
-- return {
|
||||
-- 'EdenEast/nightfox.nvim',
|
||||
-- lazy = false, -- make sure we load this during startup
|
||||
-- priority = 1000, -- make sure to load this before all other plugins.
|
||||
-- opts = {
|
||||
-- --fox = "terafox", -- change the colorscheme to use terafox
|
||||
-- styles = {
|
||||
-- comments = "italic", -- change style of comments to be italic
|
||||
-- keywords = "bold", -- change style of keywords to be bold
|
||||
-- functions = "italic,bold" -- styles can be a comma separated list
|
||||
-- },
|
||||
-- inverse = {
|
||||
-- match_paren = true, -- inverse the highlighting of match_parens
|
||||
-- },
|
||||
-- colors = {
|
||||
-- red = "#FF0000", -- Override the red color for MAX POWER
|
||||
-- --bg_alt = "#000000",
|
||||
-- },
|
||||
-- hlgroups = {
|
||||
-- TSPunctDelimiter = { fg = "${red}" }, -- Override a highlight group with the color red
|
||||
-- LspCodeLens = { bg = "#000000", style = "italic" },
|
||||
-- }
|
||||
-- },
|
||||
-- }
|
||||
return {
|
||||
"catppuccin/nvim",
|
||||
name = "catppuccin",
|
||||
priority = 1000,
|
||||
opts = {
|
||||
color_overrides = {
|
||||
all = {
|
||||
text = "#ffffff",
|
||||
strings = "#ffffff"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
5
nvim/m-housh/lua/user/plugin/todo-comments.lua
Normal file
5
nvim/m-housh/lua/user/plugin/todo-comments.lua
Normal file
@@ -0,0 +1,5 @@
|
||||
return {
|
||||
"folke/todo-comments.nvim",
|
||||
dependencies = { "nvim-lua/plenary.nvim" },
|
||||
opts = { }
|
||||
}
|
||||
26
nvim/m-housh/lua/user/plugin/toggleterm.lua
Executable file
26
nvim/m-housh/lua/user/plugin/toggleterm.lua
Executable file
@@ -0,0 +1,26 @@
|
||||
return {
|
||||
'akinsho/toggleterm.nvim',
|
||||
enable = true,
|
||||
lazy = true,
|
||||
opts = {
|
||||
size = 20,
|
||||
open_mapping = [[<c-\>]],
|
||||
hide_numbers = true,
|
||||
shade_terminals = true,
|
||||
shading_factor = 2,
|
||||
start_in_insert = true,
|
||||
insert_mappings = true,
|
||||
persist_size = true,
|
||||
direction = "float",
|
||||
close_on_exit = true,
|
||||
shell = vim.o.shell,
|
||||
float_opts = {
|
||||
border = "curved",
|
||||
winblend = 0,
|
||||
highlights = {
|
||||
border = "Normal",
|
||||
background = "Normal",
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
78
nvim/m-housh/lua/user/plugin/treesitter.lua
Executable file
78
nvim/m-housh/lua/user/plugin/treesitter.lua
Executable file
@@ -0,0 +1,78 @@
|
||||
return {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
dependencies = {
|
||||
'nvim-telescope/telescope-fzf-native.nvim',
|
||||
'nvim-treesitter/nvim-treesitter-textobjects',
|
||||
},
|
||||
build = ':TSUpdate',
|
||||
event = { 'BufReadPre', 'BufNewFile' },
|
||||
config = function()
|
||||
require('nvim-treesitter.configs').setup {
|
||||
ensure_installed = {
|
||||
"bash",
|
||||
"cmake",
|
||||
"dockerfile",
|
||||
"go",
|
||||
"hcl",
|
||||
"html",
|
||||
"java",
|
||||
"javascript",
|
||||
"json",
|
||||
"latex",
|
||||
"ledger",
|
||||
"llvm",
|
||||
"lua",
|
||||
"make",
|
||||
"markdown",
|
||||
"python",
|
||||
"swift",
|
||||
"toml",
|
||||
"xml",
|
||||
"yaml"
|
||||
}, -- one of "all", "maintained" (parsers with maintainers), or a list of languages
|
||||
ignore_install = {}, -- List of parsers to ignore installing
|
||||
highlight = {
|
||||
enable = true, -- false will disable the whole extension
|
||||
disable = {} -- list of language that will be disabled
|
||||
},
|
||||
incremental_selection = {
|
||||
enable = true,
|
||||
keymaps = {
|
||||
init_selection = "<CR>",
|
||||
scope_incremental = "<CR>",
|
||||
node_incremental = "<TAB>",
|
||||
node_decremental = "<S-TAB>"
|
||||
}
|
||||
},
|
||||
indent = {enable = true},
|
||||
autopairs = {{enable = true}},
|
||||
textobjects = {
|
||||
select = {
|
||||
enable = true,
|
||||
-- Automatically jump forward to textobj, similar to targets.vim
|
||||
lookahead = true,
|
||||
keymaps = {
|
||||
-- You can use the capture groups defined in textobjects.scm
|
||||
["af"] = "@function.outer",
|
||||
["if"] = "@function.inner",
|
||||
["ac"] = "@class.outer",
|
||||
["ic"] = "@class.inner",
|
||||
["al"] = "@loop.outer",
|
||||
["il"] = "@loop.inner",
|
||||
["ib"] = "@block.inner",
|
||||
["ab"] = "@block.outer",
|
||||
["ir"] = "@parameter.inner",
|
||||
["ar"] = "@parameter.outer",
|
||||
["a="] = "@assignment.outer",
|
||||
["i="] = "@assignment.inner",
|
||||
}
|
||||
}
|
||||
},
|
||||
rainbow = {
|
||||
enable = true,
|
||||
extended_mode = true, -- Highlight also non-parentheses delimiters, boolean or table: lang -> boolean
|
||||
max_file_lines = 2000 -- Do not enable for files with more than specified lines
|
||||
}
|
||||
}
|
||||
end
|
||||
}
|
||||
8
nvim/m-housh/lua/user/plugin/which-key.lua
Executable file
8
nvim/m-housh/lua/user/plugin/which-key.lua
Executable file
@@ -0,0 +1,8 @@
|
||||
return {
|
||||
"folke/which-key.nvim",
|
||||
event = "VeryLazy",
|
||||
init = function()
|
||||
vim.o.timeout = true
|
||||
vim.o.timeoutlen = 300
|
||||
end,
|
||||
}
|
||||
17
nvim/m-housh/lua/user/plugin/wrapping.lua
Executable file
17
nvim/m-housh/lua/user/plugin/wrapping.lua
Executable file
@@ -0,0 +1,17 @@
|
||||
return {
|
||||
"andrewferrier/wrapping.nvim",
|
||||
event = { 'BufReadPre', 'BufNewFile' },
|
||||
opts = {
|
||||
auto_set_mode_filetype_allowlist = {
|
||||
"asciidoc",
|
||||
"gitcommit",
|
||||
"latex",
|
||||
"markdown",
|
||||
"tex",
|
||||
"text"
|
||||
},
|
||||
softener = {
|
||||
markdown = 1.3
|
||||
},
|
||||
},
|
||||
}
|
||||
72
nvim/m-housh/lua/user/plugins.lua
Executable file
72
nvim/m-housh/lua/user/plugins.lua
Executable file
@@ -0,0 +1,72 @@
|
||||
-- Bootstrap Lazy.
|
||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
if not vim.loop.fs_stat(lazypath) then
|
||||
vim.fn.system({
|
||||
"git",
|
||||
"clone",
|
||||
"--filter=blob:none",
|
||||
"https://github.com/folke/lazy.nvim.git",
|
||||
"--branch=stable", -- latest stable release
|
||||
lazypath,
|
||||
})
|
||||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
require("lazy").setup({
|
||||
dev = {
|
||||
path = '~/LocalProjects/plugins',
|
||||
fallback = true
|
||||
},
|
||||
|
||||
-- Theme --
|
||||
{ import = 'user.plugin.theme' },
|
||||
|
||||
-- Completions --
|
||||
{ import = 'user.plugin.cmp' },
|
||||
|
||||
-- Git --
|
||||
{ import = 'user.plugin.lazygit' },
|
||||
|
||||
-- LSP, formatting, etc. --
|
||||
{ 'folke/neodev.nvim', opts = {} },
|
||||
{ import = 'user.plugin.lsp' },
|
||||
{ import = 'user.plugin.lualine' },
|
||||
{ import = 'user.plugin.treesitter' },
|
||||
{ import = 'user.plugin.formatter' },
|
||||
{ import = 'user.plugin.go' },
|
||||
--{'fladson/vim-kitty', lazy=true, },
|
||||
|
||||
-- Navigation --
|
||||
{ import = 'user.plugin.neo-tree' },
|
||||
{ import = 'user.plugin.telescope' },
|
||||
|
||||
-- Utilities --
|
||||
{ import = 'user.plugin.comment' },
|
||||
{ import = 'user.plugin.noice' },
|
||||
{ import = 'user.plugin.swift' },
|
||||
{ import = 'user.plugin.toggleterm' },
|
||||
{ import = 'user.plugin.which-key' },
|
||||
{ import = 'user.plugin.wrapping' },
|
||||
{
|
||||
"folke/zen-mode.nvim",
|
||||
opts = { }
|
||||
},
|
||||
{
|
||||
"christoomey/vim-tmux-navigator",
|
||||
lazy = false,
|
||||
},
|
||||
{
|
||||
"NMAC427/guess-indent.nvim",
|
||||
opts = { }
|
||||
},
|
||||
{ import = 'user.plugin.todo-comments' },
|
||||
{ "NoahTheDuke/vim-just", ft = { "just" } },
|
||||
{
|
||||
'chipsenkbeil/distant.nvim',
|
||||
branch = 'v0.3',
|
||||
config = function()
|
||||
require('distant'):setup()
|
||||
end
|
||||
},
|
||||
|
||||
})
|
||||
11
nvim/lua/settings.lua → nvim/m-housh/lua/user/settings.lua
Normal file → Executable file
11
nvim/lua/settings.lua → nvim/m-housh/lua/user/settings.lua
Normal file → Executable file
@@ -3,9 +3,9 @@ local wo = vim.wo
|
||||
local fn = vim.fn
|
||||
|
||||
vim.cmd.set('inccommand=split')
|
||||
o.updatetime = 300 -- faster completion
|
||||
o.timeoutlen = 400 -- time to wait for a mapped sequence to complete (in milliseconds)
|
||||
o.ttimeoutlen = 0 -- Time in milliseconds to wait for a key code sequence to complete
|
||||
o.updatetime = 500 -- faster completion
|
||||
o.timeoutlen = 800 -- time to wait for a mapped sequence to complete (in milliseconds)
|
||||
o.ttimeoutlen = 300 -- Time in milliseconds to wait for a key code sequence to complete
|
||||
o.backup = false -- creates a backup file
|
||||
o.swapfile = false -- enable/disable swap file creation
|
||||
o.dir = fn.stdpath("data") .. "/swp" -- swap file directory
|
||||
@@ -35,7 +35,7 @@ o.termguicolors = true -- set term gui colors (most terminals support this)
|
||||
o.cursorline = true -- highlight the current line
|
||||
o.scrolloff = 8 -- Minimal number of screen lines to keep above and below the cursor
|
||||
o.sidescrolloff = 5 -- The minimal number of columns to scroll horizontally
|
||||
o.hlsearch = true -- highlight all matches on previous search pattern
|
||||
o.hlsearch = false -- highlight all matches on previous search pattern
|
||||
o.ignorecase = true -- ignore case in search patterns
|
||||
o.foldenable = false -- disable folding; enable with zi
|
||||
o.foldmethod = "expr"
|
||||
@@ -45,7 +45,7 @@ o.listchars = "eol:¬,tab:>·,trail:~,extends:>,precedes:<,space:␣"
|
||||
o.shortmess = o.shortmess + "c" -- prevent "pattern not found" messages
|
||||
wo.colorcolumn = "99999"
|
||||
o.wildmode = "full"
|
||||
o.lazyredraw = true -- do not redraw screen while running macros
|
||||
o.lazyredraw = false -- do not redraw screen while running macros
|
||||
o.grepprg = "rg --hidden --vimgrep --smart-case --"
|
||||
o.completeopt = {"menu", "menuone", "noselect", "noinsert"} -- A comma separated list of options for Insert mode completion
|
||||
o.wildignorecase = true -- When set case is ignored when completing file names and directories
|
||||
@@ -62,3 +62,4 @@ o.wildignore = [[
|
||||
*.swp,.lock,.DS_Store,._*
|
||||
*/tmp/*,*.so,*.swp,*.zip,**/node_modules/**,**/target/**,**.terraform/**"
|
||||
]]
|
||||
o.viminfo="" -- disable viminfo from copying information from current session, for security.
|
||||
9
nvim/m-housh/lua/user/snippets/init.lua
Executable file
9
nvim/m-housh/lua/user/snippets/init.lua
Executable file
@@ -0,0 +1,9 @@
|
||||
local ls = require('luasnip')
|
||||
local s = ls.snippet
|
||||
local sn = ls.snippet_node
|
||||
local ms = ls.multi_snippet
|
||||
local i = ls.insert_node
|
||||
local f = ls.function_node
|
||||
local c = ls.choice_node
|
||||
local t = ls.text_node
|
||||
|
||||
4
nvim/m-housh/lua/user/theme.lua
Executable file
4
nvim/m-housh/lua/user/theme.lua
Executable file
@@ -0,0 +1,4 @@
|
||||
-- Nightfox
|
||||
--require('nightfox').load('terrafox')
|
||||
vim.cmd.colorscheme "catppuccin"
|
||||
|
||||
11
nvim/m-housh/spell/en.utf-8.add
Executable file
11
nvim/m-housh/spell/en.utf-8.add
Executable file
@@ -0,0 +1,11 @@
|
||||
MeasureQuick
|
||||
Housh
|
||||
sealtite
|
||||
Subcool
|
||||
OEM
|
||||
NEC
|
||||
AHJ
|
||||
CFM
|
||||
Hydronic
|
||||
subpar
|
||||
quo
|
||||
BIN
nvim/m-housh/spell/en.utf-8.add.spl
Executable file
BIN
nvim/m-housh/spell/en.utf-8.add.spl
Executable file
Binary file not shown.
@@ -1,4 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# makes files executable
|
||||
test -f "$1" && chmod +x "$1"
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
for file in "$SCREENSHOTS"/*; do
|
||||
rm "$file"
|
||||
done
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/zsh
|
||||
|
||||
# adapted from...
|
||||
# https://github.com/rwxrob/dot/blob/main/scripts/cmt
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Creates an encrypted disk image from a folder
|
||||
|
||||
set -e
|
||||
|
||||
from="$1"
|
||||
to="$2"
|
||||
|
||||
if [ -z "$1" ] || [ -z "$2" ]; then
|
||||
echo "Usage: dmg <fromdir> <todir>"
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
name="$(isosec).dmg"
|
||||
hdiutil create -encryption AES-256 -srcfolder "$from" "$to/$name"
|
||||
@@ -1,9 +1,4 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
date -u '+%Y%m%d%H%M%S'
|
||||
|
||||
isosec() {
|
||||
echo "$(date -u '+%Y%m%d%H%M%S')"
|
||||
}
|
||||
|
||||
isosec
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Lists files and directories, including hidden files.
|
||||
|
||||
ls -lah --color "$@"
|
||||
66
scripts/scripts/mhlink
Executable file
66
scripts/scripts/mhlink
Executable file
@@ -0,0 +1,66 @@
|
||||
#!/usr/bin/env zsh
|
||||
|
||||
# Generates a link to my website / blog.
|
||||
#
|
||||
# Use the -l | --last option to generate a link based on the most
|
||||
# recent page-bundle created (this does not work if the post has been
|
||||
# sitting around / worked on for a bit).
|
||||
#
|
||||
# If no option is passed in then it will open an fzf (fuzzy search)
|
||||
# from the directories.
|
||||
#
|
||||
# Use the --local option to generate a link to a version running on localhost.
|
||||
#
|
||||
# A general usage to generate a link and copy it to the clipboard:
|
||||
#
|
||||
# `$ mhlink --last | pbcopy`
|
||||
#
|
||||
#
|
||||
|
||||
#################### Options ####################
|
||||
lastOpt=
|
||||
localOpt=
|
||||
|
||||
zparseopts -- \
|
||||
{l,-last}=lastOpt \
|
||||
-local=localOpt
|
||||
|
||||
#################### Main ####################
|
||||
|
||||
if [ -d "$GHREPOS/mhoush.com" ]; then
|
||||
root="$$GHREPOS/mhoush.com"
|
||||
else
|
||||
root="$HOME/projects/mhoush.com"
|
||||
fi
|
||||
|
||||
postsPath="$root/content/posts"
|
||||
|
||||
# Abort early if the post path does not exist.
|
||||
[ ! -d $postsPath ] \
|
||||
&& echo "Could not find posts directory" \
|
||||
&& exit 1
|
||||
|
||||
# Get's all the directories / page-bundles.
|
||||
posts=$(find "$postsPath" -mindepth 1 -maxdepth 1 -type d -print0 | \
|
||||
xargs -0 stat -f"%m %Sm %N" | \
|
||||
sort -rn)
|
||||
|
||||
# Use the last directory or choose from a list.
|
||||
[ -n "$lastOpt" ] \
|
||||
&& choice=$(echo $posts | tr '\n' ' ' | cut -w -f6) \
|
||||
|| choice=$(echo $posts | fzf)
|
||||
|
||||
# Delete everything before the last /
|
||||
choice="${choice##*/}"
|
||||
|
||||
# Exit if a choice was not made / found.
|
||||
[ -z $choice ] \
|
||||
&& echo "No selection made." \
|
||||
&& exit 1
|
||||
|
||||
# Set the prefix / website according to the options.
|
||||
[ -n "$localOpt" ] \
|
||||
&& prefix="http://localhost:1313" \
|
||||
|| prefix="https://mhoush.com"
|
||||
|
||||
echo "$prefix/$choice/"
|
||||
@@ -1,12 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Creates a directory then `cd`'s into the directory
|
||||
|
||||
set -e
|
||||
|
||||
dir="$1"
|
||||
|
||||
test -n "${dir}" || echo "usage: mkcd <dir>" && exit 1
|
||||
|
||||
mkdir "${dir}"
|
||||
cd "${dir}"
|
||||
25
scripts/scripts/mkhpadir
Executable file
25
scripts/scripts/mkhpadir
Executable file
@@ -0,0 +1,25 @@
|
||||
#!/bin/zsh
|
||||
|
||||
# Creates a new home performance assesment directory, from the skeleton
|
||||
# directory.
|
||||
|
||||
sdate="$(date '+%Y.%m.%d' | cut -c3-)"
|
||||
customerName="$1"
|
||||
dirName="${sdate}.${customerName}_HPA"
|
||||
skelPath="$SKELETONDIR/hpa"
|
||||
|
||||
#-------------------- MAIN --------------------
|
||||
|
||||
if [ -z $customerName ]; then
|
||||
echo "Customer name should not be empty." && exit 1
|
||||
fi
|
||||
|
||||
if [ ! -d $skelPath ]; then
|
||||
echo "Could not find skeleton directory." && exit 1
|
||||
fi
|
||||
|
||||
if [ ! -d $PROPOSALS ]; then
|
||||
echo "Could not find proposals directory." && exit 1
|
||||
fi
|
||||
|
||||
cp -R "$skelPath" "$PROPOSALS/$dirName"
|
||||
147
scripts/scripts/mktrans
Executable file
147
scripts/scripts/mktrans
Executable file
@@ -0,0 +1,147 @@
|
||||
#!/bin/bash
|
||||
# B9 June 2017
|
||||
|
||||
# mktrans
|
||||
# This is similar to ImageMagick's bg_removal script, but much higher
|
||||
# quality. (It's also faster and simpler to use.)
|
||||
#
|
||||
# For a sample, run these commands:
|
||||
# convert logo: logo.png
|
||||
# mktrans logo.png
|
||||
# display logo-transparent.png
|
||||
|
||||
|
||||
# Fuzz is how far off the background color can be (in percent).
|
||||
# This is important for getting good antialiasing.
|
||||
defaultfuzz=20
|
||||
|
||||
usage() {
|
||||
cat <<EOF
|
||||
|
||||
mktrans: Convert images into shaped transparent pngs by floodfilling
|
||||
the background with transparency (antialiased alpha channel).
|
||||
Unless a different starting pixel is specified, the top left
|
||||
pixel is used as the "background" color to remove and
|
||||
floodfill starts from all four image edges,
|
||||
|
||||
Typical usage:
|
||||
|
||||
mktrans foo.jpg (creates foo-transparent.png)
|
||||
|
||||
Usage: mktrans [-f <fuzz>] [-s|-S] [-p <x>,<y>] [-v] <files ... >
|
||||
|
||||
-f <fuzz>: How loosely to match the background color (default $defaultfuzz%)
|
||||
|
||||
Advanced options:
|
||||
-s: Use speedy antialiasing (much faster, slightly less acurate)
|
||||
-S: Supress antialiasing completely. (Useful for repeated runs)
|
||||
p <x>,<y>: Floodfill from pixel at x,y instead of 0,0
|
||||
-v: Verbose
|
||||
EOF
|
||||
|
||||
# * Side note: This creates an antialiased (blurred) alpha channel
|
||||
# that is also eroded by half a pixel to avoid halos. ImageMagick's
|
||||
# morphological operations don't (yet?) work at the subpixel level,
|
||||
# so I'm blowing up the alpha channel to 200% before eroding. Since
|
||||
# this can be slow on large images, consider using the '-s' option
|
||||
# which uses a faster, lower quality antialiasing.
|
||||
|
||||
# * Running this script on an image that already has transparency will
|
||||
# erode the image due to the antialiasing. Using -S is a workaround,
|
||||
# but is not very satisfactory. Perhaps this script should remove any
|
||||
# existing transparency before manipulating the image and then add it
|
||||
# back in at the end. But then again, how often are people going to
|
||||
# want to do that? The only use I can think of is when using -p.
|
||||
|
||||
# * Because of the previous bug, if you do use -p to fill lots of
|
||||
# lagoons, you'll probably want to use -A at the same time.
|
||||
|
||||
# * Finding the coordinates for -p is a pain. It'd be nice if there was
|
||||
# a -P option which let the user click on a point (or multiple points)
|
||||
# in the image to start the floodfill.
|
||||
|
||||
exit 0
|
||||
}
|
||||
|
||||
fuzz=$defaultfuzz
|
||||
pixelcomma="0,0"
|
||||
pixelplus="+0+0"
|
||||
|
||||
while getopts f:sAShp:v name; do
|
||||
case $name in
|
||||
f) fuzz=$OPTARG
|
||||
;;
|
||||
s) sflag=True
|
||||
;;
|
||||
S|A) noantialias=True
|
||||
;;
|
||||
v) vflag=True
|
||||
;;
|
||||
h) usage
|
||||
;;
|
||||
p) pixelcomma=$OPTARG
|
||||
pixelplus=+${OPTARG%,*}+${OPTARG#*,}
|
||||
pflag=True
|
||||
;;
|
||||
*) usage
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
shift $((OPTIND-1))
|
||||
[[ "$#" != 0 ]] || usage
|
||||
|
||||
|
||||
for filename; do
|
||||
# Get color of 0,0 (top left) pixel
|
||||
color=$(convert "$filename" -format "%[pixel:p{$pixelcomma}]" info:-)
|
||||
if [[ "$color" == *rgba*",0)" ]]; then
|
||||
color="${color%,0)},1)" # Floodfill only works with opaque colors.
|
||||
fi
|
||||
if [[ "$color" == "none" ]]; then
|
||||
echo "Error: $filename: pixel at $pixelcomma is completely transparent. Cannot floodfill." >&2
|
||||
continue
|
||||
fi
|
||||
|
||||
options=""
|
||||
if [ -z "$pflag" ]; then
|
||||
# Add a 1 pixel border so we'll fill from the bottom and sides as well.
|
||||
options+=" -bordercolor $color -border 1 "
|
||||
fi
|
||||
# In a new stack, make a copy of the image
|
||||
options+=" ( +clone "
|
||||
# [copy] floodfill with transparency ("none") starting at top-left
|
||||
options+=" -fuzz $fuzz% -fill none -floodfill $pixelplus $color"
|
||||
# [copy] extract just the transparency (alpha channel)
|
||||
options+=" -alpha extract"
|
||||
|
||||
if [ -z "$noantialias" ]; then
|
||||
if [ -z "$sflag" ]; then
|
||||
# [copy] blow up the alpha channel so we can do sub-pixel morphology
|
||||
options+=" -geometry 200%"
|
||||
# [copy] blur the alpha channel to make it antialiased
|
||||
options+=" -blur 0x0.5"
|
||||
# [copy] shrink the region that is opaque by half a pixel.
|
||||
options+=" -morphology erode square:1"
|
||||
# [copy] scale the alpha channel back to normal size.
|
||||
options+=" -geometry 50%"
|
||||
else # sflag: speedy antialias
|
||||
# [copy] blur the alpha channel to make it antialiased
|
||||
options+=" -blur 0x1"
|
||||
# [copy] only antialias inside the figure (<50% opacity becomes 0%)
|
||||
options+=" -level 50%,100%"
|
||||
fi
|
||||
fi
|
||||
# [copy] end the stack.
|
||||
options+=" ) "
|
||||
# Compose the original image and the copy's alpha channel.
|
||||
options+=" -compose CopyOpacity -composite"
|
||||
if [ -z "$pflag" ]; then
|
||||
# Remove the 1 pixel border we added
|
||||
options+=" -shave 1"
|
||||
fi
|
||||
|
||||
[ "$vflag" ] && echo convert "$filename" $options "${filename%.*}-transparent.png"
|
||||
|
||||
convert "$filename" $options "${filename%.*}-transparent.png"
|
||||
done
|
||||
@@ -2,10 +2,10 @@
|
||||
|
||||
set -e
|
||||
|
||||
# Creates a new `zet` inside the House Call Pro `Zettlekasten`
|
||||
# Creates a new `zet` inside the NCI Summit `Zettlekasten`
|
||||
|
||||
_main() {
|
||||
(ZETDIR="$HOME/Documents/NCISummit" eval zet "$@")
|
||||
ZETDIR="$HOME/Documents/NCISummit" eval zet "$@"
|
||||
}
|
||||
|
||||
_main "$@"
|
||||
|
||||
@@ -1,26 +1,98 @@
|
||||
#!/bin/sh
|
||||
#!/bin/zsh
|
||||
|
||||
# Creates a new executable file in the $SCRIPTS directory.
|
||||
# Creates a new executable file.
|
||||
|
||||
# check if the scripts path / environment variable is set
|
||||
test ! -n "${SCRIPTS}" && echo "SCRIPTS not set" && exit 1;
|
||||
declare -a localOpt
|
||||
declare -a functionOpt
|
||||
declare -a shellOpt=("zsh")
|
||||
declare -a helpOpt
|
||||
DEBUG="$(env | grep DEBUG)"
|
||||
|
||||
# fallback to check if the name arg ${1} exists, if not show usage text.
|
||||
test ! -n "${1}" && \
|
||||
echo "usage: newscript <name> <optional: shell>" && \
|
||||
echo "shell defaults to sh if not supplied" && \
|
||||
exit 1;
|
||||
zparseopts -D -K -- \
|
||||
{l,-local}+:=localOpt \
|
||||
{f,-function}+:=functionOpt \
|
||||
{s,-shell}+=shellOpt \
|
||||
{h,-help}=helpOpt
|
||||
|
||||
path="${SCRIPTS}/${1}"
|
||||
shell="${2:-sh}"
|
||||
shell=${shellOpt[-1]}
|
||||
localPath=${localOpt[-1]}
|
||||
|
||||
if [ -e "${path}" ]; then
|
||||
echo "Already exists try:"
|
||||
echo "vi ${path}"
|
||||
exit 1
|
||||
#-------------------- Helpers --------------------
|
||||
function usage() {
|
||||
cat << EOF
|
||||
newx: Create new executable (script, function, or local script).
|
||||
|
||||
Typical usage:
|
||||
|
||||
newx foo (creates new script named 'foo')
|
||||
|
||||
Usage: newx [-l <name>] [-f <name>] [-s <shell>]
|
||||
|
||||
-l | --local <name>: Create a script in current directory.
|
||||
-f | --function <name>: Create a function.
|
||||
|
||||
Advanced options:
|
||||
-s | --shell <shell>: Customize the shell for the script.
|
||||
EOF
|
||||
|
||||
}
|
||||
|
||||
function debug_print() {
|
||||
[ -n "$DEBUG" ] \
|
||||
&& echo "DEBUG: $1"
|
||||
}
|
||||
|
||||
function create_script() {
|
||||
|
||||
local script_path="$1"
|
||||
|
||||
debug_print "shell: $shell"
|
||||
debug_print "script-path: $script_path"
|
||||
|
||||
printf "#!/bin/%s\n\n" "${shell}" > "${script_path}"
|
||||
chmod +x "${script_path}"
|
||||
exec "${EDITOR}" +2 "${script_path}"
|
||||
}
|
||||
|
||||
function parse_local_path() {
|
||||
if [ -z "$localPath" ]; then
|
||||
local prefix="${1[1]}${1[2]}"
|
||||
debug_print "prefix: $prefix"
|
||||
[ "$prefix" = "./" ] && localPath="$1"
|
||||
fi
|
||||
}
|
||||
|
||||
#-------------------- Main --------------------
|
||||
|
||||
debug_print "first-arg: $1"
|
||||
|
||||
if [ -n "${helpOpt}" ]; then
|
||||
usage && exit 0
|
||||
fi
|
||||
|
||||
printf "#!/bin/%s\n\n" "${shell}" > "${path}"
|
||||
chmod +x "${path}"
|
||||
exec vim +2 "${path}"
|
||||
if [ -n "${functionOpt[-1]}" ]; then
|
||||
debug_print "function-opt: $functionOpt"
|
||||
|
||||
[ ! -d "$ZFUNCDIR" ] \
|
||||
&& echo "Function directory not found" \
|
||||
&& return 1
|
||||
|
||||
create_script "$ZFUNCDIR/${functionOpt[-1]}"
|
||||
return 0
|
||||
fi
|
||||
|
||||
parse_local_path "$1"
|
||||
|
||||
if [ -n "$localPath" ]; then
|
||||
debug_print "local: $localPath"
|
||||
create_script "$localPath"
|
||||
return 0
|
||||
fi
|
||||
|
||||
debug_print "scripts: $1"
|
||||
[ ! -d "$SCRIPTS" ] \
|
||||
&& echo "Scripts directory not found. Set the SCRIPTS environment variable." \
|
||||
&& return 1
|
||||
|
||||
create_script "${SCRIPTS}/$1"
|
||||
|
||||
|
||||
22
scripts/scripts/nvims
Executable file
22
scripts/scripts/nvims
Executable file
@@ -0,0 +1,22 @@
|
||||
#!/bin/zsh
|
||||
|
||||
# Change / select an nvim configuration.
|
||||
#
|
||||
# The configuration's need to be in the ~/.config folder
|
||||
# to work properly.
|
||||
#
|
||||
main() {
|
||||
items=("default" "m-housh" "kickstart" "lazy")
|
||||
config=$(printf "%s\n" "${items[@]}" \
|
||||
| fzf --prompt=" Neovim Config ➣ " --height=50% --layout=reverse --border --exit-0
|
||||
)
|
||||
if [ -z "$config" ]; then
|
||||
echo "Nothing selected"
|
||||
return 0
|
||||
elif [ $config == "default" ]; then
|
||||
config=""
|
||||
fi
|
||||
unset VIMINIT && unset MYVIMRC && export NVIM_APPNAME=$config && nvim $@
|
||||
}
|
||||
|
||||
main "$@"
|
||||
94
scripts/scripts/post-to-facebook
Executable file
94
scripts/scripts/post-to-facebook
Executable file
@@ -0,0 +1,94 @@
|
||||
#!/usr/bin/env zsh
|
||||
|
||||
# Posts to facebook group and personal page.
|
||||
#
|
||||
# Typical usage would be to generate a link to the latest
|
||||
# blog post and send to facebook:
|
||||
#
|
||||
# `$ mhlink --last | xargs -I {} post-to-facebook -m <optional-message> {}`
|
||||
#
|
||||
#
|
||||
|
||||
#################### Options ####################
|
||||
declare -a message
|
||||
|
||||
zparseopts -D -F -K -- \
|
||||
{a,-all}=locationOpt \
|
||||
{m,-message}+:=message \
|
||||
{o,-offline}=offline \
|
||||
{p,-personal}=locationOpt \
|
||||
{h,-help}=help
|
||||
|
||||
baseUrl="https://graph.facebook.com/v18.0"
|
||||
link=$1
|
||||
message="${message[-1]}"
|
||||
token=$(cat < "$HOME/.config/facebook-bot/access-token.txt")
|
||||
|
||||
#################### Usage ####################
|
||||
function usage() {
|
||||
cat <<EOF
|
||||
|
||||
post-to-facebook: Create posts on facebook using. This accepts
|
||||
a link as an argument and a message option. Either the message
|
||||
or the link (or both) needs to be supplied.
|
||||
|
||||
Typical usage:
|
||||
|
||||
post-to-facebook --message "Some message" "https://mhouhs.com/<post>"
|
||||
|
||||
Usage: post-to-facebook [-a] [-m <message>] [-o] [-p] <link>
|
||||
|
||||
-a | --all: Send the post to the group and personal pages.
|
||||
-m | --message: The optional message.
|
||||
-o | --offline: Do not send the request(s), but print them.
|
||||
-p | --personal: Send to personal page only.
|
||||
-h | --help: Show the usage.
|
||||
|
||||
The -a or -p options are optional, if neither is supplied then it will
|
||||
only be posted to the group.
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
#################### Helpers ####################
|
||||
|
||||
function post() {
|
||||
local url=$1
|
||||
if [ -n "$offline" ]; then
|
||||
echo "Offline mode, request not being sent."
|
||||
http --offline --ignore-stdin POST "$url" access_token=="$token" \
|
||||
link="$link" \
|
||||
message="$message"
|
||||
else
|
||||
http --ignore-stdin POST "$url" access_token=="$token" \
|
||||
link="$link" \
|
||||
message="$message"
|
||||
fi
|
||||
}
|
||||
|
||||
function post_to_group() {
|
||||
group=$(cat < "$HOME/.config/facebook-bot/group.txt")
|
||||
post "$baseUrl/$group/feed"
|
||||
}
|
||||
|
||||
function post_to_personal() {
|
||||
post "$baseUrl/me/feed"
|
||||
}
|
||||
|
||||
#################### Main ####################
|
||||
|
||||
[ -n "$help" ] && usage && exit 0
|
||||
|
||||
[ -z "$link" ] && [ -z "$message" ] \
|
||||
&& echo "Link or message is required." \
|
||||
&& exit 1
|
||||
|
||||
[ "$locationOpt" = "-p" ] || [ "$locationOpt" = "--personal" ] \
|
||||
&& post_to_personal \
|
||||
&& exit 0
|
||||
|
||||
[ "$locationOpt" = "-a" ] || [ "$locationOpt" = "--all" ] \
|
||||
&& post_to_personal
|
||||
|
||||
post_to_group
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
#!/bin/zsh
|
||||
|
||||
# Move into the proposals directory
|
||||
cd "$HOME/Library/Mobile Documents/com~apple~CloudDocs/Work/Proposals"
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
set -e
|
||||
|
||||
# Creates a new `zet` inside the House Call Pro `Zettlekasten`
|
||||
# Creates a new `zet` inside the private `Zettlekasten`
|
||||
|
||||
_main() {
|
||||
(ZETDIR="$GHREPOS/private-zets" eval zet "$@")
|
||||
|
||||
85
scripts/scripts/tmux-sessionator
Executable file
85
scripts/scripts/tmux-sessionator
Executable file
@@ -0,0 +1,85 @@
|
||||
#!/usr/bin/env zsh
|
||||
|
||||
# Adapted from: https://github.com/ThePrimeagen/.dotfiles/blob/master/bin/.local/scripts/tmux-sessionizer
|
||||
|
||||
DEBUG=
|
||||
|
||||
#################### Options ####################
|
||||
|
||||
declare -a paths=()
|
||||
declare chooseOpt=
|
||||
|
||||
zparseopts -D -- \
|
||||
{c,-choose}=chooseOpt
|
||||
|
||||
#################### Helpers ####################
|
||||
|
||||
function debug_print {
|
||||
if [ -n "$DEBUG" ]; then
|
||||
echo "DEBUG: $1"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
function path_prepend() {
|
||||
declare arg
|
||||
for arg in "$@"; do
|
||||
debug_print "arg: $arg"
|
||||
[ -d $arg ] && debug_print "arg is a directory" && paths=($arg $paths) \
|
||||
|| debug_print "arg is not a directory"
|
||||
done
|
||||
}
|
||||
|
||||
function setup_fuzzy_find_paths() {
|
||||
local path="$TMUX_SESSIONATOR_PATH"
|
||||
debug_print "path: $path"
|
||||
for arg in ${(s[:])path}; do
|
||||
path_prepend "$arg"
|
||||
done
|
||||
debug_print "paths: $paths"
|
||||
}
|
||||
|
||||
#################### MAIN ####################
|
||||
|
||||
declare choose="${chooseOpt[-1]}"
|
||||
|
||||
if [[ -n $choose ]]; then
|
||||
debug_print "Choose from existing."
|
||||
selected=$(
|
||||
tmux list-sessions -F \#S | gum filter \
|
||||
--placeholder "Pick a session..."
|
||||
)
|
||||
elif [[ "$#" -eq 1 ]]; then
|
||||
debug_print "Using existing session: $1"
|
||||
selected=$1
|
||||
else
|
||||
setup_fuzzy_find_paths
|
||||
debug_print "fuzzy find paths: ${paths}"
|
||||
|
||||
if [ -n "$DEBUG" ]; then
|
||||
debug_print "Exiting because in debug mode."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
selected=$(find ${paths} -mindepth 1 -maxdepth 1 -type d | fzf)
|
||||
fi
|
||||
|
||||
if [[ -z $selected ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
selected_name=$(basename "$selected" | tr . _)
|
||||
tmux_running=$(pgrep tmux)
|
||||
|
||||
if [[ -z $TMUX ]] && [[ -z $tmux_running ]]; then
|
||||
tmux new-session -s "$selected_name" -c "$selected"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Create a session if it doesn't exist.
|
||||
if ! tmux has-session -t "$selected_name" 2> /dev/null; then
|
||||
tmux new-session -ds "$selected_name" -c "$selected"
|
||||
fi
|
||||
|
||||
[ -z $TMUX ] && tmux attach -t "$selected_name" \
|
||||
|| tmux switch-client -t "$selected_name"
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# opens a shell command in vi
|
||||
cmd=$(command -v $1)
|
||||
test -n "$cmd" && vi "$cmd"
|
||||
BIN
skeleton/hpa/Questions.numbers
Executable file
BIN
skeleton/hpa/Questions.numbers
Executable file
Binary file not shown.
BIN
skeleton/hpa/Report.pages
Executable file
BIN
skeleton/hpa/Report.pages
Executable file
Binary file not shown.
68
skhd/skhdrc
Normal file
68
skhd/skhdrc
Normal file
@@ -0,0 +1,68 @@
|
||||
# This starting point was configured from: https://www.joshmedeski.com/posts/blazing-fast-window-management-on-macos/
|
||||
|
||||
# focus window
|
||||
alt - h : yabai -m window --focus west
|
||||
alt - j : yabai -m window --focus south
|
||||
alt - k : yabai -m window --focus north
|
||||
alt - l : yabai -m window --focus east
|
||||
|
||||
# swap managed window
|
||||
shift + alt - h : yabai -m window --swap west
|
||||
shift + alt - j : yabai -m window --swap south
|
||||
shift + alt - k : yabai -m window --swap north
|
||||
shift + alt - l : yabai -m window --swap east
|
||||
|
||||
# move managed window
|
||||
shift + alt + ctrl - h : yabai -m window --warp west
|
||||
shift + alt + ctrl - j : yabai -m window --warp south
|
||||
shift + alt + ctrl - k : yabai -m window --warp north
|
||||
shift + alt + ctrl - l : yabai -m window --warp east
|
||||
|
||||
# rotate tree
|
||||
alt - r : yabai -m space --rotate 90
|
||||
|
||||
# toggle window fullscreen zoom
|
||||
alt - f : yabai -m window --toggle zoom-fullscreen
|
||||
|
||||
# alt - s : yabai -m window --toggle
|
||||
alt - s : yabai -m window --toggle sticky;\
|
||||
yabai -m window --toggle topmost;\
|
||||
yabai -m window --toggle pip
|
||||
|
||||
# toggle padding and gap
|
||||
alt - g : yabai -m space --toggle padding; yabai -m space --toggle gap
|
||||
|
||||
# float / unfloat window and center on screen
|
||||
alt - t : yabai -m window --toggle float;\
|
||||
yabai -m window --grid 4:4:1:1:2:2
|
||||
|
||||
# toggle window split type
|
||||
alt - e : yabai -m window --toggle split
|
||||
|
||||
# balance size of windows
|
||||
shift + alt - 0 : yabai -m space --balance
|
||||
|
||||
# move window and focus desktop
|
||||
shift + alt - 1 : yabai -m window --space 1; yabai -m space --focus 1
|
||||
shift + alt - 2 : yabai -m window --space 2; yabai -m space --focus 2
|
||||
shift + alt - 3 : yabai -m window --space 3; yabai -m space --focus 3
|
||||
shift + alt - 4 : yabai -m window --space 4; yabai -m space --focus 4
|
||||
shift + alt - 5 : yabai -m window --space 5; yabai -m space --focus 5
|
||||
shift + alt - 6 : yabai -m window --space 6; yabai -m space --focus 6
|
||||
shift + alt - 7 : yabai -m window --space 7; yabai -m space --focus 7
|
||||
shift + alt - 8 : yabai -m window --space 8; yabai -m space --focus 8
|
||||
shift + alt - 9 : yabai -m window --space 9; yabai -m space --focus 9
|
||||
|
||||
|
||||
# create desktop, move window and follow focus - uses jq for parsing json (brew install jq)
|
||||
shift + alt - n : yabai -m space --create && \
|
||||
index="$(yabai -m query --spaces --display | jq 'map(select(."native-fullscreen" == 0))[-1].index')" && \
|
||||
yabai -m window --space "${index}" && \
|
||||
yabai -m space --focus "${index}"
|
||||
|
||||
# fast focus desktop
|
||||
alt - tab : yabai -m space --focus recent
|
||||
|
||||
# send window to monitor and follow focus
|
||||
shift + alt - n : yabai -m window --display next; yabai -m display --focus next
|
||||
shift + alt - p : yabai -m window --display previous; yabai -m display --focus previous
|
||||
63
ssh/config
Normal file
63
ssh/config
Normal file
@@ -0,0 +1,63 @@
|
||||
$ANSIBLE_VAULT;1.1;AES256
|
||||
39666435313433363934613839323232343930306538313561363334343230643736363733383262
|
||||
3138386437383132393037643561346235653464653363390a356431646266316263393433366434
|
||||
66633066383465306338613433616237373963323463323538316437666262653461303133643763
|
||||
3863366261376239320a306135616533616336343935613164636231313135366561353531646538
|
||||
63376539383637343565346465633138653431356363333463656365393430303338393636363866
|
||||
63313732373238656664376132376334376634303964616537613638363261623832386663393831
|
||||
62326332656136613433653338383339333232376431303931343930396464656566633537306563
|
||||
64323733306164386639613333333935623534613065363630363030613236336164373561636362
|
||||
64613339323637333962383163376263343438373232373066623738373762616137323731353738
|
||||
38613861313632346566376436356634383033646563333766373336376364373333306264383835
|
||||
64316138336133666361306562343566353439653630306632346633616531663535353133623966
|
||||
39376234646136656561393738663836316233633866313365653739346261353130353861636534
|
||||
39393462356231326661303636343761386466336438346331636639626636653064346164623465
|
||||
30383034323166336330643461313535643931313038363766653736303930363865613566393537
|
||||
66326332643163656161383930396636306639333062323439366666333131653866633862663539
|
||||
32383131333936306130396537656662663835643537333734376431643466663333636262333233
|
||||
34343337653234656465626530646132646433656261623637323363326462636232313162313638
|
||||
38373835363037396566643635343734643835323833663065303363373963363634363338343861
|
||||
62623363663636616663633862333730326432633130333666353365313930323036343531666634
|
||||
32333136616532336637366662613333313030306339393331646132353437366136656234643466
|
||||
39326364313263326536613530393164366436643666343136316163383833366662383764323963
|
||||
61373863343663666337643464616164653264396230623735346237376633313736626261656232
|
||||
38616566356633313261373032386263623861653165646634653731653336313435346234646366
|
||||
31396661313330613963336633366165396534393434333737336166363237653338323035346237
|
||||
36633133636438343137323136383364336338353534373134313337626665353163626630316463
|
||||
64396363396137653566356236623961656535323962616162363337363038396566623437626130
|
||||
30343766373532633437333663663637316132363835383230303631393063396431326161633739
|
||||
65323762333337656362653930386666353664356234643335613566656637353530366534343032
|
||||
66303231653466323635353836636539356638663035636339383362643535626463643061653135
|
||||
64323261353135373563333263346361376538653537363166336432313134373139383235396463
|
||||
66376665353063633262356333343639333435346463306235663031333232653430396437643662
|
||||
39303938616634383733303630343430616231353630656361336466316162306231333833623832
|
||||
36386163323239353263383361343666333966323532653131393064633531363738373966373233
|
||||
35313130393261353862306565353564323338343366313130323162396164646437303534633530
|
||||
38353338343466623738326534333735316338626239316666363935336365633332323238333836
|
||||
39393462313962663265663531336365396534643531383936316261623035616564306566376464
|
||||
38353031396432383165316233303934666639313733383536323161343063393161313264633466
|
||||
38373563396637656638326563353536653130363362623366646137326164393165313734396533
|
||||
35373965613261633934633265373836326631626239623463383863626163636665343364356132
|
||||
61363039313135353535326635393161626262663062303035623136313738353030336132636231
|
||||
66323435386534333233333465616333633261613762643535336561323736613230613034366534
|
||||
62343433333237333266353765383631333831316164316164323932646463353232336432663335
|
||||
61346135356436616339353162306131653735376535393865613738326130326130363830623036
|
||||
65663764346134373566613436316666623637323035346630666362633337316532366261326135
|
||||
30353135373466376434333561396163313131363036376233616137646463373761633235393138
|
||||
38333964643238656539666332656236363734663937386338626235333032333065636338353236
|
||||
30396238636231643131636465393966346236383235336162616632626336653562643566353337
|
||||
35616234383331306162656536303934393834313933653735633263653364303362323031323939
|
||||
33393261306565323333626263356363613332376434643635623864373839356536393234656534
|
||||
30636338643963343032333464633837626164663236616466316337383364633866326333313635
|
||||
38653433366266323135326332613335636664363163326334366339656139623738333738656262
|
||||
37323532653263393061323631656137656433353231613363633763353830656235383561366233
|
||||
36393963366537313731303537313031353730336563343561653962623464386338396538313937
|
||||
34383135356337626435333332663035366665633430613531313132376237363339373031376564
|
||||
37646461633431646532663230626161303661353464373263363336303661353565383864626266
|
||||
37643465323063313439366434303338363036623765343838383231663937396665343464303839
|
||||
64373630643764663431316364656464626133323232383364306565343066336162656236366562
|
||||
36323763343138613763393964386664303634303136376531666139666435353361376135666235
|
||||
35646463383433333130366339643664373665396135366166643837373037303333353562613637
|
||||
34303831323162663933616262316566313064376131626266383235336663353233656634386539
|
||||
34633965633366336538313739383962326565646432633234653563653534306261323133363865
|
||||
3730626461336461613339656364633033666234633264636465
|
||||
@@ -1,83 +0,0 @@
|
||||
# Some tweaks to the status line
|
||||
set -g status-right "%H:%M"
|
||||
set -g window-status-current-style "underscore"
|
||||
|
||||
# If running inside tmux ($TMUX is set), then change the status line to red
|
||||
%if #{TMUX}
|
||||
set -g status-bg red
|
||||
%endif
|
||||
|
||||
# Enable RGB colour if running in xterm(1)
|
||||
set-option -sa terminal-overrides ",xterm*:Tc"
|
||||
|
||||
# Change the default $TERM to tmux-256color
|
||||
set -g default-terminal "xterm-256color"
|
||||
|
||||
# Change windows to start with an index of 1 instead of 0
|
||||
set -g base-index 1
|
||||
|
||||
# Change panes to start with an index of 1 instead of 0
|
||||
setw -g pane-base-index 1
|
||||
|
||||
# No bells at all
|
||||
set -g bell-action none
|
||||
|
||||
# Keep windows around after they exit
|
||||
set -g remain-on-exit on
|
||||
|
||||
# Set indexes to start at 1, instead of 0.
|
||||
set -g base-index 1
|
||||
|
||||
# Change the prefix key to C-a
|
||||
set -g prefix C-a
|
||||
unbind C-b
|
||||
bind C-a send-prefix
|
||||
|
||||
# Turn the mouse on, but without copy mode dragging
|
||||
set -g mouse on
|
||||
unbind -n MouseDrag1Pane
|
||||
unbind -Tcopy-mode MouseDrag1Pane
|
||||
|
||||
# A key to toggle between smallest and largest sizes if a window is visible in
|
||||
# multiple places
|
||||
bind F set -w window-size
|
||||
|
||||
# Keys to toggle monitoring activity in a window and the synchronize-panes option
|
||||
bind m set monitor-activity
|
||||
bind y set synchronize-panes\; display 'synchronize-panes #{?synchronize-panes,on,off}'
|
||||
|
||||
# Better split pane
|
||||
bind | splitw -h
|
||||
bind - splitw -v
|
||||
|
||||
# Use Alt-arrow keys to navigate panes
|
||||
bind -n M-Left select-pane -L
|
||||
bind -n M-Right select-pane -R
|
||||
bind -n M-Up select-pane -U
|
||||
bind -n M-Down select-pane -D
|
||||
bind -T prefix j select-pane -D
|
||||
bind -T prefix k select-pane -U
|
||||
bind -T prefix h select-pane -L
|
||||
bind -T prefix l select-pane -R
|
||||
|
||||
# Use Shift-arrow keys to navigate windows.
|
||||
bind -n S-Left previous-window
|
||||
bind -n S-Right next-window
|
||||
|
||||
|
||||
# reload new changes
|
||||
bind-key R source-file ~/.tmux.conf\; \display-message "source-file done"
|
||||
|
||||
|
||||
# Create a single default session - because a session is created here, tmux
|
||||
# should be started with "tmux attach" rather than "tmux new"
|
||||
#new -d -s0 -nirssi 'exec irssi'
|
||||
#set -t0:0 monitor-activity on
|
||||
#set -t0:0 aggressive-resize on
|
||||
#neww -d -ntodo 'exec emacs ~/TODO'
|
||||
#setw -t0:1 aggressive-resize on
|
||||
#neww -d -nmutt 'exec mutt'
|
||||
#setw -t0:2 aggressive-resize on
|
||||
#neww -d
|
||||
#neww -d
|
||||
#neww -d
|
||||
201
tmux/tmux-powerline/config.sh
Normal file
201
tmux/tmux-powerline/config.sh
Normal file
@@ -0,0 +1,201 @@
|
||||
# Default configuration file for tmux-powerline.
|
||||
# Modeline {
|
||||
# vi: foldmarker={,} foldmethod=marker foldlevel=0 tabstop=4 filetype=sh
|
||||
# }
|
||||
|
||||
# General {
|
||||
# Show which segment fails and its exit code.
|
||||
export TMUX_POWERLINE_DEBUG_MODE_ENABLED="false"
|
||||
# Use patched font symbols.
|
||||
export TMUX_POWERLINE_PATCHED_FONT_IN_USE="true"
|
||||
|
||||
# The theme to use.
|
||||
export TMUX_POWERLINE_THEME="mhoush"
|
||||
# Overlay directory to look for themes. There you can put your own themes outside the repo. Fallback will still be the "themes" directory in the repo.
|
||||
export TMUX_POWERLINE_DIR_USER_THEMES="${XDG_CONFIG_HOME:-$HOME/.config}/tmux-powerline/themes"
|
||||
# Overlay directory to look for segments. There you can put your own segments outside the repo. Fallback will still be the "segments" directory in the repo.
|
||||
export TMUX_POWERLINE_DIR_USER_SEGMENTS="${XDG_CONFIG_HOME:-$HOME/.config}/tmux-powerline/segments"
|
||||
|
||||
# The initial visibility of the status bar. Can be {"on, off"}.
|
||||
export TMUX_POWERLINE_STATUS_VISIBILITY="on"
|
||||
# The status bar refresh interval in seconds.
|
||||
# Note that events that force-refresh the status bar (such as window renaming) will ignore this.
|
||||
export TMUX_POWERLINE_STATUS_INTERVAL="1"
|
||||
# The location of the window list. Can be {"absolute-centre, centre, left, right"}.
|
||||
# Note that "absolute-centre" is only supported on `tmux -V` >= 3.2.
|
||||
export TMUX_POWERLINE_STATUS_JUSTIFICATION="centre"
|
||||
|
||||
# The maximum length of the left status bar.
|
||||
export TMUX_POWERLINE_STATUS_LEFT_LENGTH="60"
|
||||
# The maximum length of the right status bar.
|
||||
export TMUX_POWERLINE_STATUS_RIGHT_LENGTH="90"
|
||||
|
||||
# Uncomment these if you want to enable tmux bindings for muting (hiding) one of the status bars.
|
||||
# E.g. this example binding would mute the left status bar when pressing <prefix> followed by Ctrl-[
|
||||
#export TMUX_POWERLINE_MUTE_LEFT_KEYBINDING="C-["
|
||||
#export TMUX_POWERLINE_MUTE_RIGHT_KEYBINDING="C-]"
|
||||
# }
|
||||
|
||||
# battery.sh {
|
||||
# How to display battery remaining. Can be {percentage, cute}.
|
||||
export TMUX_POWERLINE_SEG_BATTERY_TYPE="percentage"
|
||||
# How may hearts to show if cute indicators are used.
|
||||
export TMUX_POWERLINE_SEG_BATTERY_NUM_HEARTS="5"
|
||||
# }
|
||||
|
||||
# date.sh {
|
||||
# date(1) format for the date. If you don't, for some reason, like ISO 8601 format you might want to have "%D" or "%m/%d/%Y".
|
||||
export TMUX_POWERLINE_SEG_DATE_FORMAT="%F"
|
||||
# }
|
||||
|
||||
# disk_usage.sh {
|
||||
# Filesystem to retrieve disk space information. Any from the filesystems available (run "df | awk '{print }'" to check them).
|
||||
export TMUX_POWERLINE_SEG_DISK_USAGE_FILESYSTEM="/"
|
||||
# }
|
||||
|
||||
# earthquake.sh {
|
||||
# The data provider to use. Currently only "goo" is supported.
|
||||
export TMUX_POWERLINE_SEG_EARTHQUAKE_DATA_PROVIDER="goo"
|
||||
# How often to update the earthquake data in seconds.
|
||||
# Note: This is not an early warning detector, use this
|
||||
# to be informed about recent earthquake magnitudes in your
|
||||
# area. If this is too often, goo may decide to ban you form
|
||||
# their server
|
||||
export TMUX_POWERLINE_SEG_EARTHQUAKE_UPDATE_PERIOD="600"
|
||||
# Only display information when earthquakes are within this many minutes
|
||||
export TMUX_POWERLINE_SEG_EARTHQUAKE_ALERT_TIME_WINDOW="60"
|
||||
# Display time with this format
|
||||
export TMUX_POWERLINE_SEG_EARTHQUAKE_TIME_FORMAT='(%H:%M)'
|
||||
# Display only if magnitude is greater or equal to this number
|
||||
export TMUX_POWERLINE_SEG_EARTHQUAKE_MIN_MAGNITUDE="3"
|
||||
# }
|
||||
|
||||
# hostname.sh {
|
||||
# Use short or long format for the hostname. Can be {"short, long"}.
|
||||
export TMUX_POWERLINE_SEG_HOSTNAME_FORMAT="short"
|
||||
# }
|
||||
|
||||
# macos_notification_count.sh {
|
||||
# App ids to query in notification center, separated by space
|
||||
# To get the app id that is associated with a specific app run:
|
||||
# sqlite3 -list "/var/folders/f1/rvv29ht91w15bk13tdcd339m0000gn/0//com.apple.notificationcenter/db/db" 'select * from app_info'
|
||||
# The first column contains the app ids
|
||||
# "5" is the app id of Messages.app
|
||||
# Only "banner" notifications are supported (see settings in the notification center)
|
||||
export TMUX_POWERLINE_SEG_MACOS_NOTIFICATION_COUNT_APPIDS="5"
|
||||
# Notification symbol
|
||||
export TMUX_POWERLINE_SEG_MACOS_NOTIFICATION_COUNT_CHAR="💬"
|
||||
# }
|
||||
|
||||
# mailcount.sh {
|
||||
# Mailbox type to use. Can be any of {apple_mail, gmail, maildir, mbox, mailcheck}
|
||||
export TMUX_POWERLINE_SEG_MAILCOUNT_MAILBOX_TYPE=""
|
||||
|
||||
## Gmail
|
||||
# Enter your Gmail username here WITH OUT @gmail.com.( OR @domain)
|
||||
export TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_USERNAME=""
|
||||
# Google password. Recomenned to use application specific password (https://accounts.google.com/b/0/IssuedAuthSubTokens) Leave this empty to get password from OS X keychain.
|
||||
# For OSX users : MAKE SURE that you add a key to the keychain in the format as follows
|
||||
# Keychain Item name : http://<value-you-fill-in-server-variable-below>
|
||||
# Account name : <username-below>@<server-below>
|
||||
# Password : Your password ( Once again, try to use 2 step-verification and application-specific password)
|
||||
# See http://support.google.com/accounts/bin/answer.py?hl=en&answer=185833 for more info.
|
||||
export TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_PASSWORD=""
|
||||
# Domain name that will complete your email. For normal GMail users it probably is "gmail.com but can be "foo.tld" for Google Apps users.
|
||||
export TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_SERVER="gmail.com"
|
||||
# How often in minutes to check for new mails.
|
||||
export TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_INTERVAL="5"
|
||||
|
||||
## Maildir
|
||||
# Path to the maildir to check.
|
||||
export TMUX_POWERLINE_SEG_MAILCOUNT_MAILDIR_INBOX="/Users/michael/.mail/inbox/new"
|
||||
|
||||
## mbox
|
||||
# Path to the mbox to check.
|
||||
export TMUX_POWERLINE_SEG_MAILCOUNT_MBOX_INBOX=""
|
||||
|
||||
## mailcheck
|
||||
# Optional path to mailcheckrc
|
||||
export TMUX_POWERLINE_SEG_MAILCOUNT_MAILCHECKRC="/Users/michael/.mailcheckrc"
|
||||
# }
|
||||
|
||||
# now_playing.sh {
|
||||
# Music player to use. Can be any of {audacious, banshee, cmus, itunes, lastfm, mocp, mpd, mpd_simple, pithos, playerctl, rdio, rhythmbox, spotify, spotify_wine, file}.
|
||||
export TMUX_POWERLINE_SEG_NOW_PLAYING_MUSIC_PLAYER="spotify"
|
||||
# File to be read in case the song is being read from a file
|
||||
export TMUX_POWERLINE_SEG_NOW_PLAYING_FILE_NAME=""
|
||||
# Maximum output length.
|
||||
export TMUX_POWERLINE_SEG_NOW_PLAYING_MAX_LEN="40"
|
||||
# How to handle too long strings. Can be {trim, roll}.
|
||||
export TMUX_POWERLINE_SEG_NOW_PLAYING_TRIM_METHOD="trim"
|
||||
# Charcters per second to roll if rolling trim method is used.
|
||||
export TMUX_POWERLINE_SEG_NOW_PLAYING_ROLL_SPEED="2"
|
||||
|
||||
# Hostname for MPD server in the format "[password@]host"
|
||||
export TMUX_POWERLINE_SEG_NOW_PLAYING_MPD_HOST="localhost"
|
||||
# Port the MPD server is running on.
|
||||
export TMUX_POWERLINE_SEG_NOW_PLAYING_MPD_PORT="6600"
|
||||
# Song display format for mpd_simple. See mpc(1) for delimiters.
|
||||
export TMUX_POWERLINE_SEG_NOW_PLAYING_MPD_SIMPLE_FORMAT="%artist% - %title%"
|
||||
# Song display format for playerctl. see "Format Strings" in playerctl(1).
|
||||
export TMUX_POWERLINE_SEG_NOW_PLAYING_PLAYERCTL_FORMAT="{{ artist }} - {{ title }}"
|
||||
# Song display format for rhythmbox. see "FORMATS" in rhythmbox-client(1).
|
||||
export TMUX_POWERLINE_SEG_NOW_PLAYING_RHYTHMBOX_FORMAT="%aa - %tt"
|
||||
|
||||
# Last.fm
|
||||
# Set up steps for Last.fm
|
||||
# 1. Make sure jq(1) is installed on the system.
|
||||
# 2. Create a new API application at https://www.last.fm/api/account/create (name it tmux-powerline) and copy the API key and insert it below in the setting TMUX_POWERLINE_SEG_NOW_PLAYING_LASTFM_API_KEY
|
||||
# 3. Make sure the API can access your recently played song by going to you user privacy settings https://www.last.fm/settings/privacy and make sure "Hide recent listening information" is UNCHECKED.
|
||||
# Username for Last.fm if that music player is used.
|
||||
export TMUX_POWERLINE_SEG_NOW_PLAYING_LASTFM_USERNAME=""
|
||||
# API Key for the API.
|
||||
export TMUX_POWERLINE_SEG_NOW_PLAYING_LASTFM_API_KEY=""
|
||||
# How often in seconds to update the data from last.fm.
|
||||
export TMUX_POWERLINE_SEG_NOW_PLAYING_LASTFM_UPDATE_PERIOD="30"
|
||||
# Fancy char to display before now playing track
|
||||
export TMUX_POWERLINE_SEG_NOW_PLAYING_NOTE_CHAR="♫"
|
||||
# }
|
||||
|
||||
# pwd.sh {
|
||||
# Maximum length of output.
|
||||
export TMUX_POWERLINE_SEG_PWD_MAX_LEN="40"
|
||||
# }
|
||||
|
||||
# time.sh {
|
||||
# date(1) format for the time. Americans might want to have "%I:%M %p".
|
||||
export TMUX_POWERLINE_SEG_TIME_FORMAT="%I:%M %p"
|
||||
# }
|
||||
|
||||
# tmux_session_info.sh {
|
||||
# Session info format to feed into the command: tmux display-message -p
|
||||
# For example, if FORMAT is '[ #S ]', the command is: tmux display-message -p '[ #S ]'
|
||||
export TMUX_POWERLINE_SEG_TMUX_SESSION_INFO_FORMAT="#S:#I.#P"
|
||||
# }
|
||||
|
||||
# utc_time.sh {
|
||||
# date(1) format for the UTC time.
|
||||
export TMUX_POWERLINE_SEG_UTC_TIME_FORMAT="%H:%M %Z"
|
||||
# }
|
||||
|
||||
# vcs_branch.sh {
|
||||
# Max length of the branch name.
|
||||
export TMUX_POWERLINE_SEG_VCS_BRANCH_MAX_LEN="24"
|
||||
# }
|
||||
|
||||
# weather.sh {
|
||||
# The data provider to use. Currently only "yahoo" is supported.
|
||||
export TMUX_POWERLINE_SEG_WEATHER_DATA_PROVIDER="yrno"
|
||||
# What unit to use. Can be any of {c,f,k}.
|
||||
export TMUX_POWERLINE_SEG_WEATHER_UNIT="c"
|
||||
# How often to update the weather in seconds.
|
||||
export TMUX_POWERLINE_SEG_WEATHER_UPDATE_PERIOD="600"
|
||||
# Name of GNU grep binary if in PATH, or path to it.
|
||||
export TMUX_POWERLINE_SEG_WEATHER_GREP="grep"
|
||||
# Location of the JSON parser, jq
|
||||
export TMUX_POWERLINE_SEG_WEATHER_JSON="jq"
|
||||
# Your location
|
||||
# Latitude and Longtitude for use with yr.no
|
||||
TMUX_POWERLINE_SEG_WEATHER_LAT=""
|
||||
TMUX_POWERLINE_SEG_WEATHER_LON=""
|
||||
# }
|
||||
113
tmux/tmux-powerline/themes/mhoush.sh
Normal file
113
tmux/tmux-powerline/themes/mhoush.sh
Normal file
@@ -0,0 +1,113 @@
|
||||
# Default Theme
|
||||
|
||||
if patched_font_in_use; then
|
||||
TMUX_POWERLINE_SEPARATOR_LEFT_BOLD=""
|
||||
TMUX_POWERLINE_SEPARATOR_LEFT_THIN=""
|
||||
TMUX_POWERLINE_SEPARATOR_RIGHT_BOLD=""
|
||||
TMUX_POWERLINE_SEPARATOR_RIGHT_THIN=""
|
||||
else
|
||||
TMUX_POWERLINE_SEPARATOR_LEFT_BOLD="◀"
|
||||
TMUX_POWERLINE_SEPARATOR_LEFT_THIN="❮"
|
||||
TMUX_POWERLINE_SEPARATOR_RIGHT_BOLD="▶"
|
||||
TMUX_POWERLINE_SEPARATOR_RIGHT_THIN="❯"
|
||||
fi
|
||||
|
||||
TMUX_POWERLINE_DEFAULT_BACKGROUND_COLOR=${TMUX_POWERLINE_DEFAULT_BACKGROUND_COLOR:-'235'}
|
||||
TMUX_POWERLINE_DEFAULT_FOREGROUND_COLOR=${TMUX_POWERLINE_DEFAULT_FOREGROUND_COLOR:-'255'}
|
||||
|
||||
TMUX_POWERLINE_DEFAULT_LEFTSIDE_SEPARATOR=${TMUX_POWERLINE_DEFAULT_LEFTSIDE_SEPARATOR:-$TMUX_POWERLINE_SEPARATOR_RIGHT_BOLD}
|
||||
TMUX_POWERLINE_DEFAULT_RIGHTSIDE_SEPARATOR=${TMUX_POWERLINE_DEFAULT_RIGHTSIDE_SEPARATOR:-$TMUX_POWERLINE_SEPARATOR_LEFT_BOLD}
|
||||
|
||||
# See man tmux.conf for additional formatting options for the status line.
|
||||
# The `format regular` and `format inverse` functions are provided as conveniences
|
||||
|
||||
if [ -z $TMUX_POWERLINE_WINDOW_STATUS_CURRENT ]; then
|
||||
TMUX_POWERLINE_WINDOW_STATUS_CURRENT=(
|
||||
"#[$(format inverse)]" \
|
||||
"$TMUX_POWERLINE_DEFAULT_LEFTSIDE_SEPARATOR" \
|
||||
" #I#F " \
|
||||
"$TMUX_POWERLINE_SEPARATOR_RIGHT_THIN" \
|
||||
" #W " \
|
||||
"#[$(format regular)]" \
|
||||
"$TMUX_POWERLINE_DEFAULT_LEFTSIDE_SEPARATOR"
|
||||
)
|
||||
fi
|
||||
|
||||
if [ -z $TMUX_POWERLINE_WINDOW_STATUS_STYLE ]; then
|
||||
TMUX_POWERLINE_WINDOW_STATUS_STYLE=(
|
||||
"$(format regular)"
|
||||
)
|
||||
fi
|
||||
|
||||
if [ -z $TMUX_POWERLINE_WINDOW_STATUS_FORMAT ]; then
|
||||
TMUX_POWERLINE_WINDOW_STATUS_FORMAT=(
|
||||
"#[$(format regular)]" \
|
||||
" #I#{?window_flags,#F, } " \
|
||||
"$TMUX_POWERLINE_SEPARATOR_RIGHT_THIN" \
|
||||
" #W "
|
||||
)
|
||||
fi
|
||||
|
||||
# Format: segment_name background_color foreground_color [non_default_separator] [separator_background_color] [separator_foreground_color] [spacing_disable] [separator_disable]
|
||||
#
|
||||
# * background_color and foreground_color. Formats:
|
||||
# * Named colors (chech man page of tmux for complete list) e.g. black, red, green, yellow, blue, magenta, cyan, white
|
||||
# * a hexadecimal RGB string e.g. #ffffff
|
||||
# * 'default' for the defalt tmux color.
|
||||
# * non_default_separator - specify an alternative character for this segment's separator
|
||||
# * separator_background_color - specify a unique background color for the separator
|
||||
# * separator_foreground_color - specify a unique foreground color for the separator
|
||||
# * spacing_disable - remove space on left, right or both sides of the segment:
|
||||
# * "left_disable" - disable space on the left
|
||||
# * "right_disable" - disable space on the right
|
||||
# * "both_disable" - disable spaces on both sides
|
||||
# * - any other character/string produces no change to default behavior (eg "none", "X", etc.)
|
||||
#
|
||||
# * separator_disable - disables drawing a separator on this segment, very useful for segments
|
||||
# with dynamic background colours (eg tmux_mem_cpu_load):
|
||||
# * "separator_disable" - disables the separator
|
||||
# * - any other character/string produces no change to default behavior
|
||||
#
|
||||
# Example segment with separator disabled and right space character disabled:
|
||||
# "hostname 33 0 {TMUX_POWERLINE_SEPARATOR_RIGHT_BOLD} 33 0 right_disable separator_disable"
|
||||
#
|
||||
# Note that although redundant the non_default_separator, separator_background_color and
|
||||
# separator_foreground_color options must still be specified so that appropriate index
|
||||
# of options to support the spacing_disable and separator_disable features can be used
|
||||
|
||||
if [ -z $TMUX_POWERLINE_LEFT_STATUS_SEGMENTS ]; then
|
||||
TMUX_POWERLINE_LEFT_STATUS_SEGMENTS=(
|
||||
"tmux_session_info 148 234" \
|
||||
"hostname 33 0" \
|
||||
#"ifstat 30 255" \
|
||||
#"ifstat_sys 30 255" \
|
||||
#"lan_ip 24 255 ${TMUX_POWERLINE_SEPARATOR_RIGHT_THIN}" \
|
||||
#"wan_ip 24 255" \
|
||||
"vcs_branch 29 88" \
|
||||
"pwd 89 211" \
|
||||
#"vcs_compare 60 255" \
|
||||
"vcs_staged 64 255" \
|
||||
"vcs_modified 9 255" \
|
||||
#"vcs_others 245 0" \
|
||||
)
|
||||
fi
|
||||
|
||||
if [ -z $TMUX_POWERLINE_RIGHT_STATUS_SEGMENTS ]; then
|
||||
TMUX_POWERLINE_RIGHT_STATUS_SEGMENTS=(
|
||||
#"earthquake 3 0" \
|
||||
"macos_notification_count 29 255" \
|
||||
#"mailcount 9 255" \
|
||||
"now_playing 234 37" \
|
||||
#"cpu 240 136" \
|
||||
#"load 237 167" \
|
||||
#"tmux_mem_cpu_load 234 136" \
|
||||
"battery 137 127" \
|
||||
#"weather 37 255" \
|
||||
#"rainbarf 0 ${TMUX_POWERLINE_DEFAULT_FOREGROUND_COLOR}" \
|
||||
#"xkb_layout 125 117" \
|
||||
"date_day 235 136" \
|
||||
"date 235 136 ${TMUX_POWERLINE_SEPARATOR_LEFT_THIN}" \
|
||||
"time 235 136 ${TMUX_POWERLINE_SEPARATOR_LEFT_THIN}" \
|
||||
#"utc_time 235 136 ${TMUX_POWERLINE_SEPARATOR_LEFT_THIN}" \
|
||||
)
|
||||
fi
|
||||
111
tmux/tmux.conf
Executable file
111
tmux/tmux.conf
Executable file
@@ -0,0 +1,111 @@
|
||||
# Some tweaks to the status line
|
||||
set -g status-right "%H:%M"
|
||||
set -g window-status-current-style "underscore"
|
||||
set -g status-position "top"
|
||||
|
||||
# If running inside tmux ($TMUX is set), then change the status line to red
|
||||
%if #{TMUX}
|
||||
set -g status-bg red
|
||||
%endif
|
||||
|
||||
TMUX_FZF_OPTIONS="-p -w 60% -h 80% -m"
|
||||
|
||||
# Enable RGB colour if running in xterm(1)
|
||||
set-option -sa terminal-overrides ",xterm*:Tc"
|
||||
|
||||
# Change the default $TERM to tmux-256color
|
||||
set -g default-terminal "xterm-256color"
|
||||
|
||||
# Change windows to start with an index of 1 instead of 0
|
||||
set -g base-index 1
|
||||
|
||||
# Change panes to start with an index of 1 instead of 0
|
||||
setw -g pane-base-index 1
|
||||
|
||||
# No bells at all
|
||||
set -g bell-action none
|
||||
|
||||
# Keep windows around after they exit
|
||||
set -g remain-on-exit on
|
||||
|
||||
# Set indexes to start at 1, instead of 0.
|
||||
set -g base-index 1
|
||||
|
||||
# Change the prefix key to C-a
|
||||
set -g prefix C-a
|
||||
unbind C-b
|
||||
bind C-a send-prefix
|
||||
|
||||
set-window-option -g mode-keys vi
|
||||
bind -T copy-mode-vi v send-keys -X begin-selection
|
||||
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard'
|
||||
|
||||
# Turn the mouse on, but without copy mode dragging
|
||||
set -g mouse on
|
||||
unbind -n MouseDrag1Pane
|
||||
unbind -Tcopy-mode MouseDrag1Pane
|
||||
|
||||
# A key to toggle between smallest and largest sizes if a window is visible in
|
||||
# multiple places
|
||||
bind F set -w window-size
|
||||
|
||||
# Keys to toggle monitoring activity in a window and the synchronize-panes option
|
||||
bind m set monitor-activity
|
||||
bind y set synchronize-panes\; display 'synchronize-panes #{?synchronize-panes,on,off}'
|
||||
|
||||
# Better split pane
|
||||
bind \\ splitw -h
|
||||
bind - splitw -v
|
||||
|
||||
# Use Alt-arrow keys to navigate panes
|
||||
bind -n M-Left select-pane -L
|
||||
bind -n M-Right select-pane -R
|
||||
bind -n M-Up select-pane -U
|
||||
bind -n M-Down select-pane -D
|
||||
|
||||
# Close a pane quickly
|
||||
bind-key -r K kill-pane
|
||||
|
||||
# Use Shift-arrow keys to navigate windows.
|
||||
bind -n S-Left previous-window
|
||||
bind -n S-Right next-window
|
||||
bind -n M-h previous-window
|
||||
bind -n M-L next-window
|
||||
bind C-l send-keys 'C-l'
|
||||
|
||||
bind f run-shell "tmux display-popup -E -w 80% -h 80% ~/.local/scripts/tmux-sessionator"
|
||||
bind-key -r C run-shell -b "~/.local/scripts/tmux-sessionator ~/.dotfiles"
|
||||
bind S run-shell -b "~/.config/tmux/plugins/tmux-fzf/scripts/session.sh switch"
|
||||
|
||||
# reload new changes
|
||||
bind-key r source-file ~/.config/tmux/tmux.conf\; \display-message "source-file done"
|
||||
|
||||
######################################## Plugins ########################################
|
||||
set -g @plugin 'tmux-plugins/tpm'
|
||||
set -g @plugin 'tmux-plugins/tmux-sensible'
|
||||
set -g @plugin 'sainnhe/tmux-fzf'
|
||||
set -g @plugin 'tmux-plugins/tmux-yank'
|
||||
#set -g @plugin 'erikw/tmux-powerline'
|
||||
set -g @plugin 'christoomey/vim-tmux-navigator'
|
||||
set -g @plugin 'catppuccin/tmux'
|
||||
|
||||
set -g @catppuccin_flavour 'mocha' # latte, frappe, macchiato, mocha
|
||||
set -g @catppuccin_window_left_separator ""
|
||||
set -g @catppuccin_window_right_separator " "
|
||||
set -g @catppuccin_window_middle_separator " █"
|
||||
set -g @catppuccin_window_number_position "right"
|
||||
set -g @catppuccin_window_default_fill "number"
|
||||
set -g @catppuccin_window_default_text "#W"
|
||||
set -g @catppuccin_window_current_fill "number"
|
||||
set -g @catppuccin_window_current_text "#W"
|
||||
set -g @catppuccin_status_modules_right "directory session"
|
||||
set -g @catppuccin_status_left_separator " "
|
||||
set -g @catppuccin_status_right_separator ""
|
||||
set -g @catppuccin_status_right_separator_inverse "no"
|
||||
set -g @catppuccin_status_fill "icon"
|
||||
set -g @catppuccin_status_connect_separator "no"
|
||||
|
||||
set -g @catppuccin_directory_text "#{pane_current_path}"
|
||||
|
||||
# Needs to stay at the bottom.
|
||||
run '~/.config/tmux/plugins/tpm/tpm'
|
||||
46
wezterm/wezterm.lua
Normal file
46
wezterm/wezterm.lua
Normal file
@@ -0,0 +1,46 @@
|
||||
local wezterm = require('wezterm')
|
||||
local config = {}
|
||||
|
||||
if wezterm.config_builder then
|
||||
config = wezterm.config_builder()
|
||||
end
|
||||
|
||||
--config.color_scheme = 'rose-pine'
|
||||
|
||||
--config.color_scheme = 'terafox'
|
||||
-- config.colors = {
|
||||
-- background = "#131111"
|
||||
-- }
|
||||
|
||||
config.color_scheme = 'Catppuccin Mocha'
|
||||
|
||||
|
||||
-- Font
|
||||
config.font = wezterm.font_with_fallback {
|
||||
'JetBrains Mono',
|
||||
'Inconsolata Nerd Font Mono',
|
||||
}
|
||||
config.font_size = 16.0
|
||||
|
||||
-- Window
|
||||
config.adjust_window_size_when_changing_font_size = false
|
||||
config.enable_scroll_bar = false
|
||||
config.initial_cols = 150
|
||||
config.initial_rows= 80
|
||||
config.window_padding = {
|
||||
left = 5,
|
||||
right = 5,
|
||||
top = 0,
|
||||
bottom = 0
|
||||
}
|
||||
config.window_close_confirmation = 'NeverPrompt'
|
||||
--config.window_decorations = 'TITLE'
|
||||
|
||||
-- Tab Bar
|
||||
config.show_tabs_in_tab_bar = true
|
||||
config.show_new_tab_button_in_tab_bar = false
|
||||
config.use_fancy_tab_bar = true
|
||||
config.tab_bar_at_bottom = true
|
||||
config.hide_tab_bar_if_only_one_tab = true
|
||||
|
||||
return config
|
||||
44
yabai/yabairc
Executable file
44
yabai/yabairc
Executable file
@@ -0,0 +1,44 @@
|
||||
sudo yabai --load-sa
|
||||
yabai -m signal --add event=dock_did_restart action="sudo yabai --load-sa"
|
||||
|
||||
# global settings
|
||||
yabai -m config mouse_follows_focus off
|
||||
yabai -m config focus_follows_mouse off
|
||||
yabai -m config window_origin_display default
|
||||
yabai -m config window_placement second_child
|
||||
yabai -m config window_topmost off
|
||||
yabai -m config window_shadow on
|
||||
yabai -m config window_opacity off
|
||||
yabai -m config window_opacity_duration 0.0
|
||||
yabai -m config active_window_opacity 1.0
|
||||
yabai -m config normal_window_opacity 0.90
|
||||
yabai -m config window_border off
|
||||
yabai -m config window_border_width 6
|
||||
yabai -m config active_window_border_color 0xff775759
|
||||
yabai -m config normal_window_border_color 0xff555555
|
||||
yabai -m config insert_feedback_color 0xffd75f5f
|
||||
yabai -m config split_ratio 0.50
|
||||
yabai -m config auto_balance off
|
||||
yabai -m config mouse_modifier fn
|
||||
yabai -m config mouse_action1 move
|
||||
yabai -m config mouse_action2 resize
|
||||
yabai -m config mouse_drop_action swap
|
||||
|
||||
# general space settings
|
||||
yabai -m config layout bsp
|
||||
yabai -m config top_padding 3
|
||||
yabai -m config bottom_padding 3
|
||||
yabai -m config left_padding 0
|
||||
# NOTE: for OBS floating head
|
||||
# yabai -m config left_padding 450
|
||||
yabai -m config right_padding 0
|
||||
yabai -m config window_gap 0
|
||||
|
||||
# apps to not manage (ignore)
|
||||
yabai -m rule --add app="^System Settings$" manage=off
|
||||
yabai -m rule --add app="^Archive Utility$" manage=off
|
||||
yabai -m rule --add app="^Logi Options$" manage=off
|
||||
yabai -m rule --add app="^Music$" manage=off
|
||||
yabai -m rule --add app="^pwSafe$" manage=off
|
||||
|
||||
echo "yabai configuration loaded.."
|
||||
8
zsh/.zshenv
Executable file
8
zsh/.zshenv
Executable file
@@ -0,0 +1,8 @@
|
||||
# This needs placed in the ~/.zshenv
|
||||
#
|
||||
# This sources general default environment variables from `ZDOTDIR`, local overrides may be stored
|
||||
# in `$XDG_DATA_HOME/zsh/env.zsh`. The `ZDOTDIR/.zshrc-local` is a legacy file location that I used,
|
||||
# but should be removed when all my machines are updated to use the local overrides file.
|
||||
|
||||
export ZDOTDIR="$HOME/.config/zsh"
|
||||
[ -f "$ZDOTDIR/.zshenv" ] && source "$ZDOTDIR/.zshenv"
|
||||
99
zsh/config/.zshenv
Normal file → Executable file
99
zsh/config/.zshenv
Normal file → Executable file
@@ -1,2 +1,99 @@
|
||||
# Point to where the zsh config is.
|
||||
# This should be placed in "$XDG_CONFIG_HOME/zsh/.zshenv"
|
||||
#
|
||||
# This includes general default environment variables, local overrides may be stored
|
||||
# in `$XDG_DATA_HOME/zsh/env.zsh`.
|
||||
|
||||
# XDG
|
||||
export XDG_CONFIG_HOME="$HOME/.config"
|
||||
export XDG_DATA_HOME="$HOME/.local"
|
||||
export XDG_STATE_HOME="$HOME/.local/state"
|
||||
export XDG_CACHE_HOME="$HOME/.cache"
|
||||
|
||||
# Config
|
||||
export ZDOTDIR="$HOME/.config/zsh"
|
||||
export ZFUNCDIR="$ZDOTDIR/functions"
|
||||
export SHELL="$(which zsh)"
|
||||
export TERM=xterm-256color
|
||||
export EDITOR=nvim
|
||||
export VISUAL=nvim
|
||||
export EDITOR_PREFIX=nvim
|
||||
#export VIMINIT='source $MYVIMRC'
|
||||
#export MYVIMRC="$HOME/.vim/vimrc"
|
||||
export NVIM_APPNAME="m-housh"
|
||||
|
||||
# Git
|
||||
export GITUSER="m-housh"
|
||||
export GIT_DISCOVERY_ACROSS_FILESYSTEM=1
|
||||
|
||||
# Directories
|
||||
export ARCHIVE="/Volumes/Archive"
|
||||
export BUCKET="/Volumes/Bucket"
|
||||
export REPOS="$BUCKET/Repos"
|
||||
export GHREPOS="$REPOS/github.com/$GITUSER"
|
||||
export HHEREPOS="$REPOS/github.com/hhe-dev"
|
||||
export LOCAL_REPOS="$REPOS/local"
|
||||
export LOCAL_ENV="$XDG_DATA_HOME/zsh/env.zsh"
|
||||
export HCP_NOTES="$HHEREPOS/hcp-notes"
|
||||
export HXZET="$BUCKET/Repos/github.com/hvac-hx/hx-zets"
|
||||
export HAAS="$BUCKET/Repos/github.com/haas"
|
||||
export HAASZET="$HAAS/zets"
|
||||
export DOCUMENTS="$HOME/Documents"
|
||||
export DOWNLOADS="$HOME/Downloads"
|
||||
export PDFS="$HOME/Library/Mobile Documents/com~apple~Preview/Documents"
|
||||
export PROPOSALS="$HOME/Library/Mobile Documents/com~apple~CloudDocs/Work/Proposals"
|
||||
export SCREENSHOTS="$BUCKET/Pictures/Screenshots"
|
||||
export DOTFILES="$HOME/.dotfiles"
|
||||
export SCRIPTS="$HOME/.local/scripts"
|
||||
export WORK="$HOME/Library/Mobile Documents/com~apple~CloudDocs/Work"
|
||||
export ZETDIR="$GHREPOS/zets"
|
||||
export MYZSHRC="$ZDOTDIR/.zshrc"
|
||||
export NAP_CONFIG="$HOME/.config/nap/config.yaml"
|
||||
export SKELETONDIR="$DOTFILES/skeleton"
|
||||
export ANSIBLE_GEN_DIR="$GHREPOS/ansible/ansible-gen-playbook"
|
||||
export ANSIBLE_MACOS_PLAYBOOK_DIR="$GHREPOS/ansible/ansible-macos-playbook"
|
||||
export SITES="$GHREPOS/sites"
|
||||
|
||||
# NPM
|
||||
export NPM_CONFIG_CACHE="$HOME/.local/npm"
|
||||
export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME/npm/npmrc"
|
||||
|
||||
# Go
|
||||
export GOPATH="$XDG_DATA_HOME/go"
|
||||
|
||||
# Cabal
|
||||
export CABAL_CONFIG="$XDG_CONFIG_HOME/cabal/config"
|
||||
export CABAL_DIR="$XDG_DATA_HOME/cabal"
|
||||
|
||||
# Docker
|
||||
export DOCKER_CONFIG="$XDG_CONFIG_HOME/docker"
|
||||
|
||||
# Ruby
|
||||
export GEM_HOME="$XDG_DATA_HOME/gem"
|
||||
export GEM_SPEC_CACHE="$XDG_CACHE_HOME/gem"
|
||||
export BUNDLE_USER_CONFIG="$XDG_CONFIG_HOME/bundle"
|
||||
export BUNDLE_USER_CACHE="$XDG_CACHE_HOME/bundle"
|
||||
export BUNDLE_USER_PLUGIN="$XDG_DATA_HOME/bundle"
|
||||
|
||||
export LESSHISTFILE="$XDG_CACHE_HOME/less/history"
|
||||
export PSQL_HISTORY="$XDG_DATA_HOME/psql_history"
|
||||
|
||||
# Hashicorp/Vault
|
||||
export VAULT_ADDR="https://vault.housh.dev"
|
||||
|
||||
# Ansible
|
||||
export ANSIBLE_LOCAL="$GHREPOS/ansible"
|
||||
export ANSIBLE_HOME="$XDG_CONFIG_HOME/ansible"
|
||||
export ANSIBLE_VAULT_PASSWORD_FILE="$XDG_DATA_HOME/ansible/.vaultpwd"
|
||||
export DEFAULT_VAULT_PASSWORD_FILE="$XDG_DATA_HOME/ansible/.vaultpwd"
|
||||
|
||||
# Tmux-Sessionator path.
|
||||
export TMUX_SESSIONATOR_PATH="$HOME:$SCRIPTS:$LOCAL_REPOS:$REPOS:$GH_REPOS"
|
||||
|
||||
# Password-store
|
||||
export PASSWORD_STORE_DIR="$XDG_DATA_HOME/password-store"
|
||||
export PASSWORD_STORE_GENERATED_LENGTH=40
|
||||
|
||||
# GPG-TUI
|
||||
export GPG_TUI_CONFIG="$XDG_CONFIG_HOME/gpg-tui/gpg-tui.toml"
|
||||
export GPG_TTY=$(tty)
|
||||
|
||||
|
||||
134
zsh/config/.zshrc
Normal file → Executable file
134
zsh/config/.zshrc
Normal file → Executable file
@@ -12,38 +12,6 @@
|
||||
_source_if() { test -r "$1" && source "$1" || return 0 }
|
||||
|
||||
#------------------------------ exports ------------------------------
|
||||
export ZDOTDIR="$HOME/.config/zsh"
|
||||
export SHELL="$(which zsh)"
|
||||
export GITUSER="m-housh"
|
||||
export BUCKET="/Volumes/Bucket"
|
||||
export ARCHIVE="/Volumes/Archive"
|
||||
export REPOS="$BUCKET/Repos"
|
||||
export GHREPOS="$REPOS/github.com/$GITUSER"
|
||||
export HHEREPOS="$BUCKET/Repos/github.com/hhe-dev"
|
||||
export LOCAL_REPOS="$REPOS/local"
|
||||
export HCP_NOTES="$HHEREPOS/hcp-notes"
|
||||
export ZETDIR="$GHREPOS/zets"
|
||||
export HXZET="$BUCKET/Repos/github.com/hvac-hx/hx-zets"
|
||||
export HAAS="$BUCKET/Repos/github.com/haas"
|
||||
export HAASZET="$HAAS/zets"
|
||||
export DOCUMENTS="$HOME/Documents"
|
||||
export DOWNLOADS="$HOME/Downloads"
|
||||
export PDFS="$HOME/Library/Mobile Documents/com~apple~Preview/Documents"
|
||||
export SCREENSHOTS="$BUCKET/Pictures/Screenshots"
|
||||
export DOTFILES="$HOME/.dotfiles"
|
||||
export DESKTOP="$HOME/Desktop"
|
||||
export SCRIPTS="$HOME/.local/scripts"
|
||||
export WORK="$HOME/Library/Mobile Documents/com~apple~CloudDocs/Work"
|
||||
export TERM=xterm-256color
|
||||
export EDITOR=vi
|
||||
export VISUAL=vi
|
||||
export EDITOR_PREFIX=vi
|
||||
export GIT_DISCOVERY_ACROSS_FILESYSTEM=1
|
||||
export VIMINIT='source $MYVIMRC'
|
||||
export MYVIMRC="$HOME/.vim/vimrc"
|
||||
export MYZSHRC="$ZDOTDIR/.zshrc"
|
||||
export PROPOSALS="$HOME/Library/Mobile Documents/com~apple~CloudDocs/Work/Proposals"
|
||||
|
||||
autoload -U up-line-or-beginning-search
|
||||
autoload -U down-line-or-beginning-search
|
||||
zle -N up-line-or-beginning-search
|
||||
@@ -52,7 +20,6 @@ zle -N down-line-or-beginning-search
|
||||
# Colors
|
||||
autoload -Uz colors && colors
|
||||
|
||||
|
||||
#------------------------------ pager ------------------------------
|
||||
export LESS_TERMCAP_mb="[35m" # magenta
|
||||
export LESS_TERMCAP_md="[33m" # yellow
|
||||
@@ -61,20 +28,11 @@ export LESS_TERMCAP_se=""
|
||||
export LESS_TERMCAP_so="[34m" # blue
|
||||
export LESS_TERMCAP_ue=""
|
||||
export LESS_TERMCAP_so="[4m" # underline
|
||||
export LESSHISTFILE="-"
|
||||
|
||||
#------------------------------ path ------------------------------
|
||||
|
||||
path_append() {
|
||||
declare arg
|
||||
for arg in "$@"; do
|
||||
test -d "$arg" || continue
|
||||
PATH=${PATH//":$arg:"/:}
|
||||
PATH=${PATH/#"$arg:"/}
|
||||
PATH=${PATH/%":$arg"/}
|
||||
export PATH="${PATH:+"$PATH:"}$arg"
|
||||
done
|
||||
} && export path_append
|
||||
|
||||
# Helper function to prepend to the $PATH
|
||||
path_prepend() {
|
||||
declare arg
|
||||
for arg in "$@"; do
|
||||
@@ -86,6 +44,7 @@ path_prepend() {
|
||||
done
|
||||
} && export path_prepend
|
||||
|
||||
# Helper function to prepend to the $FPATH
|
||||
fpath_prepend() {
|
||||
declare arg
|
||||
for arg in "$@"; do
|
||||
@@ -97,20 +56,25 @@ fpath_prepend() {
|
||||
done
|
||||
} && export fpath_prepend
|
||||
|
||||
|
||||
# last arg will be first in path
|
||||
# last arg will be first in $PATH
|
||||
path_prepend \
|
||||
"/usr/local/bin" \
|
||||
"/opt/homebrew/bin" \
|
||||
"/opt/homebrew/sbin" \
|
||||
"$GOROOT/bin" \
|
||||
"$GOPATH/bin" \
|
||||
"$HOME/.local/bin" \
|
||||
"$SCRIPTS"
|
||||
|
||||
# last arg will be first in $FPATH
|
||||
fpath_prepend \
|
||||
"$(brew --prefix)/share/zsh/site-functions" \
|
||||
"$(brew --prefix)/share/zsh-completions" \
|
||||
"$ZDOTDIR/completions" \
|
||||
"$HOME/.local/completions"
|
||||
"$HOME/.local/completions" \
|
||||
"$ZDOTDIR/functions"
|
||||
|
||||
autoload -Uz $fpath[1]/*(.:t)
|
||||
|
||||
#------------------------------ history ------------------------------
|
||||
setopt appendhistory # append to history
|
||||
@@ -120,6 +84,7 @@ setopt hist_expire_dups_first # expire duplicates first
|
||||
setopt hist_ignore_dups # do not store duplicates
|
||||
setopt hist_find_no_dups # ignore duplicates when searching
|
||||
setopt hist_reduce_blanks # do not store blank lines.
|
||||
setopt histignorespace # do not store commands that start with a space in history
|
||||
|
||||
export HISTSIZE=5000
|
||||
export HISTFILESIZE=10000
|
||||
@@ -129,7 +94,9 @@ export HISTFILE=$ZDOTDIR/history
|
||||
|
||||
#------------------------------ cdpath ------------------------------
|
||||
setopt autocd
|
||||
export CDPATH=".:$GHREPOS:$REPOS/github.com:$DOTFILES:$LOCAL_REPOS:$HOME"
|
||||
|
||||
# NOTE: This may be overriden in local env overrides (typically located in $XDG_DATA_HOME/zsh/env.zsh
|
||||
export CDPATH=".:$GHREPOS:$GHREPOS/ansible:$REPOS/github.com:$DOTFILES:$LOCAL_REPOS:$HOME"
|
||||
|
||||
#------------------------------ options ------------------------------
|
||||
# (see `man zshoptions`)
|
||||
@@ -150,7 +117,6 @@ export KEYTIMEOUT=1 # Switch between vim mode quicker.
|
||||
# Load Useful Functions
|
||||
_source_if "${ZDOTDIR}/zsh-functions"
|
||||
|
||||
|
||||
# Plugins
|
||||
zsh_add_plugin "zsh-users/zsh-autosuggestions"
|
||||
zsh_add_plugin "zsh-users/zsh-syntax-highlighting"
|
||||
@@ -175,35 +141,49 @@ prompt pure
|
||||
|
||||
#------------------------------ aliases ------------------------------
|
||||
|
||||
alias bk='cd "${OLDPWD}"'
|
||||
alias cdots='cd "${DOTFILES}"'
|
||||
alias cl='printf "\e[H\e[2J"'
|
||||
alias clear='printf "\e[H\e[2J"'
|
||||
alias czets='cd "${ZETDIR}"'
|
||||
alias dv='dirs -v'
|
||||
alias g='git'
|
||||
alias ga='git add'
|
||||
alias gcb='git checkout -b'
|
||||
alias gco='git checkout'
|
||||
alias gcm='git commit -a -m'
|
||||
#alias gma() { git add . && git commit -m "$1" }
|
||||
alias gp='git push'
|
||||
alias gs='git status'
|
||||
alias l='ls -lah --color=auto'
|
||||
alias reload='exec zsh -l'
|
||||
alias temp='cd $(mktemp -d)'
|
||||
alias vi='vim'
|
||||
alias nvim='unset VIMINIT && unset MYVIMRC && nvim'
|
||||
#------------------------------ functions ------------------------------
|
||||
mkcd() {
|
||||
local dir="$1"
|
||||
mkdir -p "$dir" && cd "$dir"
|
||||
} && export mkcd
|
||||
alias bk='cd "${OLDPWD}"' # change to last directory
|
||||
alias cda='cd "$ANSIBLE_LOCAL"' # change into local ansible directory.
|
||||
alias cl='printf "\e[H\e[2J"' # clear the terminal
|
||||
alias clear='printf "\e[H\e[2J"' # clear the terminal
|
||||
alias czets='cd "${ZETDIR}"' # move into zettlekasten notes
|
||||
alias d='docker' # run docker commands quickly
|
||||
alias dc='docker compose' # run docker-compose commands quickly
|
||||
alias dv='dirs -v' # list directory info
|
||||
alias essh='edit-ssh-config' # edit ssh config quickly
|
||||
alias g='git' # access git commands quickly
|
||||
alias ga='git add' # add files to git quickly
|
||||
alias gcb='git checkout -b' # checkout a new git branch, creating if needed.
|
||||
alias gco='git checkout' # checkout an already existing git branch
|
||||
alias gcm='git commit -a -m' # commit files to git quickly
|
||||
alias gen='just --justfile "$ANSIBLE_GEN_DIR/justfile"' # generate template files / directories
|
||||
alias gp='git push' # push repo to git
|
||||
alias gs='git status' # git status quickly
|
||||
alias hn='hugo new' # generate a hugo site
|
||||
alias hnc='hugo new content' # generate new hugo site content quickly
|
||||
alias j='just' # run justfile's quickly.
|
||||
alias l='ls -lahH --color=auto' # better ls command.
|
||||
alias lfs='ls -lahH --color=auto "$ZDOTDIR/functions"' # List functions.
|
||||
alias reload='exec zsh -l' # reload the shell, useful when making changes.
|
||||
alias t='tmux' # access tmux quickly
|
||||
alias tka='tmux kill-server' # kill tmux server and all sessions.
|
||||
alias ts='~/.local/scripts/tmux-sessionator' # create new tmux session, fuzzy finding common locations.
|
||||
alias tss='~/.local/scripts/tmux-sessionator --choose' # attach to an existing tmux session.
|
||||
alias tls='tmux list-sessions' # list tmux sessions
|
||||
alias temp='cd $(mktemp -d)' # create a temporary directory and move into it.
|
||||
alias vi='nvim' # set vi to open neovim
|
||||
alias newf='"$SCRIPTS"/newx --function' # generate a new shell function
|
||||
alias nlnv='nvim "$LOCAL_ENV"' # open local environment overrides file in neovime
|
||||
alias nvim='unset VIMINIT && unset MYVIMRC && nvim' # alias nvim to unset vimrc, useful when using both vim & neovim
|
||||
alias nvim-mhoush='NVIM_APPNAME=m-housh && nvim' # set neovim to use my config.
|
||||
alias nvim-kickstart='NVIM_APPNAME=kickstart nvim' # set neovim to use kickstart config.
|
||||
alias nvim-lazy='NVIM_APPNAME=lazy nvim' # set neovim to use lazy config.
|
||||
alias wget="wget --hsts-file=$XDG_DATA_HOME/wget-hsts" # set wget history location.
|
||||
|
||||
#------------------------------ local configs ------------------------------
|
||||
# TODO: The .zshrc-local is a legacy location and should be removed once my machines are
|
||||
# use the new location in XDG_DATA_HOME.
|
||||
# HACK: These need to stay here, otherwise environment overrides do not work properly
|
||||
# I tried sourcing them in the the `.zshenv` files, but did not work.
|
||||
_source_if "$ZDOTDIR/.zshrc-local"
|
||||
_source_if "$LOCAL_ENV"
|
||||
|
||||
|
||||
# [ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
|
||||
|
||||
test -d "$HOME/.tea" && source <("$HOME/.tea/tea.xyz/v*/bin/tea" --magic=zsh --silent)
|
||||
|
||||
6
zsh/config/functions/cdots
Executable file
6
zsh/config/functions/cdots
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env zsh
|
||||
|
||||
function cdots() {
|
||||
"$SCRIPTS/tmux-sessionator" "$DOTFILES"
|
||||
}
|
||||
|
||||
8
zsh/config/functions/chmox
Executable file
8
zsh/config/functions/chmox
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/bin/zsh
|
||||
|
||||
# makes files executable
|
||||
|
||||
function chmox() {
|
||||
[ ! -f "$1" ] && echo "usage: chmox <file>" && return 1
|
||||
chmod u+x "$1"
|
||||
}
|
||||
7
zsh/config/functions/clean-screenshots
Executable file
7
zsh/config/functions/clean-screenshots
Executable file
@@ -0,0 +1,7 @@
|
||||
#!/bin/zsh
|
||||
|
||||
function clean-screenshots() {
|
||||
for file in "$SCREENSHOTS"/*; do
|
||||
rm "$file"
|
||||
done
|
||||
}
|
||||
23
zsh/config/functions/desktop
Executable file
23
zsh/config/functions/desktop
Executable file
@@ -0,0 +1,23 @@
|
||||
#!/bin/zsh
|
||||
|
||||
function desktop() {
|
||||
declare hide
|
||||
declare show
|
||||
|
||||
zparseopts -D -E -K -- \
|
||||
{h,-hide}=hide \
|
||||
{s,-show}=show
|
||||
|
||||
if [ -n "$hide" ]; then
|
||||
defaults write com.apple.finder CreateDesktop false && killall Finder
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ -n "$show" ]; then
|
||||
defaults write com.apple.finder CreateDesktop true && killall Finder
|
||||
return 0
|
||||
fi
|
||||
|
||||
echo "Please pass in --hide | --show"
|
||||
return 1
|
||||
}
|
||||
16
zsh/config/functions/dmg
Executable file
16
zsh/config/functions/dmg
Executable file
@@ -0,0 +1,16 @@
|
||||
#!/bin/zsh
|
||||
|
||||
# Creates an encrypted disk image from a folder
|
||||
function dmg() {
|
||||
from="$1"
|
||||
to="$2"
|
||||
|
||||
if [ -z "$1" ] || [ -z "$2" ]; then
|
||||
echo "Usage: dmg <fromdir> <todir>"
|
||||
echo ""
|
||||
return 1
|
||||
fi
|
||||
|
||||
name="$(isosec).dmg"
|
||||
hdiutil create -encryption AES-256 -srcfolder "$from" "$to/$name"
|
||||
}
|
||||
5
zsh/config/functions/edit-ssh-config
Executable file
5
zsh/config/functions/edit-ssh-config
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/zsh
|
||||
|
||||
function edit-ssh-config() {
|
||||
ansible-vault edit "$DOTFILES/ssh/config"
|
||||
}
|
||||
8
zsh/config/functions/gl
Executable file
8
zsh/config/functions/gl
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/bin/zsh
|
||||
|
||||
# Prettier git log
|
||||
function gl() {
|
||||
git log --graph \
|
||||
--pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' \
|
||||
--abbrev-commit
|
||||
}
|
||||
11
zsh/config/functions/gma
Executable file
11
zsh/config/functions/gma
Executable file
@@ -0,0 +1,11 @@
|
||||
#!/bin/zsh
|
||||
|
||||
# Add all and commit to git.
|
||||
|
||||
function gma() {
|
||||
[ -z "$1" ] \
|
||||
&& echo "usage: gma <commit-message>" \
|
||||
&& return 1
|
||||
|
||||
git add . && git commit -m "$1"
|
||||
}
|
||||
12
zsh/config/functions/mkcd
Executable file
12
zsh/config/functions/mkcd
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env zsh
|
||||
|
||||
# Creates a directory then `cd`'s into the directory
|
||||
|
||||
function mkcd() {
|
||||
dir=$1
|
||||
if [ -z "$dir" ]; then
|
||||
echo "usage: mkcd <dir>" && return 1
|
||||
fi
|
||||
mkdir "$dir"
|
||||
cd "$dir"
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user