Compare commits
43 Commits
v0.0.2
...
35eed3604c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
35eed3604c | ||
|
|
ad041614be | ||
|
|
8d53b3b2c8 | ||
|
|
ce626b79e3 | ||
|
|
e5f696bb90 | ||
|
|
56b5009ebf | ||
|
|
ba690c7a71 | ||
|
|
5446c90359 | ||
|
|
8cb2e48406 | ||
|
|
2fc3dc6ecf | ||
|
|
c210623de9 | ||
|
|
f1c0d9ced5 | ||
|
|
cc828c381b | ||
|
|
58cde2e721 | ||
| 886c179aef | |||
|
|
27ee0b81c3 | ||
|
|
1d1f63a451 | ||
|
|
7be79aace7 | ||
|
|
75c9903022 | ||
| 251d8ef80d | |||
| bf98ed5fb9 | |||
|
|
bc5e78af57 | ||
| cc56ca800d | |||
| f9616acc97 | |||
|
|
0238308ca9 | ||
| b940f75259 | |||
|
|
387748e89b | ||
| fd5a511c71 | |||
|
|
b56d2ae42e | ||
| 69b7d89ee8 | |||
|
|
405f855298 | ||
| 66282f686d | |||
|
|
aa13febadf | ||
|
|
eeccd013dc | ||
| 907c44472c | |||
|
|
b1c5de4450 | ||
|
|
b5a1cb646a | ||
|
|
0ee97a7c72 | ||
| 6b7ebb1f42 | |||
|
|
35628b774f | ||
|
|
30ed4f77f6 | ||
| 0635cad22e | |||
| bf228bf176 |
38
.gitea/workflows/docker_build.yml
Normal file
38
.gitea/workflows/docker_build.yml
Normal file
@@ -0,0 +1,38 @@
|
||||
name: Build and Push Docker Image
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- "v*"
|
||||
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build-push:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Log in to Gitea Container Registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: gitea.setlock.net
|
||||
username: ${{ secrets.USER }}
|
||||
password: ${{ secrets.TOKEN }}
|
||||
|
||||
- name: Extract Tag Name (if any)
|
||||
id: get_tag
|
||||
run: |
|
||||
echo "GIT_TAG=${GITHUB_REF##*/}" >> $GITHUB_ENV
|
||||
|
||||
- name: Build and Push Docker Image
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: ./tools
|
||||
push: true
|
||||
platforms: linux/amd64
|
||||
tags: |
|
||||
gitea.setlock.net/shaun/dev-container:latest
|
||||
gitea.setlock.net/shaun/dev-container:${{ env.GIT_TAG }}
|
||||
31
.gitea/workflows/nightly_docker_build.yml
Normal file
31
.gitea/workflows/nightly_docker_build.yml
Normal file
@@ -0,0 +1,31 @@
|
||||
name: Build and Push Docker Image
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 2 * * *"
|
||||
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build-push:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Log in to Gitea Container Registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: gitea.setlock.net
|
||||
username: ${{ secrets.USER }}
|
||||
password: ${{ secrets.TOKEN }}
|
||||
|
||||
- name: Build and Push Docker Image
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: ./tools
|
||||
push: true
|
||||
platforms: linux/amd64
|
||||
tags: |
|
||||
gitea.setlock.net/shaun/dev-container:nightly
|
||||
1
fish/.gitignore
vendored
Normal file
1
fish/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
fish_variables
|
||||
@@ -1,33 +0,0 @@
|
||||
# This file contains fish universal variable definitions.
|
||||
# VERSION: 3.0
|
||||
SETUVAR __fish_initialized:3400
|
||||
SETUVAR fish_color_autosuggestion:555\x1ebrblack
|
||||
SETUVAR fish_color_cancel:\x2dr
|
||||
SETUVAR fish_color_command:005fd7
|
||||
SETUVAR fish_color_comment:990000
|
||||
SETUVAR fish_color_cwd:green
|
||||
SETUVAR fish_color_cwd_root:red
|
||||
SETUVAR fish_color_end:009900
|
||||
SETUVAR fish_color_error:ff0000
|
||||
SETUVAR fish_color_escape:00a6b2
|
||||
SETUVAR fish_color_history_current:\x2d\x2dbold
|
||||
SETUVAR fish_color_host:normal
|
||||
SETUVAR fish_color_host_remote:yellow
|
||||
SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue
|
||||
SETUVAR fish_color_normal:normal
|
||||
SETUVAR fish_color_operator:00a6b2
|
||||
SETUVAR fish_color_param:00afff
|
||||
SETUVAR fish_color_quote:999900
|
||||
SETUVAR fish_color_redirection:00afff
|
||||
SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack
|
||||
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
|
||||
SETUVAR fish_color_status:red
|
||||
SETUVAR fish_color_user:brgreen
|
||||
SETUVAR fish_color_valid_path:\x2d\x2dunderline
|
||||
SETUVAR fish_greeting:\x1d
|
||||
SETUVAR fish_key_bindings:fish_default_key_bindings
|
||||
SETUVAR fish_pager_color_completion:\x1d
|
||||
SETUVAR fish_pager_color_description:B3A06D\x1eyellow
|
||||
SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
|
||||
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
|
||||
SETUVAR fish_pager_color_selected_background:\x2dr
|
||||
5
fish/functions/dev.fish
Normal file
5
fish/functions/dev.fish
Normal file
@@ -0,0 +1,5 @@
|
||||
# Defined in - @ line 1
|
||||
function dev --wraps='docker exec -it mydev fish' --description 'alias dev=docker exec -it mydev fish'
|
||||
docker exec -it mydev fish
|
||||
|
||||
end
|
||||
4
fish/functions/flame.fish
Normal file
4
fish/functions/flame.fish
Normal file
@@ -0,0 +1,4 @@
|
||||
# Defined in - @ line 1
|
||||
function flame --wraps='bash -c -- "QT_QPA_PLATFORM=wayland flameshot gui"' --description 'alias flame=bash -c -- "QT_QPA_PLATFORM=wayland flameshot gui"'
|
||||
bash -c -- "QT_QPA_PLATFORM=wayland flameshot gui --delay 3000"
|
||||
end
|
||||
5
fish/functions/od.fish
Normal file
5
fish/functions/od.fish
Normal file
@@ -0,0 +1,5 @@
|
||||
# Defined in - @ line 1
|
||||
function od --wraps='nvim +ObsidianToday' --description 'alias od=nvim +ObsidianToday'
|
||||
cd ~/Obsidian && nvim +ObsidianToday
|
||||
|
||||
end
|
||||
5
fish/functions/oo.fish
Normal file
5
fish/functions/oo.fish
Normal file
@@ -0,0 +1,5 @@
|
||||
# Defined in - @ line 1
|
||||
function oo --wraps='nvim ~/Obsidian' --description 'alias oo=nvim ~/Obsidian'
|
||||
cd ~/Obsidian && nvim
|
||||
|
||||
end
|
||||
5
fish/functions/ot.fish
Normal file
5
fish/functions/ot.fish
Normal file
@@ -0,0 +1,5 @@
|
||||
# Defined in - @ line 1
|
||||
function ot --wraps='nvim +ObsidianTomorrow' --description 'alias ot=nvim +ObsidianTomorrow'
|
||||
cd ~/Obsidian && nvim +ObsidianTomorrow
|
||||
|
||||
end
|
||||
5
fish/functions/oy.fish
Normal file
5
fish/functions/oy.fish
Normal file
@@ -0,0 +1,5 @@
|
||||
# Defined in - @ line 1
|
||||
function oy --wraps='nvim +ObsidianYesterday' --description 'alias oy=nvim +ObsidianYesterday'
|
||||
cd ~/Obsidian && nvim +ObsidianYesterday
|
||||
|
||||
end
|
||||
5
fish/functions/v.fish
Normal file
5
fish/functions/v.fish
Normal file
@@ -0,0 +1,5 @@
|
||||
# Defined in - @ line 1
|
||||
function v --wraps='nvim .' --description 'alias v=nvim .'
|
||||
nvim .
|
||||
|
||||
end
|
||||
5
fish/functions/vh.fish
Normal file
5
fish/functions/vh.fish
Normal file
@@ -0,0 +1,5 @@
|
||||
# Defined in - @ line 1
|
||||
function vh --wraps='nvim ~/' --description 'alias vh=nvim ~/'
|
||||
nvim ~/
|
||||
|
||||
end
|
||||
@@ -18,7 +18,7 @@
|
||||
],
|
||||
"install_version": 8,
|
||||
"news": {
|
||||
"NEWS.md": "10960"
|
||||
"NEWS.md": "11866"
|
||||
},
|
||||
"version": 8
|
||||
}
|
||||
@@ -1,3 +1,6 @@
|
||||
-- Keymaps are automatically loaded on the VeryLazy event
|
||||
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
|
||||
-- Add any additional keymaps here
|
||||
--
|
||||
-- Keymap for opening oil to the parent directory when inside a file buffer.
|
||||
vim.keymap.set("n", "-", "<CMD>Oil<CR>", { desc = "Open parent directory" })
|
||||
|
||||
2
nvim/lua/plugins/.markdownlint-cli2.yml
Normal file
2
nvim/lua/plugins/.markdownlint-cli2.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
config:
|
||||
MD013: false
|
||||
76
nvim/lua/plugins/blink-cmp.lua
Normal file
76
nvim/lua/plugins/blink-cmp.lua
Normal file
@@ -0,0 +1,76 @@
|
||||
return {
|
||||
{
|
||||
"saghen/blink.cmp",
|
||||
-- optional: provides snippets for the snippet source
|
||||
dependencies = { "rafamadriz/friendly-snippets" },
|
||||
|
||||
-- use a release tag to download pre-built binaries
|
||||
version = "1.*",
|
||||
-- AND/OR build from source, requires nightly: https://rust-lang.github.io/rustup/concepts/channels.html#working-with-nightly-rust
|
||||
-- build = 'cargo build --release',
|
||||
-- If you use nix, you can build from source using latest nightly rust with:
|
||||
-- build = 'nix run .#build-plugin',
|
||||
|
||||
---@module 'blink.cmp'
|
||||
---@type blink.cmp.Config
|
||||
opts = {
|
||||
-- 'default' (recommended) for mappings similar to built-in completions (C-y to accept)
|
||||
-- 'super-tab' for mappings similar to vscode (tab to accept)
|
||||
-- 'enter' for enter to accept
|
||||
-- 'none' for no mappings
|
||||
--
|
||||
-- All presets have the following mappings:
|
||||
-- C-space: Open menu or open docs if already open
|
||||
-- C-n/C-p or Up/Down: Select next/previous item
|
||||
-- C-e: Hide menu
|
||||
-- C-k: Toggle signature help (if signature.enabled = true)
|
||||
--
|
||||
-- See :h blink-cmp-config-keymap for defining your own keymap
|
||||
keymap = {
|
||||
|
||||
preset = "default",
|
||||
|
||||
["<C-space>"] = { "show", "show_documentation", "hide_documentation" },
|
||||
["<C-e>"] = { "hide" },
|
||||
["<C-y>"] = { "select_and_accept" },
|
||||
|
||||
["<Up>"] = { "select_prev", "fallback" },
|
||||
["<Down>"] = { "select_next", "fallback" },
|
||||
["<C-p>"] = { "select_prev", "fallback_to_mappings" },
|
||||
["<C-n>"] = { "select_next", "fallback_to_mappings" },
|
||||
|
||||
["<C-b>"] = { "scroll_documentation_up", "fallback" },
|
||||
["<C-f>"] = { "scroll_documentation_down", "fallback" },
|
||||
|
||||
["<Tab>"] = { "snippet_forward", "fallback" },
|
||||
["<S-Tab>"] = { "snippet_backward", "fallback" },
|
||||
|
||||
["<C-k>"] = { "show_signature", "hide_signature", "fallback" },
|
||||
},
|
||||
|
||||
appearance = {
|
||||
-- 'mono' (default) for 'Nerd Font Mono' or 'normal' for 'Nerd Font'
|
||||
-- Adjusts spacing to ensure icons are aligned
|
||||
nerd_font_variant = "mono",
|
||||
},
|
||||
|
||||
-- (Default) Only show the documentation popup when manually triggered
|
||||
completion = { documentation = { auto_show = true } },
|
||||
|
||||
-- Default list of enabled providers defined so that you can extend it
|
||||
-- elsewhere in your config, without redefining it, due to `opts_extend`
|
||||
sources = {
|
||||
-- default = { 'lsp', 'path', 'snippets', 'buffer' }, <- original
|
||||
default = { "lsp", "path" },
|
||||
},
|
||||
|
||||
-- (Default) Rust fuzzy matcher for typo resistance and significantly better performance
|
||||
-- You may use a lua implementation instead by using `implementation = "lua"` or fallback to the lua implementation,
|
||||
-- when the Rust fuzzy matcher is not available, by using `implementation = "prefer_rust"`
|
||||
--
|
||||
-- See the fuzzy documentation for more information
|
||||
fuzzy = { implementation = "prefer_rust_with_warning" },
|
||||
},
|
||||
opts_extend = { "sources.default" },
|
||||
},
|
||||
}
|
||||
22
nvim/lua/plugins/cmp.lua
Normal file
22
nvim/lua/plugins/cmp.lua
Normal file
@@ -0,0 +1,22 @@
|
||||
return {
|
||||
"saghen/blink.cmp",
|
||||
-- Make blink.cmp toogleable
|
||||
opts = function(_, opts)
|
||||
vim.b.completion = false
|
||||
|
||||
Snacks.toggle({
|
||||
name = "Completion",
|
||||
get = function()
|
||||
return vim.b.completion
|
||||
end,
|
||||
set = function(state)
|
||||
vim.b.completion = state
|
||||
end,
|
||||
}):map("<leader>uk")
|
||||
|
||||
opts.enabled = function()
|
||||
return vim.b.completion ~= false
|
||||
end
|
||||
return opts
|
||||
end,
|
||||
}
|
||||
12
nvim/lua/plugins/markdownlint-cli2.lua
Normal file
12
nvim/lua/plugins/markdownlint-cli2.lua
Normal file
@@ -0,0 +1,12 @@
|
||||
local HOME = os.getenv("HOME")
|
||||
return {
|
||||
"mfussenegger/nvim-lint",
|
||||
optional = true,
|
||||
opts = {
|
||||
linters = {
|
||||
["markdownlint-cli2"] = {
|
||||
args = { "--config", HOME .. "/.config/nvim/lua/plugins/.markdownlint-cli2.yaml", "--" },
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
90
nvim/lua/plugins/obsidian.lua
Normal file
90
nvim/lua/plugins/obsidian.lua
Normal file
@@ -0,0 +1,90 @@
|
||||
return {
|
||||
"epwalsh/obsidian.nvim",
|
||||
version = "*", -- recommended, use latest release instead of latest commit
|
||||
-- Disable lazy so that I can open daily notes from any directory and from outside of nvim.
|
||||
lazy = false,
|
||||
-- Below will load the plugin only for markdown files.
|
||||
-- ft = "markdown",
|
||||
-- Replace the above line with this if you only want to load obsidian.nvim for markdown files in your vault:
|
||||
-- event = {
|
||||
-- "BufReadPre /home/shaun/Obsidian/*.md",
|
||||
-- "BufNewFile /home/shaun/Obsidian/*.md",
|
||||
-- },
|
||||
dependencies = {
|
||||
-- Required.
|
||||
"nvim-lua/plenary.nvim",
|
||||
-- Recommended.
|
||||
"nvim-telescope/telescope.nvim",
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
},
|
||||
|
||||
opts = {
|
||||
workspaces = {
|
||||
{
|
||||
name = "Obsidian",
|
||||
path = "~/Obsidian",
|
||||
},
|
||||
},
|
||||
|
||||
-- Optional, completion of wiki links, local markdown links, and tags using nvim-cmp.
|
||||
completion = {
|
||||
-- Set to false to disable completion.
|
||||
nvim_cmp = false,
|
||||
-- Trigger completion at 4 chars.
|
||||
min_chars = 4,
|
||||
},
|
||||
|
||||
daily_notes = {
|
||||
-- Optional, if you keep daily notes in a separate directory.
|
||||
folder = "0. Daily Notes",
|
||||
-- Optional, if you want to change the date format for the ID of daily notes.
|
||||
date_format = "%Y.%m.%d",
|
||||
-- Optional, if you workant to change the date format of the default alias of daily notes.
|
||||
alias_format = "%B %-d, %Y",
|
||||
-- Optional, default tags to add to each new daily note created.
|
||||
default_tags = { "daily-notes" },
|
||||
-- Optional, if you want to automatically insert a template from your template directory like 'daily.md'
|
||||
template = "98. Templates/Daily Note.md",
|
||||
},
|
||||
|
||||
templates = {
|
||||
folder = "98. Templates",
|
||||
date_format = "YYYY.MM.DD",
|
||||
time_format = "HHMM",
|
||||
-- A map for custom variables, the key should be the variable and the value a function
|
||||
substitutions = {},
|
||||
},
|
||||
|
||||
-- Optional, configure key mappings. These are the defaults. If you don't want to set any keymappings this
|
||||
-- way then set 'mappings = {}'.
|
||||
mappings = {
|
||||
-- Overrides the 'gf' mapping to work on markdown/wiki links within your vault.
|
||||
["gf"] = {
|
||||
action = function()
|
||||
return require("obsidian").util.gf_passthrough()
|
||||
end,
|
||||
opts = { noremap = false, expr = true, buffer = true },
|
||||
},
|
||||
-- Toggle check-boxes.
|
||||
["<leader>ch"] = {
|
||||
action = function()
|
||||
return require("obsidian").util.toggle_checkbox()
|
||||
end,
|
||||
opts = { buffer = true },
|
||||
},
|
||||
-- Smart action depending on context, either follow link or toggle checkbox.
|
||||
["<cr>"] = {
|
||||
action = function()
|
||||
return require("obsidian").util.smart_action()
|
||||
end,
|
||||
opts = { buffer = true, expr = true },
|
||||
},
|
||||
},
|
||||
|
||||
-- Optional, configure additional syntax highlighting / extmarks.
|
||||
-- This requires you have `conceallevel` set to 1 or 2. See `:help conceallevel` for more details.
|
||||
ui = {
|
||||
enable = false, -- set to false to disable all additional syntax features
|
||||
},
|
||||
},
|
||||
}
|
||||
214
nvim/lua/plugins/oil.lua
Normal file
214
nvim/lua/plugins/oil.lua
Normal file
@@ -0,0 +1,214 @@
|
||||
return {
|
||||
{
|
||||
"stevearc/oil.nvim",
|
||||
---@module 'oil'
|
||||
---@type oil.SetupOpts
|
||||
opts = {
|
||||
-- Oil will take over directory buffers (e.g. `vim .` or `:e src/`)
|
||||
-- Set to false if you want some other plugin (e.g. netrw) to open when you edit directories.
|
||||
default_file_explorer = true,
|
||||
-- Id is automatically added at the beginning, and name at the end
|
||||
-- See :help oil-columns
|
||||
columns = {
|
||||
"icon",
|
||||
-- "permissions",
|
||||
-- "size",
|
||||
-- "mtime",
|
||||
},
|
||||
-- Buffer-local options to use for oil buffers
|
||||
buf_options = {
|
||||
buflisted = false,
|
||||
bufhidden = "hide",
|
||||
},
|
||||
-- Window-local options to use for oil buffers
|
||||
win_options = {
|
||||
wrap = false,
|
||||
signcolumn = "no",
|
||||
cursorcolumn = false,
|
||||
foldcolumn = "0",
|
||||
spell = false,
|
||||
list = false,
|
||||
conceallevel = 3,
|
||||
concealcursor = "nvic",
|
||||
},
|
||||
-- Send deleted files to the trash instead of permanently deleting them (:help oil-trash)
|
||||
delete_to_trash = false,
|
||||
-- Skip the confirmation popup for simple operations (:help oil.skip_confirm_for_simple_edits)
|
||||
skip_confirm_for_simple_edits = false,
|
||||
-- Selecting a new/moved/renamed file or directory will prompt you to save changes first
|
||||
-- (:help prompt_save_on_select_new_entry)
|
||||
prompt_save_on_select_new_entry = true,
|
||||
-- Oil will automatically delete hidden buffers after this delay
|
||||
-- You can set the delay to false to disable cleanup entirely
|
||||
-- Note that the cleanup process only starts when none of the oil buffers are currently displayed
|
||||
cleanup_delay_ms = 2000,
|
||||
lsp_file_methods = {
|
||||
-- Enable or disable LSP file operations
|
||||
enabled = true,
|
||||
-- Time to wait for LSP file operations to complete before skipping
|
||||
timeout_ms = 1000,
|
||||
-- Set to true to autosave buffers that are updated with LSP willRenameFiles
|
||||
-- Set to "unmodified" to only save unmodified buffers
|
||||
autosave_changes = false,
|
||||
},
|
||||
-- Constrain the cursor to the editable parts of the oil buffer
|
||||
-- Set to `false` to disable, or "name" to keep it on the file names
|
||||
constrain_cursor = "editable",
|
||||
-- Set to true to watch the filesystem for changes and reload oil
|
||||
watch_for_changes = false,
|
||||
-- Keymaps in oil buffer. Can be any value that `vim.keymap.set` accepts OR a table of keymap
|
||||
-- options with a `callback` (e.g. { callback = function() ... end, desc = "", mode = "n" })
|
||||
-- Additionally, if it is a string that matches "actions.<name>",
|
||||
-- it will use the mapping at require("oil.actions").<name>
|
||||
-- Set to `false` to remove a keymap
|
||||
-- See :help oil-actions for a list of all available actions
|
||||
keymaps = {
|
||||
["g?"] = { "actions.show_help", mode = "n" },
|
||||
["<CR>"] = "actions.select",
|
||||
["<C-s>"] = { "actions.select", opts = { vertical = true } },
|
||||
["<C-h>"] = { "actions.select", opts = { horizontal = true } },
|
||||
["<C-t>"] = { "actions.select", opts = { tab = true } },
|
||||
["<C-p>"] = "actions.preview",
|
||||
["<C-c>"] = { "actions.close", mode = "n" },
|
||||
["<C-l>"] = "actions.refresh",
|
||||
["-"] = { "actions.parent", mode = "n" },
|
||||
["_"] = { "actions.open_cwd", mode = "n" },
|
||||
["`"] = { "actions.cd", mode = "n" },
|
||||
["~"] = { "actions.cd", opts = { scope = "tab" }, mode = "n" },
|
||||
["gs"] = { "actions.change_sort", mode = "n" },
|
||||
["gx"] = "actions.open_external",
|
||||
["g."] = { "actions.toggle_hidden", mode = "n" },
|
||||
["g\\"] = { "actions.toggle_trash", mode = "n" },
|
||||
},
|
||||
-- Set to false to disable all of the above keymaps
|
||||
use_default_keymaps = true,
|
||||
view_options = {
|
||||
-- Show files and directories that start with "."
|
||||
show_hidden = false,
|
||||
-- This function defines what is considered a "hidden" file
|
||||
is_hidden_file = function(name, bufnr)
|
||||
local m = name:match("^%.")
|
||||
return m ~= nil
|
||||
end,
|
||||
-- This function defines what will never be shown, even when `show_hidden` is set
|
||||
is_always_hidden = function(name, bufnr)
|
||||
return false
|
||||
end,
|
||||
-- Sort file names with numbers in a more intuitive order for humans.
|
||||
-- Can be "fast", true, or false. "fast" will turn it off for large directories.
|
||||
natural_order = "fast",
|
||||
-- Sort file and directory names case insensitive
|
||||
case_insensitive = false,
|
||||
sort = {
|
||||
-- sort order can be "asc" or "desc"
|
||||
-- see :help oil-columns to see which columns are sortable
|
||||
{ "type", "asc" },
|
||||
{ "name", "asc" },
|
||||
},
|
||||
-- Customize the highlight group for the file name
|
||||
highlight_filename = function(entry, is_hidden, is_link_target, is_link_orphan)
|
||||
return nil
|
||||
end,
|
||||
},
|
||||
-- Extra arguments to pass to SCP when moving/copying files over SSH
|
||||
extra_scp_args = {},
|
||||
-- EXPERIMENTAL support for performing file operations with git
|
||||
git = {
|
||||
-- Return true to automatically git add/mv/rm files
|
||||
add = function(path)
|
||||
return false
|
||||
end,
|
||||
mv = function(src_path, dest_path)
|
||||
return false
|
||||
end,
|
||||
rm = function(path)
|
||||
return false
|
||||
end,
|
||||
},
|
||||
-- Configuration for the floating window in oil.open_float
|
||||
float = {
|
||||
-- Padding around the floating window
|
||||
padding = 2,
|
||||
-- max_width and max_height can be integers or a float between 0 and 1 (e.g. 0.4 for 40%)
|
||||
max_width = 0,
|
||||
max_height = 0,
|
||||
border = "rounded",
|
||||
win_options = {
|
||||
winblend = 0,
|
||||
},
|
||||
-- optionally override the oil buffers window title with custom function: fun(winid: integer): string
|
||||
get_win_title = nil,
|
||||
-- preview_split: Split direction: "auto", "left", "right", "above", "below".
|
||||
preview_split = "auto",
|
||||
-- This is the config that will be passed to nvim_open_win.
|
||||
-- Change values here to customize the layout
|
||||
override = function(conf)
|
||||
return conf
|
||||
end,
|
||||
},
|
||||
-- Configuration for the file preview window
|
||||
preview_win = {
|
||||
-- Whether the preview window is automatically updated when the cursor is moved
|
||||
update_on_cursor_moved = true,
|
||||
-- How to open the preview window "load"|"scratch"|"fast_scratch"
|
||||
preview_method = "fast_scratch",
|
||||
-- A function that returns true to disable preview on a file e.g. to avoid lag
|
||||
disable_preview = function(filename)
|
||||
return false
|
||||
end,
|
||||
-- Window-local options to use for preview window buffers
|
||||
win_options = {},
|
||||
},
|
||||
-- Configuration for the floating action confirmation window
|
||||
confirmation = {
|
||||
-- Width dimensions can be integers or a float between 0 and 1 (e.g. 0.4 for 40%)
|
||||
-- min_width and max_width can be a single value or a list of mixed integer/float types.
|
||||
-- max_width = {100, 0.8} means "the lesser of 100 columns or 80% of total"
|
||||
max_width = 0.9,
|
||||
-- min_width = {40, 0.4} means "the greater of 40 columns or 40% of total"
|
||||
min_width = { 40, 0.4 },
|
||||
-- optionally define an integer/float for the exact width of the preview window
|
||||
width = nil,
|
||||
-- Height dimensions can be integers or a float between 0 and 1 (e.g. 0.4 for 40%)
|
||||
-- min_height and max_height can be a single value or a list of mixed integer/float types.
|
||||
-- max_height = {80, 0.9} means "the lesser of 80 columns or 90% of total"
|
||||
max_height = 0.9,
|
||||
-- min_height = {5, 0.1} means "the greater of 5 columns or 10% of total"
|
||||
min_height = { 5, 0.1 },
|
||||
-- optionally define an integer/float for the exact height of the preview window
|
||||
height = nil,
|
||||
border = "rounded",
|
||||
win_options = {
|
||||
winblend = 0,
|
||||
},
|
||||
},
|
||||
-- Configuration for the floating progress window
|
||||
progress = {
|
||||
max_width = 0.9,
|
||||
min_width = { 40, 0.4 },
|
||||
width = nil,
|
||||
max_height = { 10, 0.9 },
|
||||
min_height = { 5, 0.1 },
|
||||
height = nil,
|
||||
border = "rounded",
|
||||
minimized_border = "none",
|
||||
win_options = {
|
||||
winblend = 0,
|
||||
},
|
||||
},
|
||||
-- Configuration for the floating SSH window
|
||||
ssh = {
|
||||
border = "rounded",
|
||||
},
|
||||
-- Configuration for the floating keymaps help window
|
||||
keymaps_help = {
|
||||
border = "rounded",
|
||||
},
|
||||
},
|
||||
-- Optional dependencies
|
||||
dependencies = { { "nvim-mini/mini.icons", opts = {} } },
|
||||
-- dependencies = { "nvim-tree/nvim-web-devicons" }, -- use if you prefer nvim-web-devicons
|
||||
-- Lazy loading is not recommended because it is very tricky to make it work correctly in all situations.
|
||||
lazy = false,
|
||||
},
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
version: "3"
|
||||
services:
|
||||
nv:
|
||||
container_name: nv
|
||||
image: shaun/neovim:latest
|
||||
user: "1000:1000"
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ~/code:/root/workspace
|
||||
@@ -16,9 +16,9 @@ RUN useradd -m -u 1000 -s /usr/bin/fish shaun
|
||||
|
||||
# Install required software
|
||||
RUN apt-get update && apt-get -y install \
|
||||
curl fzf ripgrep tree git xclip python3 python3-pip python3-venv nodejs npm \
|
||||
tzdata ninja-build gettext libtool libtool-bin autoconf automake cmake g++ \
|
||||
pkg-config zip unzip fish tmux
|
||||
curl fzf ripgrep tree git xclip python3 python3-pip python3-venv nodejs npm \
|
||||
tzdata ninja-build gettext libtool libtool-bin autoconf automake cmake g++ \
|
||||
pkg-config zip unzip fish tmux
|
||||
|
||||
# Cooperate Neovim with Python 3.
|
||||
RUN python3 -m pip install --break-system-packages --root-user-action ignore pynvim
|
||||
@@ -28,9 +28,9 @@ RUN npm i -g neovim
|
||||
|
||||
# Install Neovim from source.
|
||||
RUN mkdir -p /tmp/neovim-src && \
|
||||
git clone --depth 1 --branch stable https://github.com/neovim/neovim /tmp/neovim-src && \
|
||||
cd /tmp/neovim-src && make -j$(nproc) && make install && \
|
||||
rm -rf /tmp/neovim-src
|
||||
git clone --depth 1 --branch stable https://github.com/neovim/neovim /tmp/neovim-src && \
|
||||
cd /tmp/neovim-src && make -j$(nproc) && make install && \
|
||||
rm -rf /tmp/neovim-src
|
||||
|
||||
# Clone configuration files.
|
||||
USER shaun
|
||||
@@ -48,7 +48,7 @@ RUN ln -s /home/shaun/dotfiles/tmux /home/shaun/.config
|
||||
|
||||
# Install tmux plugin manager.
|
||||
RUN git clone https://github.com/tmux-plugins/tpm /home/shaun/.config/tmux/plugins/tpm && \
|
||||
/home/shaun/.config/tmux/plugins/tpm/scripts/install_plugins.sh
|
||||
/home/shaun/.config/tmux/plugins/tpm/scripts/install_plugins.sh
|
||||
|
||||
# Get oh-my-fish and bob-the-fish installed.
|
||||
RUN curl https://raw.githubusercontent.com/oh-my-fish/oh-my-fish/master/bin/install > install
|
||||
@@ -63,11 +63,12 @@ USER root
|
||||
RUN usermod --shell /usr/bin/fish shaun
|
||||
|
||||
# Set workspace directory
|
||||
RUN mkdir -p /workspace && chown shaun:shaun /workspace
|
||||
WORKDIR /workspace
|
||||
RUN mkdir -p /workspace
|
||||
RUN chown -R shaun:shaun /workspace
|
||||
|
||||
# Switch to non-root user
|
||||
USER shaun
|
||||
WORKDIR /workspace
|
||||
|
||||
# Avoid container exit.
|
||||
CMD ["tail", "-f", "/dev/null"]
|
||||
8
tools/docker-compose.yml
Normal file
8
tools/docker-compose.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
version: "3"
|
||||
services:
|
||||
mydev:
|
||||
container_name: mydev
|
||||
image: gitea.setlock.net/shaun/dev-container:latest
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /home/shaun:/workspace
|
||||
Reference in New Issue
Block a user