Compare commits

..

35 Commits

Author SHA1 Message Date
d84bc8062e Use prettier instead of prettierd
I keep having issues with prettierd not working and prettier works just
fine.
2025-12-05 13:48:28 +01:00
4e3d0500b9 Fixed pnpm setup 2025-12-03 21:32:20 +01:00
38f4c63336 Extra luals settings 2025-11-22 00:29:11 +01:00
434ff26226 Add eslint 2025-11-22 00:29:11 +01:00
af95197cb1 Update lspconfig 2025-11-22 00:29:10 +01:00
c2772d1874 Add vtsls as manual lsp 2025-11-22 00:29:10 +01:00
dd22699549 Switch default branch to main 2025-11-22 00:29:10 +01:00
b35b35731b zsh: Fix bat command availability check 2025-09-13 19:37:31 +02:00
881f99ef16 nvim: Use fork of which-key to fix border 2025-09-13 02:42:42 +02:00
0117cc612e zsh: Only start sesh-select if both sesh and sesh-select are available 2025-09-13 02:00:53 +02:00
1d3ae136be sesh: Moved sesh-select to be under sesh 2025-09-13 01:59:45 +02:00
362064b206 git: Also install git fixup on git-alten 2025-09-13 01:35:29 +02:00
c84b6b6584 nvim: Added crate plugin 2025-09-12 02:47:17 +02:00
9108f57780 nvim: Update other plugins 2025-09-12 02:21:14 +02:00
e4d4be54c6 nvim: Update schema-companion and kubernetes matcher 2025-09-12 02:21:14 +02:00
54b1090984 nvim: Switch back to fzf for fuzzy finding
Since I am now using fzf for a bunch of other things as well it made
sense to switch back in smart open as well.
2025-09-12 02:21:14 +02:00
43b0059631 nvim: Update smart-open to fix pause when opening 2025-09-12 02:21:14 +02:00
5c64115e5d tmux: Enable detach-on-destroy for scratch sessions 2025-09-12 02:21:13 +02:00
af1ddc5b3f nvim: Added keybind to cargo run in shell window 2025-09-12 02:21:13 +02:00
c2f57e070c tmux: Added plugin for selecting urls with the keyboard 2025-09-12 02:21:13 +02:00
374825559b tmux: Improve kill keybinds and pervent tmux from closing when there are still sessions 2025-09-12 02:21:13 +02:00
d8cf7121ef sesh: Created preconfigured sessions 2025-09-12 02:21:13 +02:00
1176535475 tmux: Use sesh for tmux session management
The zsh tmux plugin has been removed and instead fzf is shown to select
a session.
2025-09-12 02:21:13 +02:00
25b3a169a2 fzf: Improve border label 2025-09-12 02:21:13 +02:00
254bfd4be2 zsh: Improve how command availability is detected 2025-09-12 02:21:13 +02:00
ba282e656d nvim: Accidentally removed bufresize at some point 2025-09-12 02:21:12 +02:00
e10de143eb zsh: Update Oh-My-Zsh 2025-09-08 12:32:27 +02:00
e22f0c594c zsh: Added completion autosuggest strategy as fallback 2025-09-07 05:58:48 +02:00
b22739cb71 zsh: Add additional completions 2025-09-07 05:37:11 +02:00
a9163907be zsh: Generate text objects for quotes and brackets 2025-09-07 05:29:17 +02:00
59b2334253 readme: Added more tools 2025-09-07 05:26:23 +02:00
17a23eb7e4 zsh: Disable dirhistory plugin as I never used it 2025-09-07 05:26:20 +02:00
9a76b5071e git: Further improvements to git fixup 2025-09-07 05:26:17 +02:00
02d298a163 zsh: Configure fzf
It is now setup to look very similar to telescope.
It now uses fd for finding files.

There is a shell function `pi` to search for packages using fzf and to
then install them with paru
2025-09-07 05:26:13 +02:00
87359588e0 zsh: Added zoxide 2025-09-07 05:26:08 +02:00
30 changed files with 333 additions and 103 deletions

3
.gitmodules vendored
View File

