diff --git a/.config/karabiner/karabiner.json b/.config/karabiner/karabiner.json
new file mode 100644
index 0000000..0c3e3ed
--- /dev/null
+++ b/.config/karabiner/karabiner.json
@@ -0,0 +1,288 @@
+{
+ "global": {
+ "check_for_updates_on_startup": true,
+ "show_in_menu_bar": false,
+ "show_profile_name_in_menu_bar": false
+ },
+ "profiles": [
+ {
+ "complex_modifications": {
+ "parameters": {
+ "basic.simultaneous_threshold_milliseconds": 50,
+ "basic.to_delayed_action_delay_milliseconds": 500,
+ "basic.to_if_alone_timeout_milliseconds": 1000,
+ "basic.to_if_held_down_threshold_milliseconds": 500,
+ "mouse_motion_to_scroll.speed": 100
+ },
+ "rules": [
+ {
+ "manipulators": [
+ {
+ "description": "Change right option to hyper/esc",
+ "from": {
+ "key_code": "right_option",
+ "modifiers": {
+ "optional": [
+ "any"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "left_control",
+ "modifiers": [
+ "left_command",
+ "left_option",
+ "left_shift"
+ ]
+ }
+ ],
+ "to_if_alone": [
+ {
+ "key_code": "escape"
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "description": "Change caps lock to control/escape",
+ "from": {
+ "key_code": "caps_lock",
+ "modifiers": {
+ "optional": [
+ "any"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "left_control",
+ "modifiers": []
+ }
+ ],
+ "to_if_alone": [
+ {
+ "key_code": "escape"
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "description": "Change left control lock to control/escape",
+ "from": {
+ "key_code": "left_control",
+ "modifiers": {
+ "optional": [
+ "any"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "left_control",
+ "modifiers": []
+ }
+ ],
+ "to_if_alone": [
+ {
+ "key_code": "escape"
+ }
+ ],
+ "type": "basic"
+ }
+ ]
+ }
+ ]
+ },
+ "devices": [
+ {
+ "disable_built_in_keyboard_if_exists": false,
+ "fn_function_keys": [],
+ "identifiers": {
+ "is_keyboard": true,
+ "is_pointing_device": false,
+ "product_id": 34304,
+ "vendor_id": 1452
+ },
+ "ignore": true,
+ "manipulate_caps_lock_led": true,
+ "simple_modifications": []
+ },
+ {
+ "disable_built_in_keyboard_if_exists": true,
+ "fn_function_keys": [],
+ "identifiers": {
+ "is_keyboard": true,
+ "is_pointing_device": false,
+ "product_id": 256,
+ "vendor_id": 2131
+ },
+ "ignore": false,
+ "manipulate_caps_lock_led": false,
+ "simple_modifications": []
+ },
+ {
+ "disable_built_in_keyboard_if_exists": true,
+ "fn_function_keys": [],
+ "identifiers": {
+ "is_keyboard": true,
+ "is_pointing_device": false,
+ "product_id": 33,
+ "vendor_id": 1278
+ },
+ "ignore": false,
+ "manipulate_caps_lock_led": false,
+ "simple_modifications": []
+ },
+ {
+ "disable_built_in_keyboard_if_exists": true,
+ "fn_function_keys": [],
+ "identifiers": {
+ "is_keyboard": true,
+ "is_pointing_device": false,
+ "product_id": 0,
+ "vendor_id": 0
+ },
+ "ignore": false,
+ "manipulate_caps_lock_led": false,
+ "simple_modifications": []
+ }
+ ],
+ "fn_function_keys": [
+ {
+ "from": {
+ "key_code": "f1"
+ },
+ "to": [
+ {
+ "key_code": "display_brightness_decrement"
+ }
+ ]
+ },
+ {
+ "from": {
+ "key_code": "f2"
+ },
+ "to": [
+ {
+ "key_code": "display_brightness_increment"
+ }
+ ]
+ },
+ {
+ "from": {
+ "key_code": "f3"
+ },
+ "to": [
+ {
+ "key_code": "mission_control"
+ }
+ ]
+ },
+ {
+ "from": {
+ "key_code": "f4"
+ },
+ "to": [
+ {
+ "key_code": "launchpad"
+ }
+ ]
+ },
+ {
+ "from": {
+ "key_code": "f5"
+ },
+ "to": [
+ {
+ "key_code": "illumination_decrement"
+ }
+ ]
+ },
+ {
+ "from": {
+ "key_code": "f6"
+ },
+ "to": [
+ {
+ "key_code": "illumination_increment"
+ }
+ ]
+ },
+ {
+ "from": {
+ "key_code": "f7"
+ },
+ "to": [
+ {
+ "key_code": "rewind"
+ }
+ ]
+ },
+ {
+ "from": {
+ "key_code": "f8"
+ },
+ "to": [
+ {
+ "key_code": "play_or_pause"
+ }
+ ]
+ },
+ {
+ "from": {
+ "key_code": "f9"
+ },
+ "to": [
+ {
+ "key_code": "fastforward"
+ }
+ ]
+ },
+ {
+ "from": {
+ "key_code": "f10"
+ },
+ "to": [
+ {
+ "key_code": "mute"
+ }
+ ]
+ },
+ {
+ "from": {
+ "key_code": "f11"
+ },
+ "to": [
+ {
+ "key_code": "volume_decrement"
+ }
+ ]
+ },
+ {
+ "from": {
+ "key_code": "f12"
+ },
+ "to": [
+ {
+ "key_code": "volume_increment"
+ }
+ ]
+ }
+ ],
+ "name": "Default profile",
+ "parameters": {
+ "delay_milliseconds_before_open_device": 1000
+ },
+ "selected": true,
+ "simple_modifications": [],
+ "virtual_hid_keyboard": {
+ "caps_lock_delay_milliseconds": 0,
+ "country_code": 0,
+ "indicate_sticky_modifier_keys_state": true,
+ "keyboard_type": "ansi",
+ "mouse_key_xy_scale": 100
+ }
+ }
+ ]
+}
diff --git a/lazygit/config.yml b/.config/lazygit/config.yml
similarity index 90%
rename from lazygit/config.yml
rename to .config/lazygit/config.yml
index 452b375..122b206 100644
--- a/lazygit/config.yml
+++ b/.config/lazygit/config.yml
@@ -5,8 +5,6 @@ gui:
theme:
selectedLineBgColor:
- reverse
- selectedRangeBgColor:
- - reverse
disableStartupPopups: true
notARepository: 'skip'
git:
diff --git a/office/mutt/accounts/mailbox b/.config/neomutt/accounts/mailbox
similarity index 92%
rename from office/mutt/accounts/mailbox
rename to .config/neomutt/accounts/mailbox
index ae443c2..dd5192a 100644
--- a/office/mutt/accounts/mailbox
+++ b/.config/neomutt/accounts/mailbox
@@ -1,3 +1,4 @@
+set realname = "Steffen Rademacker"
set from = "kontakt@webgefrickel.de"
set sendmail = "msmtp -a mailbox"
@@ -12,7 +13,7 @@ set trash = "+mailbox/trash"
alternates ^kontakt@webgefrickel.de$ ^s.rademacker@mailbox.org$
# custom signaure
-set signature = ~/.mutt/signatures/work
+set signature = ./signatures/work
color status green default
diff --git a/office/mutt/bindings b/.config/neomutt/bindings
similarity index 100%
rename from office/mutt/bindings
rename to .config/neomutt/bindings
diff --git a/office/mutt/colors b/.config/neomutt/colors
similarity index 100%
rename from office/mutt/colors
rename to .config/neomutt/colors
diff --git a/.config/neomutt/neomuttrc b/.config/neomutt/neomuttrc
new file mode 100644
index 0000000..d48b6b2
--- /dev/null
+++ b/.config/neomutt/neomuttrc
@@ -0,0 +1,60 @@
+# default local settings
+set certificate_file = ~/Dotfiles/extras/certificates.crt
+set charset = "utf-8"
+set send_charset = "utf-8:iso-8859-1:us-ascii"
+set editor = nvim
+set folder = ~/Mail
+set mbox_type = Maildir
+set query_command = "mu cfind --format=mutt-ab '%s'"
+
+# override some options for saner usage
+set confirm_append = no
+set delete = yes
+set edit_headers = yes
+set fast_reply = yes
+set forward_format = "Fwd: %s"
+set forward_quote = yes
+set include = yes
+set mail_check = 0
+set mark_old = no
+set reply_to = yes
+set reverse_name = yes
+set sig_dashes = no
+set text_flowed = yes
+set timeout = 3
+set uncollapse_jump = yes
+set use_envelope_from = yes
+set wait_key = no
+
+# User interface
+set date_format = "%d.%m.%Y %H:%M"
+set index_format = "[%Z] %?X?A&-? %D %-20.20F %s"
+set pager_context = 3
+set pager_index_lines = 10
+set sidebar_divider_char = ' │ '
+set sidebar_folder_indent = yes
+set sidebar_format = "%B %* [%?N?%N / ?%S]"
+set sidebar_indent_string = ' ''
+set sidebar_short_path = yes
+set sidebar_visible = yes
+set sidebar_width = 25
+set sort = threads
+set sort_aux = reverse-last-date-received
+set status_chars = " *%A"
+set status_format = "──── %f | %r%m messages%?n? (%n new)?%?d? (%d to delete)?%?t? (%t tagged)? | %>─%?p?( %p postponed )?"
+
+# Source colors and bindings
+source ./colors
+source ./bindings
+
+# Accounts and email headers and settings
+ignore *
+unignore from: to: cc: bcc: date: subject:
+unhdr_order *
+hdr_order from: to: cc: bcc: date: subject:
+alternative_order text/plain text/enriched text/html
+auto_view text/html
+
+mailboxes =mailbox
+mailboxes =mailbox/INBOX =mailbox/archive =mailbox/sent =mailbox/drafts =mailbox/junk =mailbox/trash
+source ./accounts/mailbox
diff --git a/office/mutt/signatures/default b/.config/neomutt/signatures/default
similarity index 100%
rename from office/mutt/signatures/default
rename to .config/neomutt/signatures/default
diff --git a/office/mutt/signatures/work b/.config/neomutt/signatures/work
similarity index 100%
rename from office/mutt/signatures/work
rename to .config/neomutt/signatures/work
diff --git a/nvim/init.lua b/.config/nvim/init.lua
similarity index 100%
rename from nvim/init.lua
rename to .config/nvim/init.lua
diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json
new file mode 100644
index 0000000..d269aad
--- /dev/null
+++ b/.config/nvim/lazy-lock.json
@@ -0,0 +1,45 @@
+{
+ "Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
+ "CopilotChat.nvim": { "branch": "canary", "commit": "82923efe22b604cf9c0cad0bb2a74aa9247755ab" },
+ "Navigator.nvim": { "branch": "master", "commit": "91d86506ac2a039504d5205d32a1d4bc7aa57072" },
+ "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
+ "cmp-calc": { "branch": "main", "commit": "5947b412da67306c5b68698a02a846760059be2e" },
+ "cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" },
+ "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
+ "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
+ "cmp-vsnip": { "branch": "main", "commit": "989a8a73c44e926199bfd05fa7a516d51f2d2752" },
+ "codeium.nvim": { "branch": "main", "commit": "f6a2ef32a9e923cb0104a19d3e426b0e40e49505" },
+ "copilot-cmp": { "branch": "master", "commit": "b6e5286b3d74b04256d0a7e3bd2908eabec34b44" },
+ "copilot.lua": { "branch": "master", "commit": "86537b286f18783f8b67bccd78a4ef4345679625" },
+ "flash.nvim": { "branch": "main", "commit": "ec0bf2842189f65f60fd40bf3557cac1029cc932" },
+ "friendly-snippets": { "branch": "main", "commit": "45a1b96e46efe5fce8af325d4bed45feb9d29d0f" },
+ "gitsigns.nvim": { "branch": "main", "commit": "375c44bdfdde25585466a966f00c2e291db74f2d" },
+ "gruvbox-material": { "branch": "master", "commit": "767b5471b8145ec071426341988c7af563f078d1" },
+ "lazy.nvim": { "branch": "main", "commit": "d1de92dffab5a862332fdd1892889d362369c12f" },
+ "lualine.nvim": { "branch": "master", "commit": "6a40b530539d2209f7dc0492f3681c8c126647ad" },
+ "mason-lspconfig.nvim": { "branch": "main", "commit": "37a336b653f8594df75c827ed589f1c91d91ff6c" },
+ "mason.nvim": { "branch": "main", "commit": "f96a31855fa8aea55599cea412fe611b85a874ed" },
+ "nvim-bqf": { "branch": "main", "commit": "1b24dc6050c34e8cd377b6b4cd6abe40509e0187" },
+ "nvim-cmp": { "branch": "main", "commit": "a110e12d0b58eefcf5b771f533fc2cf3050680ac" },
+ "nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" },
+ "nvim-lspconfig": { "branch": "master", "commit": "cf97d2485fc3f6d4df1b79a3ea183e24c272215e" },
+ "nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" },
+ "nvim-spectre": { "branch": "master", "commit": "9a28f926d3371b7ef02243cbbb653a0478d06e31" },
+ "nvim-surround": { "branch": "main", "commit": "ec2dc7671067e0086cdf29c2f5df2dd909d5f71f" },
+ "nvim-treesitter": { "branch": "master", "commit": "4068e1c0966eee10bc8937b54f8cf8f68b76961f" },
+ "nvim-treesitter-pairs": { "branch": "master", "commit": "f8c195d4d8464cba6971bf8de2d6a5c8c109b37a" },
+ "nvim-treesitter-refactor": { "branch": "master", "commit": "65ad2eca822dfaec2a3603119ec3cc8826a7859e" },
+ "nvim-ts-autotag": { "branch": "main", "commit": "323a3e16ed603e2e17b26b1c836d1e86c279f726" },
+ "nvim-web-devicons": { "branch": "master", "commit": "c0cfc1738361b5da1cd0a962dd6f774cc444f856" },
+ "obsidian.nvim": { "branch": "main", "commit": "e170641143704068233ba1d301e75684b67fc07c" },
+ "oil.nvim": { "branch": "master", "commit": "10fbfdd37b6904c0776c5db1a27ab47eecba335e" },
+ "plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" },
+ "telescope-fzf-native.nvim": { "branch": "main", "commit": "cf48d4dfce44e0b9a2e19a008d6ec6ea6f01a83b" },
+ "telescope.nvim": { "branch": "master", "commit": "bfcc7d5c6f12209139f175e6123a7b7de6d9c18a" },
+ "todo-comments.nvim": { "branch": "main", "commit": "313b04e5b02d29ab9275c9295ff5e2b73921b0eb" },
+ "treesj": { "branch": "main", "commit": "6e8bd008bacd5ad001c3953017c1dca20709e915" },
+ "trouble.nvim": { "branch": "main", "commit": "4453fea6bb597830fbd58d2c484612f37b97bd8c" },
+ "vim-vsnip": { "branch": "master", "commit": "02a8e79295c9733434aab4e0e2b8c4b7cea9f3a9" },
+ "which-key.nvim": { "branch": "main", "commit": "af4ded85542d40e190014c732fa051bdbf88be3d" },
+ "zen-mode.nvim": { "branch": "main", "commit": "21976479c7a0146b05a42707cf91c86b1e510945" }
+}
\ No newline at end of file
diff --git a/.config/nvim/lua/plugins.lua b/.config/nvim/lua/plugins.lua
new file mode 100644
index 0000000..44e47a7
--- /dev/null
+++ b/.config/nvim/lua/plugins.lua
@@ -0,0 +1,21 @@
+return {
+ -- The colorscheme of choice
+ {
+ 'sainnhe/gruvbox-material',
+ lazy = false,
+ priority = 1000,
+ config = function()
+ vim.opt.background = 'dark'
+ vim.opt.termguicolors = true
+ vim.g.gruvbox_material_better_performance = 1
+ vim.g.gruvbox_material_enable_italic = 1
+ vim.g.gruvbox_material_enable_bold = 1
+ vim.cmd.colorscheme('gruvbox-material')
+ vim.cmd.language('en_US.UTF-8')
+ end
+ },
+
+ -- Libraries, icons and shared usage
+ { 'nvim-lua/plenary.nvim', lazy = true },
+ { 'nvim-tree/nvim-web-devicons', lazy = true },
+}
diff --git a/nvim/lua/plugins/autocompletion.lua b/.config/nvim/lua/plugins/autocompletion.lua
similarity index 99%
rename from nvim/lua/plugins/autocompletion.lua
rename to .config/nvim/lua/plugins/autocompletion.lua
index 8c36e59..9c79f8e 100644
--- a/nvim/lua/plugins/autocompletion.lua
+++ b/.config/nvim/lua/plugins/autocompletion.lua
@@ -9,6 +9,7 @@ return {
panel = { enabled = false },
},
},
+
{ 'hrsh7th/nvim-cmp',
version = false,
dependencies = {
diff --git a/nvim/lua/plugins/keymaps.lua b/.config/nvim/lua/plugins/bindings.lua
similarity index 100%
rename from nvim/lua/plugins/keymaps.lua
rename to .config/nvim/lua/plugins/bindings.lua
index 4070045..8f75dfe 100644
--- a/nvim/lua/plugins/keymaps.lua
+++ b/.config/nvim/lua/plugins/bindings.lua
@@ -1,8 +1,8 @@
return {
+ { 'folke/flash.nvim', config = true },
{ 'kylechui/nvim-surround', config = true },
{ 'numToStr/Comment.nvim', config = true },
{ 'numToStr/Navigator.nvim', config = true },
- { 'folke/flash.nvim', config = true },
{ 'folke/which-key.nvim',
config = function()
diff --git a/.config/nvim/lua/plugins/enrichments.lua b/.config/nvim/lua/plugins/enrichments.lua
new file mode 100644
index 0000000..e4d7681
--- /dev/null
+++ b/.config/nvim/lua/plugins/enrichments.lua
@@ -0,0 +1,50 @@
+return {
+ { 'lewis6991/gitsigns.nvim', config = true },
+ { 'kevinhwang91/nvim-bqf', config = true },
+ { 'nvim-pack/nvim-spectre', config = true, },
+ { 'folke/trouble.nvim', config = true },
+ { 'folke/todo-comments.nvim', config = true },
+ { 'norcalli/nvim-colorizer.lua',
+ opts = {
+ css = { css = true },
+ scss = { css = true },
+ json = { css = true},
+ javascript = { css = true },
+ },
+ },
+ { 'folke/zen-mode.nvim',
+ opts = {
+ window = {
+ backdrop = 0.95,
+ width = 120,
+ height = 0.85,
+ options = {
+ signcolumn = 'no', -- disable signcolumn
+ number = false, -- disable number column
+ relativenumber = false, -- disable relative numbers
+ },
+ },
+ plugins = {
+ gitsigns = { enabled = true },
+ wezterm = {
+ enabled = true,
+ font = '+2',
+ },
+ },
+ },
+ },
+ { 'rcarriga/nvim-notify',
+ config = function()
+ vim.notify = require('notify')
+ end
+ },
+ { 'epwalsh/obsidian.nvim',
+ ft = 'markdown',
+ opts = {
+ dir = '~/Notes',
+ follow_url_func = function(url)
+ vim.fn.jobstart({ 'open', url })
+ end,
+ }
+ },
+}
diff --git a/nvim/lua/plugins/languages.lua b/.config/nvim/lua/plugins/languages.lua
similarity index 97%
rename from nvim/lua/plugins/languages.lua
rename to .config/nvim/lua/plugins/languages.lua
index 82364bf..6bdfe25 100644
--- a/nvim/lua/plugins/languages.lua
+++ b/.config/nvim/lua/plugins/languages.lua
@@ -22,8 +22,6 @@ return {
'html',
'javascript',
'json',
- 'json5',
- 'jsonc',
'lua',
'markdown',
'php',
@@ -105,7 +103,6 @@ return {
build = ":MasonUpdate",
},
{ 'Wansmer/treesj',
- config = true,
opts = { use_default_keymaps = false }
},
}
diff --git a/nvim/lua/plugins/snippets.lua b/.config/nvim/lua/plugins/snippets.lua
similarity index 100%
rename from nvim/lua/plugins/snippets.lua
rename to .config/nvim/lua/plugins/snippets.lua
diff --git a/nvim/lua/plugins/ui.lua b/.config/nvim/lua/plugins/ui.lua
similarity index 66%
rename from nvim/lua/plugins/ui.lua
rename to .config/nvim/lua/plugins/ui.lua
index c2b1044..8e1fb4d 100644
--- a/nvim/lua/plugins/ui.lua
+++ b/.config/nvim/lua/plugins/ui.lua
@@ -1,7 +1,4 @@
return {
- { 'nvim-pack/nvim-spectre', config = true, },
- { 'kevinhwang91/nvim-bqf', config = true },
- { 'lewis6991/gitsigns.nvim', config = true },
{ 'nvim-telescope/telescope-fzf-native.nvim', build = 'make' },
{ 'nvim-telescope/telescope.nvim',
version = false,
@@ -44,33 +41,7 @@ return {
lualine_x = {},
lualine_y = { 'diff', 'diagnostics' },
},
- options = { theme = 'gruvbox' },
- },
- },
- { 'rcarriga/nvim-notify',
- config = function()
- vim.notify = require('notify')
- end
- },
- { 'folke/zen-mode.nvim',
- opts = {
- window = {
- backdrop = 0.95,
- width = 120,
- height = 0.85,
- options = {
- signcolumn = 'no', -- disable signcolumn
- number = false, -- disable number column
- relativenumber = false, -- disable relative numbers
- },
- },
- plugins = {
- gitsigns = { enabled = true },
- wezterm = {
- enabled = true,
- font = '+2',
- },
- },
+ options = { theme = 'gruvbox-material' },
},
},
{ 'stevearc/oil.nvim',
diff --git a/nvim/spell/de.utf-8.spl b/.config/nvim/spell/de.utf-8.spl
similarity index 100%
rename from nvim/spell/de.utf-8.spl
rename to .config/nvim/spell/de.utf-8.spl
diff --git a/nvim/spell/en.utf-8.spl b/.config/nvim/spell/en.utf-8.spl
similarity index 100%
rename from nvim/spell/en.utf-8.spl
rename to .config/nvim/spell/en.utf-8.spl
diff --git a/starship.toml b/.config/starship.toml
similarity index 100%
rename from starship.toml
rename to .config/starship.toml
diff --git a/topgrade.toml b/.config/topgrade.toml
similarity index 100%
rename from topgrade.toml
rename to .config/topgrade.toml
diff --git a/editorconfig b/.editorconfig
similarity index 80%
rename from editorconfig
rename to .editorconfig
index bd3f5e2..ff2806a 100644
--- a/editorconfig
+++ b/.editorconfig
@@ -8,7 +8,7 @@ insert_final_newline = true
indent_style = space
indent_size = 2
-[*.{php,css,scss,js,json,json5,jsx,ts,tsx,html,twig,yml,yaml,svg,lua}]
+[*.{php,css,scss,js,json,jsx,ts,tsx,html,twig,yml,yaml,svg,lua}]
trim_trailing_whitespace = true
[*.{md,markdown,rst,txt,csv,snip,mail}]
diff --git a/gitconfig b/.gitconfig
similarity index 65%
rename from gitconfig
rename to .gitconfig
index db91ca3..90fcc5f 100644
--- a/gitconfig
+++ b/.gitconfig
@@ -35,19 +35,24 @@
untracked = cyan
[alias]
- git = !git
+ a = add
+ b = branch
+ br = branch -a
+ c = checkout
cl = clean -f -d
- st = status
cm = commit
co = checkout
cp = cherry-pick
- br = branch -a
- ps = push
- pl = pull
- mg = merge
- rs = reset HEAD --hard
fame = shortlog -sn --all --no-merges
+ git = !git
l = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(blue)<%an>%Creset' --abbrev-commit
+ m = merge
+ mg = merge
+ pl = pull
+ ps = push
+ rs = reset HEAD --hard
+ s = status
+ st = status
[diff]
tool = nvim -d
@@ -63,7 +68,7 @@
keepBackup = false
[push]
- default = current
+ default = current
[pull]
rebase = false
@@ -76,11 +81,27 @@
[delta]
blame-code-style = syntax
- blame-format = "{commit:<8} • {author:<18} • {timestamp:<15}"
- blame-palette = "#333333"
+ blame-format = "{author:>18} ({commit:>8}) {timestamp:<13} "
+ commit-decoration-style = normal box
+ dark = true
+ file-added-label = [+]
+ file-copied-label = [==]
+ file-modified-label = [*]
+ file-removed-label = [-]
+ file-renamed-label = [->]
hunk-header-style = omit
hyperlinks = false
+ inline-hint-style = syntax
+ line-numbers = true
+ line-numbers-left-format = " {nm:>3} │"
+ line-numbers-right-format = " {np:>3} │"
+ merge-conflict-begin-symbol = ⌃
+ merge-conflict-end-symbol = ⌄
+ merge-conflict-ours-diff-header-decoration-style = ''
+ merge-conflict-theirs-diff-header-decoration-style = ''
+ minus-non-emph-style = syntax auto
navigate = true
+ plus-non-emph-style = syntax auto
side-by-side = true
syntax-theme = gruvbox-dark
width = "-4"
diff --git a/.gitignore b/.gitignore
index ee8361c..f78b124 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,45 @@
-nvim/lazy-lock.json
-office/mutt/cache/*
-office/mutt/tmp/*
-office/vdirsyncer/status/*
+# always-ignore extensions
+*.diff
+*.err
+*.orig
+*.log
+*.rej
+*.swo
+*.swp
+*.vi
+*.bak
+
+# some folders
+*~
+.~lock*
+.tmp_*
+.sass-cache
+.revision
+.rev
+_srcs
+log
+tmp
+node_modules
+bower_components
+
+# OS or editor folders and temporary and other files
+Session.vim
+.DS_Store
+Thumbs.db
+.cache
+.project
+.settings
+.tmproj
+*.esproj
+nbproject
+*.komodoproject
+.komodotools
+NERD_tree*
+*.iws
+*.ipr
+*.iml
+
+# vcs-folders to ignore
+.hg
+.svn
+.CVS
diff --git a/hammerspoon/init.lua b/.hammerspoon/init.lua
similarity index 100%
rename from hammerspoon/init.lua
rename to .hammerspoon/init.lua
diff --git a/.mailcap b/.mailcap
new file mode 100644
index 0000000..94c3207
--- /dev/null
+++ b/.mailcap
@@ -0,0 +1,50 @@
+# HTML and text
+text/html; w3m -I %{charset} -T text/html; copiousoutput;
+text/plain; $EDITOR %s
+
+# images and other media
+audio/aac; ~/Dotfiles/scripts/quicklook.sh %s
+audio/mpeg; ~/Dotfiles/scripts/quicklook.sh %s
+audio/wav; ~/Dotfiles/scripts/quicklook.sh %s
+audio/webm; ~/Dotfiles/scripts/quicklook.sh %s
+image/bmp; ~/Dotfiles/scripts/quicklook.sh %s
+image/gif; ~/Dotfiles/scripts/quicklook.sh %s
+image/jpeg; ~/Dotfiles/scripts/quicklook.sh %s
+image/png; ~/Dotfiles/scripts/quicklook.sh %s
+image/svg+xml; ~/Dotfiles/scripts/quicklook.sh %s
+image/tiff; ~/Dotfiles/scripts/quicklook.sh %s
+image/vnd.microsoft.icon; ~/Dotfiles/scripts/quicklook.sh %s
+video/mp4; ~/Dotfiles/scripts/quicklook.sh %s
+video/mpeg; ~/Dotfiles/scripts/quicklook.sh %s
+video/webm; ~/Dotfiles/scripts/quicklook.sh %s
+video/x-msvideo; ~/Dotfiles/scripts/quicklook.sh %s
+
+# fonts
+application/vnd.ms-fontobject; ~/Dotfiles/scripts/quicklook.sh %s
+font/otf; ~/Dotfiles/scripts/quicklook.sh %s
+font/ttf; ~/Dotfiles/scripts/quicklook.sh %s
+font/woff2; ~/Dotfiles/scripts/quicklook.sh %s
+font/woff; ~/Dotfiles/scripts/quicklook.sh %s
+
+# documents
+application/json; ~/Dotfiles/scripts/quicklook.sh %s
+application/msword; ~/Dotfiles/scripts/quicklook.sh %s
+application/pdf; ~/Dotfiles/scripts/quicklook.sh %s
+application/rtf; ~/Dotfiles/scripts/quicklook.sh %s
+application/vnd.ms-excel; ~/Dotfiles/scripts/quicklook.sh %s
+application/vnd.ms-powerpoint; ~/Dotfiles/scripts/quicklook.sh %s
+application/vnd.oasis.opendocument.presentation; ~/Dotfiles/scripts/quicklook.sh %s
+application/vnd.oasis.opendocument.spreadsheet; ~/Dotfiles/scripts/quicklook.sh %s
+application/vnd.oasis.opendocument.text; ~/Dotfiles/scripts/quicklook.sh %s
+application/vnd.openxmlformats-officedocument.presentationml.presentation; ~/Dotfiles/scripts/quicklook.sh %s
+application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; ~/Dotfiles/scripts/quicklook.sh %s
+application/vnd.openxmlformats-officedocument.wordprocessingml.document; ~/Dotfiles/scripts/quicklook.sh %s
+application/xml; ~/Dotfiles/scripts/quicklook.sh %s
+text/calendar; ~/Dotfiles/scripts/quicklook.sh %s
+text/css; ~/Dotfiles/scripts/quicklook.sh %s
+text/csv; ~/Dotfiles/scripts/quicklook.sh %s
+text/javascript; ~/Dotfiles/scripts/quicklook.sh %s
+text/xml; ~/Dotfiles/scripts/quicklook.sh %s
+
+# all other Unidentified files
+application/octet-stream; ~/Dotfiles/scripts/quicklook.sh %s
diff --git a/office/mbsyncrc b/.mbsyncrc
similarity index 96%
rename from office/mbsyncrc
rename to .mbsyncrc
index 02ec36f..7d421f4 100644
--- a/office/mbsyncrc
+++ b/.mbsyncrc
@@ -8,7 +8,7 @@ User s.rademacker@mailbox.org
PassCmd "security find-internet-password -s 'imap.mailbox.org' -a 's.rademacker@mailbox.org' -w"
SSLType IMAPS
SSLVersions TLSv1.2
-CertificateFile ~/dotfiles/office/certificates.crt
+CertificateFile ~/Dotfiles/extras/certificates.crt
AuthMechs LOGIN
# Remote storage
diff --git a/office/msmtprc b/.msmtprc
similarity index 75%
rename from office/msmtprc
rename to .msmtprc
index cf9bea7..88b78c5 100644
--- a/office/msmtprc
+++ b/.msmtprc
@@ -7,4 +7,4 @@ user s.rademacker@mailbox.org
from s.rademacker@mailbox.org
tls on
tls_starttls off
-tls_trust_file ~/dotfiles/office/certificates.crt
+tls_trust_file ~/Dotfiles/extras/certificates.crt
diff --git a/.ripgreprc b/.ripgreprc
new file mode 100644
index 0000000..9062a93
--- /dev/null
+++ b/.ripgreprc
@@ -0,0 +1,8 @@
+# Search hidden files / directories (e.g. dotfiles) by default
+--hidden
+
+# Using glob patterns to include/exclude files or folders
+--glob=!.git/*
+
+# Because who cares about case!?
+--smart-case
diff --git a/.stow-local-ignore b/.stow-local-ignore
new file mode 100644
index 0000000..feee08f
--- /dev/null
+++ b/.stow-local-ignore
@@ -0,0 +1,7 @@
+\.git
+\.gitmodules
+\.luarc.json
+README.md
+extras
+scripts
+snippets
diff --git a/wezterm.lua b/.wezterm.lua
similarity index 93%
rename from wezterm.lua
rename to .wezterm.lua
index decfcfe..cb25a78 100644
--- a/wezterm.lua
+++ b/.wezterm.lua
@@ -54,32 +54,15 @@ local function newDevelopmentSession(path_and_title)
end
-- base config
-config.color_scheme = 'GruvboxDark'
-config.font = wezterm.font('MonaspiceAr Nerd Font')
-
+config.color_scheme = 'Gruvbox Material (Gogh)'
+config.line_height = 1.15
+config.font_size = 14.0
config.font = wezterm.font({
family = 'MonaspiceAr Nerd Font',
- weight = 'Regular',
harfbuzz_features = { 'calt', 'liga', 'dlig', 'ss01', 'ss02', 'ss03', 'ss04', 'ss05', 'ss06', 'ss07', 'ss08' },
})
-config.font_rules = {
- { -- Italic (comments)
- intensity = 'Normal',
- italic = true,
- font = wezterm.font({
- family = "MonaspiceRn Nerd Font",
- weight = "ExtraLight",
- stretch = "Normal",
- style = "Italic",
- harfbuzz_features = { 'calt', 'liga', 'dlig', 'ss01', 'ss02', 'ss03', 'ss04', 'ss05', 'ss06', 'ss07', 'ss08' },
- })
- },
-}
-
config.default_prog = { '/opt/homebrew/bin/zsh' }
-config.font_size = 14.0
-config.line_height = 1.1
config.initial_cols = 120
config.initial_rows = 32
config.inactive_pane_hsb = { saturation = 0.5, brightness = 0.9 }
diff --git a/.zshrc b/.zshrc
new file mode 100644
index 0000000..5970ea5
--- /dev/null
+++ b/.zshrc
@@ -0,0 +1,175 @@
+# Zinit
+if [[ ! -f $HOME/.zinit/bin/zinit.zsh ]]; then
+ command mkdir -p "$HOME/.zinit" && command chmod g-rwX "$HOME/.zinit"
+ command git clone https://github.com/zdharma-continuum/zinit "$HOME/.zinit/bin" && \
+ print -P "%F{33}▓▒░ %F{34}Installation successful.%f%b" || \
+ print -P "%F{160}▓▒░ The clone has failed.%f%b"
+fi
+
+source "$HOME/.zinit/bin/zinit.zsh"
+autoload -Uz _zinit
+(( ${+_comps} )) && _comps[zinit]=_zinit
+
+# Plugins
+zi load zsh-users/zsh-autosuggestions
+zi load zsh-users/zsh-completions
+zi load zdharma-continuum/fast-syntax-highlighting
+zi load starship/starship
+zi snippet PZTM::history
+zi snippet PZTM::completion
+
+# Fixes for unicode
+setopt COMBINING_CHARS
+setopt NO_HUP # fixes topgrade
+
+# Shell config
+export SHELL=/opt/homebrew/bin/zsh
+export TERM=xterm-256color
+export CLICOLOR=1
+export COPYFILE_DISABLE=true
+export COPY_EXTENDED_ATTRIBUTES_DISABLE=true
+export DISABLE_AUTO_TITLE=true
+export LANG=en_US.UTF-8
+export LC_ALL=en_US.UTF-8
+export LC_CTYPE=$LANG
+export LC_COLLATE=C
+
+# Shell tools and 3rd party exports/config
+export EDITOR="/opt/homebrew/bin/nvim"
+export VISUAL="/opt/homebrew/bin/nvim"
+export LESS="-F -i -J -M -R -W -x2 -X -z-4"
+export PAGER="less -F -i -J -M -R -W -x2 -X -z-4"
+export HOMEBREW_CASK_OPTS="--appdir=/Applications"
+export HOMEBREW_NO_ENV_HINTS=true
+export PYENV_ROOT="$HOME/.pyenv"
+export FZF_DEFAULT_COMMAND="rg --files --hidden --follow --glob '!.git'"
+export N_PREFIX="$HOME/n"; [[ :$PATH: == *":$N_PREFIX/bin:"* ]] || PATH+=":$N_PREFIX/bin"
+export RIPGREP_CONFIG_PATH="$HOME/.ripgreprc"
+
+# Paths
+export XDG_CONFIG_HOME="$HOME/.config"
+export MANPATH=/opt/homebrew/share/man:$MANPATH
+export PATH=/opt/homebrew/bin:$PATH
+export PATH=/opt/homebrew/sbin:$PATH
+export PATH=/opt/homebrew/opt/curl/bin:$PATH
+export PATH=/.local/bin:$PATH
+export PATH=/.composer/vendor/bin:$PATH
+export PATH="$PYENV_ROOT/bin:$PATH"
+
+# Aliases
+alias -- -='$EDITOR $(fzf)'
+alias ...='cd ../..'
+alias ..='cd ..'
+alias O='cd ~ && mbsync -a && mu index'
+alias g='git'
+alias l='nvim "+Oil"'
+alias lg='lazygit'
+alias m='neomutt'
+alias nb='npm run build'
+alias np='npm run lint && npm run production'
+alias nre='n engine > /dev/null && rm -f package-lock.json && rm -rf node_modules && npm install'
+alias ns='npm start'
+alias q='exit'
+alias sudo='sudo '
+alias to='tiptop --net en0'
+alias upall='n lts && topgrade && npm-check -gu && vimup && brew cleanup && brew autoremove'
+alias v=$EDITOR
+alias vd='$EDITOR -d'
+alias ocrpdf='convert *.jpg -auto-orient temp.pdf && ocrmypdf --rotate-pages --optimize 3 --jpeg-quality 70 temp.pdf ocr.pdf'
+alias vim=$EDITOR
+alias vimup='nvim --headless "+TSUpdateSync" +qa && nvim --headless "+Lazy! sync" +qa && nvim --headless "+MasonUpdate" +qa'
+alias yb='yarn build'
+alias yp='yarn lint && yarn production'
+alias yre='n engine > /dev/null && rm -f yarn.lock && rm -rf node_modules && yarn'
+alias ys='yarn start'
+
+s () { # as in 'show': quicklook file
+ trap 'exit 0' 2 #traps Ctrl-C (signal 2)
+ qlmanage -p $1 >& /dev/null
+}
+
+take () { # shortcut for creating and going into dir
+ mkdir -p $1
+ cd $1
+}
+
+# used in aliases
+current_branch () {
+ ref=$(git symbolic-ref HEAD 2> /dev/null) || \
+ ref=$(git rev-parse --short HEAD 2> /dev/null) || return
+ echo ${ref#refs/heads/}
+}
+
+# fancy vim/shell switch with ctrl-z (see zshrc)
+fancy-ctrl-z () {
+ if [[ $#BUFFER -eq 0 ]]; then
+ BUFFER="fg"
+ zle accept-line
+ else
+ zle push-input
+ zle clear-screen
+ fi
+}
+
+# terminal weather shortcut
+wttr () {
+ if [[ -n "$1" ]]
+ then
+ curl "wttr.in/$1?format=v2"
+ else
+ curl "wttr.in/Leipzig?format=v2"
+ fi
+}
+
+# function for easily converting a video for web
+webvideo () {
+ if [ $# -eq 0 ]; then
+ echo "No arguments supplied, example usage: webvideo FILENAME --resize 1920 --mute"
+ else
+ zparseopts -E -D -- -resize:=opt_resize -mute=opt_mute
+
+ file=$(basename -- "$1")
+ extension="${file##*.}"
+ filename="${file%.*}"
+ width="${opt_resize[2]}"
+ w="${width:-trunc(iw/2)*2}"
+ h="trunc(ih/2)*2"
+
+ if [[ -n "$width" ]]
+ then
+ h="trunc(ow/a/2)*2"
+ fi
+
+ scale="scale=$w\:$h"
+ ffmpeg -ss 00:00:02 -i $1 -frames:v 1 -vf $scale $filename.jpg
+
+ if [ -z "${opt_mute}" ]; then
+ ffmpeg -i $1 -map_metadata -1 -c:a copy -c:v libx264 -crf 26 -preset veryslow -profile:v main -pix_fmt yuv420p -movflags +faststart -vf $scale $filename.h264.mp4
+ ffmpeg -i $1 -map_metadata -1 -c:a libopus -b:a 64k -c:v libaom-av1 -crf 50 -b:v 0 -pix_fmt yuv420p -movflags +faststart -cpu-used 8 -vf $scale $filename.av1.webm
+ else
+ ffmpeg -i $1 -map_metadata -1 -an -c:v libx264 -crf 26 -preset veryslow -profile:v main -pix_fmt yuv420p -movflags +faststart -vf $scale $filename.h264.mp4
+ ffmpeg -i $1 -map_metadata -1 -an -c:v libaom-av1 -crf 50 -b:v 0 -pix_fmt yuv420p -movflags +faststart -cpu-used 8 -vf $scale $filename.av1.webm
+ fi
+ fi
+}
+
+pdf () {
+ convert *.jpg -auto-orient -monochrome temp.pdf
+ ocrmypdf --rotate-pages --optimize 3 --jpeg-quality 70 temp.pdf document.pdf
+ rm temp.pdf
+ rm *.jpg
+}
+
+# easy vim/terminal switch
+zle -N fancy-ctrl-z
+bindkey '^Z' fancy-ctrl-z
+
+# other tools init, pyenv + rbenv are sandboxd
+[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
+eval "$(starship init zsh)"
+eval "$(zoxide init zsh)"
+eval "$(rbenv init - --no-rehash)"
+eval "$(pyenv init --path --no-rehash)"
+
+# chat-gpt, hooray
+source ~/OPENAI_API_KEY.sh
diff --git a/etc/dnsmasq.conf b/etc/dnsmasq.conf
deleted file mode 100644
index 9964e8b..0000000
--- a/etc/dnsmasq.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-#listen-address=127.0.0.1
-#bind-interfaces
-address=/.localhost/127.0.0.1
-address=/.dev.localhost/127.0.0.1
diff --git a/etc/hosts b/etc/hosts
deleted file mode 100644
index cf6027e..0000000
--- a/etc/hosts
+++ /dev/null
@@ -1,23 +0,0 @@
-##
-# Host Database
-#
-# localhost is used to configure the loopback interface
-# when the system is booting. Do not change this entry.
-##
-127.0.0.1 localhost
-255.255.255.255 broadcasthost
-::1 localhost
-
-# IP remapping
-127.0.0.1 youtube.com
-127.0.0.1 www.youtube.com
-127.0.0.1 zeit.de
-127.0.0.1 www.zeit.de
-127.0.0.1 reddit.com
-127.0.0.1 www.reddit.com
-127.0.0.1 imgur.com
-127.0.0.1 www.imgur.com
-127.0.0.1 bikepacking.com
-127.0.0.1 www.bikepacking.com
-127.0.0.1 ultraleicht-trekking.com
-127.0.0.1 www.ultraleicht-trekking.com
diff --git a/etc/httpd/extra/httpd-autoindex.conf b/etc/httpd/extra/httpd-autoindex.conf
deleted file mode 100644
index 8ec60f8..0000000
--- a/etc/httpd/extra/httpd-autoindex.conf
+++ /dev/null
@@ -1,93 +0,0 @@
-#
-# Directives controlling the display of server-generated directory listings.
-#
-# Required modules: mod_authz_core, mod_authz_host,
-# mod_autoindex, mod_alias
-#
-# To see the listing of a directory, the Options directive for the
-# directory must include "Indexes", and the directory must not contain
-# a file matching those listed in the DirectoryIndex directive.
-#
-
-#
-# IndexOptions: Controls the appearance of server-generated directory
-# listings.
-#
-IndexOptions FancyIndexing HTMLTable VersionSort
-
-# We include the /icons/ alias for FancyIndexed directory listings. If
-# you do not use FancyIndexing, you may comment this out.
-#
-Alias /icons/ "/opt/homebrew/opt/httpd/share/httpd/icons/"
-
-
- Options Indexes MultiViews
- AllowOverride None
- Require all granted
-
-
-#
-# AddIcon* directives tell the server which icon to show for different
-# files or filename extensions. These are only displayed for
-# FancyIndexed directories.
-#
-AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
-
-AddIconByType (TXT,/icons/text.gif) text/*
-AddIconByType (IMG,/icons/image2.gif) image/*
-AddIconByType (SND,/icons/sound2.gif) audio/*
-AddIconByType (VID,/icons/movie.gif) video/*
-
-AddIcon /icons/binary.gif .bin .exe
-AddIcon /icons/binhex.gif .hqx
-AddIcon /icons/tar.gif .tar
-AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
-AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
-AddIcon /icons/a.gif .ps .ai .eps
-AddIcon /icons/layout.gif .html .shtml .htm .pdf
-AddIcon /icons/text.gif .txt
-AddIcon /icons/c.gif .c
-AddIcon /icons/p.gif .pl .py
-AddIcon /icons/f.gif .for
-AddIcon /icons/dvi.gif .dvi
-AddIcon /icons/uuencoded.gif .uu
-AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
-AddIcon /icons/tex.gif .tex
-AddIcon /icons/bomb.gif core
-
-AddIcon /icons/back.gif ..
-AddIcon /icons/hand.right.gif README
-AddIcon /icons/folder.gif ^^DIRECTORY^^
-AddIcon /icons/blank.gif ^^BLANKICON^^
-
-#
-# DefaultIcon is which icon to show for files which do not have an icon
-# explicitly set.
-#
-DefaultIcon /icons/unknown.gif
-
-#
-# AddDescription allows you to place a short description after a file in
-# server-generated indexes. These are only displayed for FancyIndexed
-# directories.
-# Format: AddDescription "description" filename
-#
-#AddDescription "GZIP compressed document" .gz
-#AddDescription "tar archive" .tar
-#AddDescription "GZIP compressed tar archive" .tgz
-
-#
-# ReadmeName is the name of the README file the server will look for by
-# default, and append to directory listings.
-#
-# HeaderName is the name of a file which should be prepended to
-# directory indexes.
-ReadmeName README.html
-HeaderName HEADER.html
-
-#
-# IndexIgnore is a set of filenames which directory indexing should ignore
-# and not include in the listing. Shell-style wildcarding is permitted.
-#
-IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
-
diff --git a/etc/httpd/extra/httpd-dav.conf b/etc/httpd/extra/httpd-dav.conf
deleted file mode 100644
index 356bf19..0000000
--- a/etc/httpd/extra/httpd-dav.conf
+++ /dev/null
@@ -1,50 +0,0 @@
-#
-# Distributed authoring and versioning (WebDAV)
-#
-# Required modules: mod_alias, mod_auth_digest, mod_authn_core, mod_authn_file,
-# mod_authz_core, mod_authz_user, mod_dav, mod_dav_fs,
-# mod_setenvif
-
-# The following example gives DAV write access to a directory called
-# "uploads" under the ServerRoot directory.
-#
-# The User/Group specified in httpd.conf needs to have write permissions
-# on the directory where the DavLockDB is placed and on any directory where
-# "Dav On" is specified.
-
-DavLockDB "/opt/homebrew/opt/httpd/var/DavLock"
-
-Alias /uploads "/opt/homebrew/opt/httpd/uploads"
-
-
- Dav On
-
- AuthType Digest
- AuthName DAV-upload
- # You can use the htdigest program to create the password database:
- # htdigest -c "/opt/homebrew/opt/httpd/user.passwd" DAV-upload admin
- AuthUserFile "/opt/homebrew/opt/httpd/user.passwd"
- AuthDigestProvider file
-
- # Allow universal read-access, but writes are restricted
- # to the admin user.
-
- Require method GET POST OPTIONS
- Require user admin
-
-
-
-#
-# The following directives disable redirects on non-GET requests for
-# a directory that does not include the trailing slash. This fixes a
-# problem with several clients that do not appropriately handle
-# redirects for folders with DAV methods.
-#
-BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
-BrowserMatch "MS FrontPage" redirect-carefully
-BrowserMatch "^WebDrive" redirect-carefully
-BrowserMatch "^WebDAVFS/1.[01234]" redirect-carefully
-BrowserMatch "^gnome-vfs/1.0" redirect-carefully
-BrowserMatch "^XML Spy" redirect-carefully
-BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
-BrowserMatch " Konqueror/4" redirect-carefully
diff --git a/etc/httpd/extra/httpd-default.conf b/etc/httpd/extra/httpd-default.conf
deleted file mode 100644
index f1e7bc8..0000000
--- a/etc/httpd/extra/httpd-default.conf
+++ /dev/null
@@ -1,90 +0,0 @@
-#
-# This configuration file reflects default settings for Apache HTTP Server.
-#
-# You may change these, but chances are that you may not need to.
-#
-
-#
-# Timeout: The number of seconds before receives and sends time out.
-#
-Timeout 300
-
-#
-# KeepAlive: Whether or not to allow persistent connections (more than
-# one request per connection). Set to "Off" to deactivate.
-#
-KeepAlive On
-
-#
-# MaxKeepAliveRequests: The maximum number of requests to allow
-# during a persistent connection. Set to 0 to allow an unlimited amount.
-# We recommend you leave this number high, for maximum performance.
-#
-MaxKeepAliveRequests 100
-
-#
-# KeepAliveTimeout: Number of seconds to wait for the next request from the
-# same client on the same connection.
-#
-KeepAliveTimeout 5
-
-#
-# UseCanonicalName: Determines how Apache constructs self-referencing
-# URLs and the SERVER_NAME and SERVER_PORT variables.
-# When set "Off", Apache will use the Hostname and Port supplied
-# by the client. When set "On", Apache will use the value of the
-# ServerName directive.
-#
-UseCanonicalName Off
-
-#
-# AccessFileName: The name of the file to look for in each directory
-# for additional configuration directives. See also the AllowOverride
-# directive.
-#
-AccessFileName .htaccess
-
-#
-# ServerTokens
-# This directive configures what you return as the Server HTTP response
-# Header. The default is 'Full' which sends information about the OS-Type
-# and compiled in modules.
-# Set to one of: Full | OS | Minor | Minimal | Major | Prod
-# where Full conveys the most information, and Prod the least.
-#
-ServerTokens Full
-
-#
-# Optionally add a line containing the server version and virtual host
-# name to server-generated pages (internal error documents, FTP directory
-# listings, mod_status and mod_info output etc., but not CGI generated
-# documents or custom error documents).
-# Set to "EMail" to also include a mailto: link to the ServerAdmin.
-# Set to one of: On | Off | EMail
-#
-ServerSignature Off
-
-#
-# HostnameLookups: Log the names of clients or just their IP addresses
-# e.g., www.apache.org (on) or 204.62.129.132 (off).
-# The default is off because it'd be overall better for the net if people
-# had to knowingly turn this feature on, since enabling it means that
-# each client request will result in AT LEAST one lookup request to the
-# nameserver.
-#
-HostnameLookups Off
-
-#
-# Set a timeout for how long the client may take to send the request header
-# and body.
-# The default for the headers is header=20-40,MinRate=500, which means wait
-# for the first byte of headers for 20 seconds. If some data arrives,
-# increase the timeout corresponding to a data rate of 500 bytes/s, but not
-# above 40 seconds.
-# The default for the request body is body=20,MinRate=500, which is the same
-# but has no upper limit for the timeout.
-# To disable, set to header=0 body=0
-#
-
- RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500
-
diff --git a/etc/httpd/extra/httpd-default.conf.default b/etc/httpd/extra/httpd-default.conf.default
deleted file mode 100644
index 7196922..0000000
--- a/etc/httpd/extra/httpd-default.conf.default
+++ /dev/null
@@ -1,90 +0,0 @@
-#
-# This configuration file reflects default settings for Apache HTTP Server.
-#
-# You may change these, but chances are that you may not need to.
-#
-
-#
-# Timeout: The number of seconds before receives and sends time out.
-#
-Timeout 60
-
-#
-# KeepAlive: Whether or not to allow persistent connections (more than
-# one request per connection). Set to "Off" to deactivate.
-#
-KeepAlive On
-
-#
-# MaxKeepAliveRequests: The maximum number of requests to allow
-# during a persistent connection. Set to 0 to allow an unlimited amount.
-# We recommend you leave this number high, for maximum performance.
-#
-MaxKeepAliveRequests 100
-
-#
-# KeepAliveTimeout: Number of seconds to wait for the next request from the
-# same client on the same connection.
-#
-KeepAliveTimeout 5
-
-#
-# UseCanonicalName: Determines how Apache constructs self-referencing
-# URLs and the SERVER_NAME and SERVER_PORT variables.
-# When set "Off", Apache will use the Hostname and Port supplied
-# by the client. When set "On", Apache will use the value of the
-# ServerName directive.
-#
-UseCanonicalName Off
-
-#
-# AccessFileName: The name of the file to look for in each directory
-# for additional configuration directives. See also the AllowOverride
-# directive.
-#
-AccessFileName .htaccess
-
-#
-# ServerTokens
-# This directive configures what you return as the Server HTTP response
-# Header. The default is 'Full' which sends information about the OS-Type
-# and compiled in modules.
-# Set to one of: Full | OS | Minor | Minimal | Major | Prod
-# where Full conveys the most information, and Prod the least.
-#
-ServerTokens Full
-
-#
-# Optionally add a line containing the server version and virtual host
-# name to server-generated pages (internal error documents, FTP directory
-# listings, mod_status and mod_info output etc., but not CGI generated
-# documents or custom error documents).
-# Set to "EMail" to also include a mailto: link to the ServerAdmin.
-# Set to one of: On | Off | EMail
-#
-ServerSignature Off
-
-#
-# HostnameLookups: Log the names of clients or just their IP addresses
-# e.g., www.apache.org (on) or 204.62.129.132 (off).
-# The default is off because it'd be overall better for the net if people
-# had to knowingly turn this feature on, since enabling it means that
-# each client request will result in AT LEAST one lookup request to the
-# nameserver.
-#
-HostnameLookups Off
-
-#
-# Set a timeout for how long the client may take to send the request header
-# and body.
-# The default for the headers is header=20-40,MinRate=500, which means wait
-# for the first byte of headers for 20 seconds. If some data arrives,
-# increase the timeout corresponding to a data rate of 500 bytes/s, but not
-# above 40 seconds.
-# The default for the request body is body=20,MinRate=500, which is the same
-# but has no upper limit for the timeout.
-# To disable, set to header=0 body=0
-#
-
- RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500
-
diff --git a/etc/httpd/extra/httpd-h5bp-server-configs.conf b/etc/httpd/extra/httpd-h5bp-server-configs.conf
deleted file mode 100644
index 572f6de..0000000
--- a/etc/httpd/extra/httpd-h5bp-server-configs.conf
+++ /dev/null
@@ -1,1260 +0,0 @@
-# Apache Server Configs v5.0.0 | MIT License
-# https://github.com/h5bp/server-configs-apache
-
-# (!) Using `.htaccess` files slows down Apache, therefore, if you have
-# access to the main server configuration file (which is usually called
-# `httpd.conf`), you should add this logic there.
-#
-# https://httpd.apache.org/docs/current/howto/htaccess.html
-
-# ######################################################################
-# # CROSS-ORIGIN #
-# ######################################################################
-
-# ----------------------------------------------------------------------
-# | Cross-origin requests |
-# ----------------------------------------------------------------------
-
-# Allow cross-origin requests.
-#
-# https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
-# https://enable-cors.org/
-# https://www.w3.org/TR/cors/
-
-# (!) Do not use this without understanding the consequences.
-# This will permit access from any other website.
-# Instead of using this file, consider using a specific rule such as
-# allowing access based on (sub)domain:
-#
-# Header set Access-Control-Allow-Origin "subdomain.example.com"
-#
-# (1) When `Access-Control-Allow-Origin` points to a specific rule rather
-# than `*`, then `Vary: Origin` should be sent along with the response.
-
-#
-# Header set Access-Control-Allow-Origin "*"
-
-# # (1)
-# # Header append Vary Origin
-#
-
-# ----------------------------------------------------------------------
-# | Cross-origin images |
-# ----------------------------------------------------------------------
-
-# Send the CORS header for images when browsers request it.
-#
-# https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image
-# https://blog.chromium.org/2011/07/using-cross-domain-images-in-webgl-and.html
-
-
-
-
- SetEnvIf Origin ":" IS_CORS
- Header set Access-Control-Allow-Origin "*" env=IS_CORS
-
-
-
-
-# ----------------------------------------------------------------------
-# | Cross-origin web fonts |
-# ----------------------------------------------------------------------
-
-# Allow cross-origin access to web fonts.
-#
-# https://developers.google.com/fonts/docs/troubleshooting
-
-
-
- Header set Access-Control-Allow-Origin "*"
-
-
-
-# ----------------------------------------------------------------------
-# | Cross-origin resource timing |
-# ----------------------------------------------------------------------
-
-# Allow cross-origin access to the timing information for all resources.
-#
-# If a resource isn't served with a `Timing-Allow-Origin` header that would
-# allow its timing information to be shared with the document, some of the
-# attributes of the `PerformanceResourceTiming` object will be set to zero.
-#
-# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Timing-Allow-Origin
-# https://www.w3.org/TR/resource-timing/
-# https://www.stevesouders.com/blog/2014/08/21/resource-timing-practical-tips/
-
-#
-# Header set Timing-Allow-Origin: "*"
-#
-
-# ######################################################################
-# # ERRORS #
-# ######################################################################
-
-# ----------------------------------------------------------------------
-# | Custom error messages/pages |
-# ----------------------------------------------------------------------
-
-# Customize what Apache returns to the client in case of an error.
-#
-# https://httpd.apache.org/docs/current/mod/core.html#errordocument
-
-# ErrorDocument 404 /404.html
-
-# ----------------------------------------------------------------------
-# | Error prevention |
-# ----------------------------------------------------------------------
-
-# Disable the pattern matching based on filenames.
-#
-# This setting prevents Apache from returning a 404 error as the result of a
-# rewrite when the directory with the same name does not exist.
-#
-# https://httpd.apache.org/docs/current/content-negotiation.html#multiviews
-
-Options -MultiViews
-
-# ######################################################################
-# # MEDIA TYPES AND CHARACTER ENCODINGS #
-# ######################################################################
-
-# ----------------------------------------------------------------------
-# | Media types |
-# ----------------------------------------------------------------------
-
-# Serve resources with the proper media types (f.k.a. MIME types).
-#
-# https://www.iana.org/assignments/media-types/media-types.xhtml
-# https://httpd.apache.org/docs/current/mod/mod_mime.html#addtype
-
-
-
- # Data interchange
-
- AddType application/atom+xml atom
- AddType application/json json map topojson
- AddType application/ld+json jsonld
- AddType application/rss+xml rss
- AddType application/geo+json geojson
- AddType application/rdf+xml rdf
- AddType application/xml xml
-
-
- # JavaScript
-
- # Servers should use text/javascript for JavaScript resources.
- # https://html.spec.whatwg.org/multipage/scripting.html#scriptingLanguages
-
- AddType text/javascript js mjs
-
-
- # Manifest files
-
- AddType application/manifest+json webmanifest
- AddType application/x-web-app-manifest+json webapp
- AddType text/cache-manifest appcache
-
-
- # Media files
-
- AddType audio/mp4 f4a f4b m4a
- AddType audio/ogg oga ogg opus
- AddType image/avif avif
- AddType image/avif-sequence avifs
- AddType image/bmp bmp
- AddType image/jxl jxl
- AddType image/svg+xml svg svgz
- AddType image/webp webp
- AddType video/mp4 f4v f4p m4v mp4
- AddType video/ogg ogv
- AddType video/webm webm
- AddType video/x-flv flv
-
- # Serving `.ico` image files with a different media type prevents
- # Internet Explorer from displaying them as images:
- # https://github.com/h5bp/html5-boilerplate/commit/37b5fec090d00f38de64b591bcddcb205aadf8ee
-
- AddType image/x-icon cur ico
-
-
- # WebAssembly
-
- AddType application/wasm wasm
-
-
- # Web fonts
-
- AddType font/woff woff
- AddType font/woff2 woff2
- AddType application/vnd.ms-fontobject eot
- AddType font/ttf ttf
- AddType font/collection ttc
- AddType font/otf otf
-
-
- # Other
-
- AddType application/octet-stream safariextz
- AddType application/x-bb-appworld bbaw
- AddType application/x-chrome-extension crx
- AddType application/x-opera-extension oex
- AddType application/x-xpinstall xpi
- AddType text/calendar ics
- AddType text/markdown markdown md
- AddType text/vcard vcard vcf
- AddType text/vnd.rim.location.xloc xloc
- AddType text/vtt vtt
- AddType text/x-component htc
-
-
-
-# ----------------------------------------------------------------------
-# | Character encodings |
-# ----------------------------------------------------------------------
-
-# Serve all resources labeled as `text/html` or `text/plain` with the media type
-# `charset` parameter set to `UTF-8`.
-#
-# https://httpd.apache.org/docs/current/mod/core.html#adddefaultcharset
-
-AddDefaultCharset utf-8
-
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-# Serve the following file types with the media type `charset` parameter set to
-# `UTF-8`.
-#
-# https://httpd.apache.org/docs/current/mod/mod_mime.html#addcharset
-
-
- AddCharset utf-8 .appcache \
- .bbaw \
- .css \
- .htc \
- .ics \
- .js \
- .json \
- .manifest \
- .map \
- .markdown \
- .md \
- .mjs \
- .topojson \
- .vtt \
- .vcard \
- .vcf \
- .webmanifest \
- .xloc
-
-
-# ######################################################################
-# # REWRITES #
-# ######################################################################
-
-# ----------------------------------------------------------------------
-# | Rewrite engine |
-# ----------------------------------------------------------------------
-
-# (1) Turn on the rewrite engine (this is necessary in order for the
-# `RewriteRule` directives to work).
-#
-# https://httpd.apache.org/docs/current/mod/mod_rewrite.html#RewriteEngine
-#
-# (2) Enable the `FollowSymLinks` option if it isn't already.
-#
-# https://httpd.apache.org/docs/current/mod/core.html#options
-#
-# (3) If your web host doesn't allow the `FollowSymlinks` option, you need to
-# comment it out or remove it, and then uncomment the
-# `Options +SymLinksIfOwnerMatch` line (4), but be aware of the performance
-# impact.
-#
-# https://httpd.apache.org/docs/current/misc/perf-tuning.html#symlinks
-#
-# (4) Some cloud hosting services will require you set `RewriteBase`.
-#
-# https://www.rackspace.com/knowledge_center/frequently-asked-question/why-is-modrewrite-not-working-on-my-site
-# https://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritebase
-#
-# (5) Depending on how your server is set up, you may also need to use the
-# `RewriteOptions` directive to enable some options for the rewrite engine.
-#
-# https://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriteoptions
-
-
-
- # (1)
- RewriteEngine On
-
- # (2)
- Options +FollowSymlinks
-
- # (3)
- # Options +SymLinksIfOwnerMatch
-
- # (4)
- # RewriteBase /
-
- # (5)
- # RewriteOptions
-
-
-
-# ----------------------------------------------------------------------
-# | Forcing `https://` |
-# ----------------------------------------------------------------------
-
-# Redirect from the `http://` to the `https://` version of the URL.
-#
-# https://wiki.apache.org/httpd/RewriteHTTPToHTTPS
-
-# (1) If you're using cPanel AutoSSL or the Let's Encrypt webroot method it
-# will fail to validate the certificate if validation requests are
-# redirected to HTTPS. Turn on the condition(s) you need.
-#
-# https://www.iana.org/assignments/well-known-uris/well-known-uris.xhtml
-# https://tools.ietf.org/html/draft-ietf-acme-acme-12
-
-#
-# RewriteEngine On
-# RewriteCond %{HTTPS} !=on
-# # (1)
-# # RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/
-# # RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[\w-]+$
-# # RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
-# RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
-#
-
-# ----------------------------------------------------------------------
-# | Suppressing the `www.` at the beginning of URLs |
-# ----------------------------------------------------------------------
-
-# Rewrite www.example.com → example.com
-
-# The same content should never be available under two different URLs,
-# especially not with and without `www.` at the beginning.
-# This can cause SEO problems (duplicate content), and therefore, you should
-# choose one of the alternatives and redirect the other one.
-#
-# (!) NEVER USE BOTH WWW-RELATED RULES AT THE SAME TIME!
-
-# (1) Set %{ENV:PROTO} variable, to allow rewrites to redirect with the
-# appropriate schema automatically (http or https).
-#
-# (2) The rule assumes by default that both HTTP and HTTPS environments are
-# available for redirection.
-# If your SSL certificate could not handle one of the domains used during
-# redirection, you should turn the condition on.
-#
-# https://github.com/h5bp/server-configs-apache/issues/52
-
-
-
- RewriteEngine On
-
- # (1)
- RewriteCond %{HTTPS} =on
- RewriteRule ^ - [E=PROTO:https]
- RewriteCond %{HTTPS} !=on
- RewriteRule ^ - [E=PROTO:http]
-
- # (2)
- # RewriteCond %{HTTPS} !=on
-
- RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
- RewriteRule ^ %{ENV:PROTO}://%1%{REQUEST_URI} [R=301,L]
-
-
-
-# ----------------------------------------------------------------------
-# | Forcing the `www.` at the beginning of URLs |
-# ----------------------------------------------------------------------
-
-# Rewrite example.com → www.example.com
-
-# The same content should never be available under two different URLs,
-# especially not with and without `www.` at the beginning.
-# This can cause SEO problems (duplicate content), and therefore, you should
-# choose one of the alternatives and redirect the other one.
-#
-# (!) NEVER USE BOTH WWW-RELATED RULES AT THE SAME TIME!
-
-# (1) Set %{ENV:PROTO} variable, to allow rewrites to redirect with the
-# appropriate schema automatically (http or https).
-#
-# (2) The rule assumes by default that both HTTP and HTTPS environments are
-# available for redirection.
-# If your SSL certificate could not handle one of the domains used during
-# redirection, you should turn the condition on.
-#
-# https://github.com/h5bp/server-configs-apache/issues/52
-
-# Be aware that the following might not be a good idea if you use "real"
-# subdomains for certain parts of your website.
-
-#
-
-# RewriteEngine On
-
-# # (1)
-# RewriteCond %{HTTPS} =on
-# RewriteRule ^ - [E=PROTO:https]
-# RewriteCond %{HTTPS} !=on
-# RewriteRule ^ - [E=PROTO:http]
-
-# # (2)
-# # RewriteCond %{HTTPS} !=on
-
-# RewriteCond %{HTTP_HOST} !^www\. [NC]
-# RewriteCond %{SERVER_ADDR} !=127.0.0.1
-# RewriteCond %{SERVER_ADDR} !=::1
-# RewriteRule ^ %{ENV:PROTO}://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
-
-#
-
-# ######################################################################
-# # SECURITY #
-# ######################################################################
-
-# ----------------------------------------------------------------------
-# | Frame Options |
-# ----------------------------------------------------------------------
-
-# Protect website against clickjacking.
-#
-# The example below sends the `X-Frame-Options` response header with the value
-# `DENY`, informing browsers not to display the content of the web page in any
-# frame.
-#
-# This might not be the best setting for everyone. You should read about the
-# other two possible values the `X-Frame-Options` header field can have:
-# `SAMEORIGIN` and `ALLOW-FROM`.
-# https://tools.ietf.org/html/rfc7034#section-2.1.
-#
-# Keep in mind that while you could send the `X-Frame-Options` header for all
-# of your website's pages, this has the potential downside that it forbids even
-# non-malicious framing of your content.
-#
-# Nonetheless, you should ensure that you send the `X-Frame-Options` header for
-# all pages that allow a user to make a state-changing operation (e.g: pages
-# that contain one-click purchase links, checkout or bank-transfer confirmation
-# pages, pages that make permanent configuration changes, etc.).
-#
-# Sending the `X-Frame-Options` header can also protect your website against
-# more than just clickjacking attacks.
-# https://cure53.de/xfo-clickjacking.pdf.
-#
-# (!) The `Content-Security-Policy` header has a `frame-ancestors` directive
-# which obsoletes this header for supporting browsers.
-#
-# https://tools.ietf.org/html/rfc7034
-# https://owasp.org/www-project-secure-headers/#x-frame-options
-# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options
-# https://docs.microsoft.com/archive/blogs/ieinternals/combating-clickjacking-with-x-frame-options
-
-#
-# Header always set X-Frame-Options "DENY" "expr=%{CONTENT_TYPE} =~ m#text/html#i"
-#
-
-# ----------------------------------------------------------------------
-# | Content Security Policy (CSP) |
-# ----------------------------------------------------------------------
-
-# Mitigate the risk of cross-site scripting and other content-injection
-# attacks.
-#
-# This can be done by setting a Content Security Policy which permits
-# trusted sources of content for your website.
-#
-# There is no policy that fits all websites, you will have to modify the
-# `Content-Security-Policy` directives in the example depending on your needs.
-#
-# The example policy below aims to:
-#
-# (1) Restrict all fetches by default to the origin of the current website by
-# setting the `default-src` directive to `'self'` - which acts as a
-# fallback to all "Fetch directives" (https://developer.mozilla.org/en-US/docs/Glossary/Fetch_directive).
-#
-# This is convenient as you do not have to specify all Fetch directives
-# that apply to your site, for example:
-# `connect-src 'self'; font-src 'self'; script-src 'self'; style-src 'self'`, etc.
-#
-# This restriction also means that you must explicitly define from which
-# site(s) your website is allowed to load resources from.
-#
-# (2) The `` element is not allowed on the website. This is to prevent
-# attackers from changing the locations of resources loaded from relative
-# URLs.
-#
-# If you want to use the `` element, then `base-uri 'self'` can be
-# used instead.
-#
-# (3) Form submissions are only allowed from the current website by setting:
-# `form-action 'self'`.
-#
-# (4) Prevents all websites (including your own) from embedding your webpages
-# within e.g. the `