@@ -13,3 +13,6 @@
[submodule "zsh/custom/plugins/fast-syntax-highlighting"]
path = zsh/custom/plugins/fast-syntax-highlighting
url = https://github.com/zdharma-continuum/fast-syntax-highlighting.git
[submodule "zsh/custom/plugins/zsh-completions"]
path = zsh/custom/plugins/zsh-completions
url = https://github.com/zsh-users/zsh-completions.git

View File

@@ -4,10 +4,12 @@
```
bat
git-delta
fd
rg
fzf
git-delta
paru
rg
zoxide
```
### Useful

1
git-alten/dot-local Symbolic link
View File

@@ -0,0 +1 @@
../git/dot-local

View File

@@ -1,2 +0,0 @@
[alias]
fixup = "!f() { TARGET=$(git log -n 50 --pretty=format:'%h %s' --no-merges | fzf | cut -c -7 ); git commit --fixup=$TARGET ${@:2} && GIT_SEQUENCE_EDITOR=true git rebase -i --autostash --autosquash $TARGET^; }; f"

View File

@@ -1,7 +1,6 @@
[include]
path = ~/.dotfiles/git/configs/lfs.gitconfig
path = ~/.dotfiles/git/configs/delta.gitconfig
path = ~/.dotfiles/git/configs/alias.gitconfig
[push]
default = simple
@@ -25,7 +24,7 @@
tool = nvimdiff
[init]
defaultBranch = master
defaultBranch = main
[rebase]
autosquash = true

19
git/dot-local/bin/git-fixup Executable file
View File

@@ -0,0 +1,19 @@
#!/usr/bin/env bash
TARGET=$1
if [ -z "$TARGET" ]; then
if hash fzf 2>/dev/null; then
TARGET=$(git log -n 50 --pretty=format:'%h %s' --no-merges | fzf --border-label=' Select commit ' | cut -c -7 )
else
echo "Not installed: fzf"
exit -1
fi
fi
if [ -z "$TARGET" ]; then
echo "No target specified"
exit -1
fi
git commit --fixup=$TARGET ${@:2} && GIT_SEQUENCE_EDITOR=true git rebase -i --autostash --autosquash $TARGET^

View File

@@ -3,19 +3,21 @@
"actions-preview.nvim": { "branch": "master", "commit": "36513ad213855d497b7dd3391a24d1d75d58e36f" },
"blink.cmp": { "branch": "main", "commit": "bae4bae0eedd1fa55f34b685862e94a222d5c6f8" },
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
"bufresize.nvim": { "branch": "master", "commit": "3b19527ab936d6910484dcc20fb59bdb12322d8b" },
"conform.nvim": { "branch": "master", "commit": "b4aab989db276993ea5dcb78872be494ce546521" },
"crates.nvim": { "branch": "main", "commit": "afcd1cc3eeceb5783676fc8464389b9216a29d05" },
"eyeliner.nvim": { "branch": "main", "commit": "8f197eb30cecdf4c2cc9988a5eecc6bc34c0c7d6" },
"fidget.nvim": { "branch": "main", "commit": "4d5858bd4c471c895060e1b9f3575f1551184dc5" },
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
"gitsigns.nvim": { "branch": "main", "commit": "6e3c66548035e50db7bd8e360a29aec6620c3641" },
"gruvbox.nvim": { "branch": "main", "commit": "a56f758f9d3eed0b8afbab6ea3ee523887755aed" },
"gruvbox.nvim": { "branch": "main", "commit": "5e0a460d8e0f7f669c158dedd5f9ae2bcac31437" },
"guess-indent.nvim": { "branch": "main", "commit": "84a4987ff36798c2fc1169cbaff67960aed9776f" },
"inc-rename.nvim": { "branch": "main", "commit": "8ae25b35ae16ca4bd5de3d3c472eec3b574018d4" },
"kubernetes.nvim": { "branch": "main", "commit": "44daf998345628a1a7034e3aaa31f4e05e4dde7c" },
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
"lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" },
"lualine.nvim": { "branch": "master", "commit": "b8c23159c0161f4b89196f74ee3a6d02cdc3a955" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "5e085efe67fccb13372d54331d849219662a7e93" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "7f9a39fcd2ac6e979001f857727d606888f5909c" },
"mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" },
"mason.nvim": { "branch": "main", "commit": "7dc4facca9702f95353d5a1f87daf23d78e31c2a" },
"neo-tree.nvim": { "branch": "v3.x", "commit": "f1deac7ecec88c28a250d890ba7bb35843e69cbd" },
@@ -23,27 +25,27 @@
"nvim-colorizer.lua": { "branch": "master", "commit": "51cf7c995ed1eb6642aecf19067ee634fa1b6ba2" },
"nvim-dap": { "branch": "master", "commit": "b0f983507e3702f073bfe1516846e58b56d4e42f" },
"nvim-dap-virtual-text": { "branch": "master", "commit": "fbdb48c2ed45f4a8293d0d483f7730d24467ccb6" },
"nvim-lspconfig": { "branch": "master", "commit": "3a8d621d74bd9760b9f8dbc4fdfb937bb13d2f49" },
"nvim-lspconfig": { "branch": "master", "commit": "ac98db2f9f06a56498ec890a96928774eae412c3" },
"nvim-surround": { "branch": "main", "commit": "a868c256c861044beb9794b4dd126480dcdfbdad" },
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "71385f191ec06ffc60e80e6b0c9a9d5daed4824c" },
"nvim-ts-autotag": { "branch": "main", "commit": "a1d526af391f6aebb25a8795cbc05351ed3620b5" },
"nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" },
"peek.nvim": { "branch": "master", "commit": "5820d937d5414baea5f586dc2a3d912a74636e5b" },
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"ros-nvim": { "branch": "main", "commit": "1ad64cd3a1e144dfea67890845f9da2e82d96900" },
"schema-companion.nvim": { "branch": "main", "commit": "b22243d3ca71be08d06a4b9bf200c1d677c41d45" },
"schemastore.nvim": { "branch": "main", "commit": "2ae6d27897c60265d4ad3f33e286528d519098fd" },
"schema-companion.nvim": { "branch": "main", "commit": "e94f5f8439705d772363817c9d2c6c9fc7562bd0" },
"schemastore.nvim": { "branch": "main", "commit": "d522e3ed6ed2c7bed7ebe1e42615e79b3aabfe65" },
"scrollEOF.nvim": { "branch": "master", "commit": "aeedfad14e4a0cfa31b44b531c1ad8fd4696b551" },
"smart-open.nvim": { "branch": "0.2.x", "commit": "560d8f16e17977c8303db6f9660db58a4415ca41" },
"smart-splits.nvim": { "branch": "master", "commit": "1ac316e6ea719843fd80716d1105613c98632af1" },
"smart-open.nvim": { "branch": "0.3.x", "commit": "e7f27218bd43de5262d3e8e3e84a135737ca6942" },
"smart-splits.nvim": { "branch": "master", "commit": "51e400b0bb6cbfd48e56d1baca250f34028cf1d3" },
"snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" },
"sqlite.lua": { "branch": "master", "commit": "50092d60feb242602d7578398c6eb53b4a8ffe7b" },
"telescope-fzy-native.nvim": { "branch": "master", "commit": "282f069504515eec762ab6d6c89903377252bf5b" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" },
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
"telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" },
"todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" },
"trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" },
"ultimate-autopair.nvim": { "branch": "v0.6", "commit": "2025a181c303cec0fabd4bbdc9d752574ceda2d9" },
"ultimate-autopair.nvim": { "branch": "v0.6", "commit": "74163ac321c7d208a5bb9cdf8964114c7064d6c7" },
"undotree": { "branch": "master", "commit": "fe9a9d0645f0f5532360b5e5f5c550d7bb4f1869" },
"which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" }
"which-key.nvim": { "branch": "winborder-support", "commit": "ab1a3b0d3005a95507ba6c18b96531d430370885" }
}

View File

@@ -1,8 +1,16 @@
return {
settings = {
json = {
validate = { enable = true },
schemas = require("schemastore").json.schemas(),
return require("schema-companion").setup_client(
require("schema-companion").adapters.jsonls.setup({
sources = {
require("schema-companion").sources.lsp.setup(),
require("schema-companion").sources.none.setup(),
},
},
}
}),
{
settings = {
json = {
validate = { enable = true },
schemas = require("schemastore").json.schemas(),
},
},
}
)

View File

@@ -1,8 +1,23 @@
return {
settings = {
Lua = {
workspace = { checkThirdParty = false },
workspace = {
checkThirdParty = false,
library = {
"./definitions",
},
},
telemetry = { enable = false },
type = {
checkTableShape = true,
},
diagnostics = {
neededFileStatus = {
-- ["no-unknown"] = "Opened",
-- ["incomplete-signature-doc"] = "Opened",
-- ["await-in-sync"] = "Opened",
},
},
},
},
}

View File

@@ -0,0 +1,9 @@
return require("schema-companion").setup_client(
require("schema-companion").adapters.taplo.setup({
sources = {
require("schema-companion").sources.lsp.setup(),
require("schema-companion").sources.none.setup(),
},
}),
{}
)

View File

@@ -1,5 +1,10 @@
return require("schema-companion").setup_client({
settings = {
yaml = {},
},
})
return require("schema-companion").setup_client(
require("schema-companion").adapters.yamlls.setup({
sources = {
require("matchers.kubernetes").setup({}),
require("schema-companion").sources.lsp.setup(),
require("schema-companion").sources.none.setup(),
},
}),
{}
)

View File

@@ -15,3 +15,16 @@ vim.keymap.set("n", "N", "Nzz")
-- Clear search highlight by pressing esc
vim.keymap.set("n", "<Esc>", "<cmd>nohlsearch<CR>")
vim.api.nvim_create_autocmd("FileType", {
pattern = { "rust" },
callback = function(args)
local command = {
rust = "cargo run",
}
vim.keymap.set("n", "<F5>", function()
vim.system({ "tmux", "send-keys", "-t", ":shell", "c-u", command[args.match], "Enter" })
vim.system({ "tmux", "select-window", "-t", ":shell" })
end, { buffer = true })
end,
})

View File

@@ -148,7 +148,10 @@ vim.api.nvim_create_autocmd("LspAttach", {
end,
})
-- Manually enable rust analyzer, if installed
-- Manually enable lsps, if installed
if vim.fn.executable("rust_analyzer") then
vim.lsp.enable("rust_analyzer")
end
if vim.fn.executable("vtsls") then
vim.lsp.enable("vtsls")
end

View File

@@ -0,0 +1,57 @@
---@class schema_companion.Source
local M = {}
M.name = "Kubernetes"
M.config = {}
---@param config {}
---@return schema_companion.Source
function M.setup(config)
setmetatable(M, {})
M.config = vim.tbl_deep_extend("force", {}, M.config, config)
return M
end
function M:match(_, bufnr)
local resources = {}
local current = {}
for _, line in pairs(vim.api.nvim_buf_get_lines(bufnr, 0, -1, false)) do
local _, _, group, version = line:find([[^apiVersion:%s*["']?([^%s"'/]*)/?([^%s"']*)]])
local _, _, kind = line:find([[^kind:%s*["']?([^%s"'/]*)]])
if group and group ~= "" then
current.group = group
end
if version and version ~= "" then
current.version = version
end
if kind and kind ~= "" then
current.kind = kind
end
if current.group and current.kind then
table.insert(resources, current)
current = {}
end
end
local schemas = {}
for _, resource in pairs(resources) do
local api = resource.version and ("%s/%s"):format(resource.group, resource.version) or resource.group
local schema = {
name = ("%s@%s"):format(resource.kind, api),
source = M.name,
uri = require("kubernetes").yamlls_schema(),
}
if schema then
table.insert(schemas, schema)
end
end
return schemas
end
return M

View File

@@ -0,0 +1,7 @@
-- https://github.com/kwkarlwang/bufresize.nvim
--- @module "lazy"
--- @type LazySpec
return {
"kwkarlwang/bufresize.nvim",
opts = {},
}

View File

@@ -5,15 +5,15 @@ local formatters_by_ft = {
go = { "goimports" },
python = { "ruff_organize_imports", "ruff_format" },
rust = { "rustfmt" },
javascript = { "prettierd" },
javascriptreact = { "prettierd" },
typescript = { "prettierd" },
typescriptreact = { "prettierd" },
css = { "prettierd" },
markdown = { "prettierd" },
yaml = { "prettierd" },
javascript = { "prettier" },
javascriptreact = { "prettier" },
typescript = { "prettier" },
typescriptreact = { "prettier" },
css = { "prettier" },
markdown = { "prettier" },
yaml = { "prettier" },
lua = { "stylua" },
json = { "prettierd" },
json = { "prettier" },
toml = { "taplo" },
-- ["*"] = { "injected" },
["_"] = { "trim_whitespace", "trim_newlines" },

View File

@@ -0,0 +1,21 @@
-- https://github.com/Saecki/crates.nvim
--- @module "lazy"
--- @type LazySpec
return {
"Saecki/crates.nvim",
event = { "BufRead Cargo.toml" },
tag = "stable",
--- @type crates.UserConfig
opts = {
popup = {
hide_on_select = true,
border = require("symbols.window").border,
},
lsp = {
enabled = true,
actions = true,
completion = true,
hover = true,
},
},
}

View File

@@ -1,15 +1,15 @@
-- https://github.com/nvim-lualine/lualine.nvim
local function get_schema()
if vim.bo.filetype ~= "yaml" then
if not (vim.bo.filetype == "yaml" or vim.bo.filetype == "json" or vim.bo.filetype == "toml") then
return ""
end
local schema = require("schema-companion.context").get_buffer_schema()
if schema.name == "none" then
local schema = (require("schema-companion").get_current_schemas() or "none")
if schema == "none" then
return ""
end
return schema.name
return schema
end
--- @module "lazy"
@@ -43,7 +43,9 @@ return {
"encoding",
{ "fileformat", icons_enabled = false },
"filetype",
get_schema,
{
get_schema,
},
},
},
inactive_sections = {

View File

@@ -24,8 +24,9 @@ local ensure_installed = {
end,
},
"ruff",
"prettierd",
"prettier",
"stylua",
"eslint",
}
--- @module "lazy"

View File

@@ -1,33 +1,6 @@
-- https://github.com/cenk1cenk2/schema-companion.nvim
--- @module "schema-companion"
--- @type schema_companion.Matcher
local kubernetes = {
name = "Kubernetes",
match = function(bufnr)
local lines = vim.api.nvim_buf_get_lines(bufnr, 0, -1, false)
local kind = false
local api_version = false
for _, line in ipairs(lines) do
if kind or vim.regex("^kind: .*$"):match_str(line) then
kind = true
end
if api_version or vim.regex("^apiVersion: .*$"):match_str(line) then
api_version = true
end
if kind and api_version then
return {
name = "Kubernetes",
uri = require("kubernetes").yamlls_schema(),
}
end
end
return nil
end,
}
--- @module "lazy"
--- @type LazySpec
@@ -35,14 +8,13 @@ return {
"cenk1cenk2/schema-companion.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-telescope/telescope.nvim",
"diogo464/kubernetes.nvim",
},
keys = {
{
"<leader>ys",
function()
require("telescope").extensions.schema_companion.select_schema()
require("schema-companion").select_schema()
end,
desc = "Yaml schema",
ft = "yaml",
@@ -50,11 +22,5 @@ return {
},
--- @module "schema-companion"
--- @type schema_companion.Config
opts = {
enable_telescope = true,
matchers = {
kubernetes,
},
schemas = {},
},
opts = {},
}

View File

@@ -37,6 +37,9 @@ return {
["ui-select"] = {
require("telescope.themes").get_dropdown(),
},
smart_open = {
match_algorithm = "fzf",
},
},
}
end,
@@ -114,24 +117,25 @@ return {
end,
},
{
"nvim-telescope/telescope-fzy-native.nvim",
"nvim-telescope/telescope-fzf-native.nvim",
build = "make",
dependencies = {
"nvim-telescope/telescope.nvim",
},
config = function()
require("telescope").load_extension("fzy_native")
require("telescope").load_extension("fzf")
end,
},
{
"danielfalk/smart-open.nvim",
branch = "0.2.x",
branch = "0.3.x",
config = function()
require("telescope").load_extension("smart_open")
end,
dependencies = {
"kkharji/sqlite.lua",
"nvim-telescope/telescope.nvim",
"nvim-telescope/telescope-fzy-native.nvim",
"nvim-telescope/telescope-fzf-native.nvim",
{
"ellisonleao/gruvbox.nvim",
opts = function(_, opts)

View File

@@ -3,7 +3,9 @@ local window = require("symbols.window")
--- @module "lazy"
--- @type LazySpec
return {
"folke/which-key.nvim",
-- "folke/which-key.nvim",
"cameronr/which-key.nvim",
branch = "winborder-support",
event = "VeryLazy",
--- @module "which-key"
--- @type wk.Opts

1
sesh/.stow-local-ignore Normal file
View File

@@ -0,0 +1 @@
setup

View File

@@ -0,0 +1,25 @@
# Hide all scratch sessions
blacklist = ["scratch-*"]
# Scratch sessions rename themselves to something unique and are hidden from the overview
[[session]]
name = "scratch"
startup_command = "tmux rename-session scratch-$(echo -n $(date) | sha256sum | cut -c1-4) && tmux set detach-on-destroy on && clear"
[[session]]
name = "automation_rs"
path = "~/Projects/rust/automation_rs/"
startup_command = "nvim"
windows = ["shell"]
[[session]]
name = "olympus"
startup_command = "ssh olympus && exit"
[[session]]
name = "niestern_sander"
path = "~/Projects/ALTEN/niestern_sander/"
startup_command = "$DOTFILES/sesh/setup/niestern_sander.sh"
[[window]]
name = "shell"

17
sesh/dot-local/bin/sesh-select Executable file
View File

@@ -0,0 +1,17 @@
#!/usr/bin/env zsh
exec </dev/tty
exec <&1
local session
session=$(sesh list -i | fzf-tmux -p 70%,60% \
--no-sort --ansi --border-label ' Select session ' --prompt '⚡ ' \
--header ' ^a all ^t tmux ^g configs ^x zoxide ^d tmux kill ^f find' \
--bind 'btab:down,tab:up' \
--bind 'ctrl-a:change-prompt(⚡ )+reload(sesh list -i)' \
--bind 'ctrl-t:change-prompt(🪟 )+reload(sesh list -t -i)' \
--bind 'ctrl-g:change-prompt(⚙️ )+reload(sesh list -c -i)' \
--bind 'ctrl-x:change-prompt(📁 )+reload(sesh list -z -i)' \
--bind 'ctrl-f:change-prompt(🔎 )+reload(fd -H -d 2 -t d -E .Trash . ~)' \
--bind 'ctrl-d:execute(tmux kill-session -t {2..})+change-prompt(⚡ )+reload(sesh list -i)')
[[ -z "$session" ]] && return
sesh connect $session

15
sesh/setup/niestern_sander.sh Executable file
View File

@@ -0,0 +1,15 @@
#!/usr/bin/env bash
if ! systemctl is-active --quiet docker; then
echo "Starting docker..."
systemctl start docker
fi
devcontainer up --workspace-folder .
tmux rename-window nvim
tmux new-window -n "ros" "devcontainer exec --workspace-folder . bash"
tmux new-window -n "shell"
tmux select-window -t :-2
devcontainer exec --workspace-folder . nvim

View File

@@ -1,6 +1,7 @@
# Plugins
set -g @plugin 'mrjones2014/smart-splits.nvim'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'wfxr/tmux-fzf-url'
# Settings
set -ag terminal-overrides ",xterm-256color:RGB"
@@ -11,6 +12,8 @@ set -sg escape-time 0
set -g history-limit 5000
set -g detach-on-destroy off # don't exit from tmux when closing a session
# Setup vi-mode with better keybindings
# TODO: Escape does not work properly for leaving
setw -g mode-keys vi
@@ -73,3 +76,8 @@ bind-key -n M-7 select-window -t 7
bind-key -n M-8 select-window -t 8
bind-key -n M-9 select-window -t 9
bind-key -n M-0 select-window -t 10
bind-key "a" run-shell "sesh-select"
bind-key x kill-pane
bind-key X kill-session

View File

@@ -22,10 +22,8 @@ plugins=(
# Disabled because the highlighting conflicts with autosuggestions
# history-substring-search
vi-mode
tmux
colored-man-pages
command-not-found
dirhistory
zsh-autopair
fast-syntax-highlighting
)
@@ -37,16 +35,16 @@ HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND="fg=yellow"
HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND="fg=red"
HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_TIMEOUT=3
ZSH_AUTOSUGGEST_STRATEGY=(history completion)
VI_MODE_RESET_PROMPT_ON_MODE_CHANGE=true
VI_MODE_SET_CURSOR=true
# Might cause issues?
KEYTIMEOUT=1
ZSH_TMUX_AUTOSTART=true
ZSH_TMUX_AUTOCONNECT=false
ZSH_TMUX_FIXTERM=true
source $ZSH/oh-my-zsh.sh
fpath+=${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions/src
autoload -U compinit && compinit
source "$ZSH/oh-my-zsh.sh"
less_termcap[so]="${fg_bold[black]}${bg[white]}"
export LESS="-F -R -i --incsearch -M"
@@ -57,12 +55,12 @@ export EDITOR=nvim
alias cl="clear"
if hash bat 2>/dev/null; then
if (( $+commands[bat] )); then
export BAT_THEME="gruvbox-dark"
alias cat=bat
fi
if hash devcontainer 2>/dev/null; then
if (( $+commands[devcontainer] )); then
dc() {
ORIG_DIR="$PWD"
while [[ "$PWD" != / ]] ; do
@@ -89,12 +87,14 @@ if hash devcontainer 2>/dev/null; then
}
fi
if hash pnpm 2>/dev/null; then
export PNPM_HOME="/home/tim/.local/share/pnpm"
export PNPM_HOME="/home/tim/.local/share/pnpm"
if [ -d "$PNPM_HOME" ]; then
case ":$PATH:" in
*":$PNPM_HOME:"*) ;;
*) export PATH="$PNPM_HOME:$PATH" ;;
esac
else
unset PNPM_HOME
fi
export FZF_DEFAULT_OPTS='--tmux'
@@ -107,21 +107,47 @@ export FZF_DEFAULT_OPTS=$FZF_DEFAULT_OPTS'
--prompt="> " --marker="◆" --pointer=">" --separator="─"
--scrollbar="│" --info="right"'
if hash fd 2>/dev/null; then
if (( $+commands[fd] )); then
export FZF_DEFAULT_COMMAND="fd --type f --strip-cwd-prefix"
export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
fi
if hash fzf 2>/dev/null; then
if (( $+commands[fzf] )); then
source <(fzf --zsh)
if hash paru 2>/dev/null; then
if (( $+commands[paru] )); then
function pi {
paru -Slq | fzf -q "$1" --border-label="Packages" --multi --preview 'paru -Si {1}' | xargs -ro paru -S
paru -Slq | fzf -q "$1" --border-label=" Install package " --multi --preview 'paru -Si {1} --color=always' | xargs -ro paru -S
}
fi
fi
export _ZO_FZF_OPTS="--tmux"
if hash zoxide 2>/dev/null; then
if (( $+commands[zoxide] )); then
eval "$(zoxide init zsh --cmd cd)"
fi
# Generate missing text objects
autoload -Uz select-bracketed select-quoted
zle -N select-quoted
zle -N select-bracketed
for km in viopp visual; do
bindkey -M $km -- '-' vi-up-line-or-history
for c in {a,i}${(s..)^:-\'\"\`\|,./:;=+@}; do
bindkey -M $km $c select-quoted
done
for c in {a,i}${(s..)^:-'()[]{}<>bB'}; do
bindkey -M $km $c select-bracketed
done
done
ZSH_TMUX_AUTOSTART=true
if (( $+commands[tmux] )); then
if [[ -z "$TMUX" && "$ZSH_TMUX_AUTOSTART" == "true" && -z "$INSIDE_EMACS" && -z "$EMACS" && -z "$VIM" && -z "$INTELLIJ_ENVIRONMENT_READER" && -z "$ZED_TERM" ]]; then
if (( $+commands[sesh] )) && (( $+commands[sesh-select] )); then
sesh-select
else
tmux new-session
fi
exit
fi
fi