Compare commits

...

43 commits

Author SHA1 Message Date
e41c8d5f3a fix(neovim): remove deprecated key bindings([d and ]d is now default)
ref: https://neovim.io/doc/user/deprecated.html#_diagnostics
[d and ]d is now included in default keymap
2025-01-19 00:42:03 +09:00
44be709356 update(nvim): add lemminx lsp config 2025-01-15 20:06:59 +09:00
testuser
3aa560a502 update(wezterm): use regular weight for font 2024-12-03 16:17:05 +09:00
5c0a268fe0 update(nvim): add keymaps for telescope lsp utilities
- outgoing/incoming calls
- references
2024-11-15 20:54:25 +09:00
3a6eda6c77 change(colorscheme): use catppuccin latte (light theme) 2024-11-15 20:53:54 +09:00
c10ff130ce new(bat): add config & install script for linux 2024-11-15 20:35:05 +09:00
297445343d new(nvim): add typst-preview.nvim
with customization to modify --root for typst
2024-11-15 20:33:56 +09:00
c67a385937 new(nix): Experimental nix config 2024-10-31 21:18:57 +09:00
df46ec7453 new(lf): config installation for linux 2024-10-28 22:12:42 +09:00
2a7d1d80c0 new(lf): lfrc 2024-10-28 17:20:55 +09:00
1f600a970a fix(julials): import FileWatching on Windows 2024-10-26 02:53:56 +09:00
f5efb7cb66 refactor(julials): update docs & remove unused shell scripts 2024-10-22 18:27:36 +09:00
ad4a9f53a1 fix(julials): fix sysimage update (remove func calls for printstyled in
tracecompile)
2024-10-22 18:15:48 +09:00
616a13b1b0 update: julia-sysimages 2024-10-11 14:27:24 +09:00
3ea290ea58 fix(nvim): replace tsserver -> ts_ls since it's deprecated
- according to lspconfig
2024-10-11 14:26:47 +09:00
d8158947e5 update(nvim): update satysfi_ls config and its loading 2024-10-11 14:26:09 +09:00
49321cb4ff fix(xremap): config for M750(remove keymap for side buttons) 2024-10-11 12:04:33 +09:00
2b0329474c update(nvim): update julials dependency(add TOML) 2024-10-11 12:03:23 +09:00
686a6f1332 fix(neovim install): install ftplugin for typst 2024-10-11 12:00:19 +09:00
7efd53759a (WIP) new: nvim: tree-sitter injection for julia sql string 2024-10-02 19:15:34 +09:00
386410bc6c new: xremap: add mouse config 2024-08-05 22:33:33 +02:00
603c10544b update: nvim: replace ruff lsp with ruff 2024-07-31 14:09:31 +09:00
b560911ad4 nvim: change: use 4 threads for julials 2024-07-09 00:29:41 +09:00
64ce6479cb nvim: add: hlchunk & update dependency path 2024-07-09 00:29:19 +09:00
438823541a wezterm: update: font family regarding juisee update v0.2.0 2024-06-26 00:13:12 +09:00
fef6bc9836 pdfview: fix: bug which overrides shortcut config
* wrong variable name
2024-06-25 21:25:24 +09:00
7b0e53318d qpdfview: update: Add G as jump shortcut 2024-06-25 21:10:20 +09:00
d104726b73 update: julials: automatically create tracecompile.jl file at setup 2024-06-25 19:37:11 +09:00
6fb7a8f544 update README 2024-06-25 19:36:59 +09:00
ca78c94e71 qpdfview: update configs 2024-06-25 19:20:08 +09:00
ceef4b03b0 qpdfview: fix: check file existence before operation 2024-06-25 19:19:33 +09:00
a7be3b1f49 tmux: update: reduce cache size 2024-06-25 13:18:12 +09:00
bb5a54144a nvim: update: [org] use uuid & add Journal capture template 2024-06-25 13:16:49 +09:00
ae5a5a502f nvim: update: org config 2024-06-24 21:53:46 +09:00
a26aa2cd02 nvim: update: use tinymist instead of typst-lsp 2024-06-24 18:15:24 +09:00
0d16da2b31 nvim: fix: replace deprecated function 2024-06-18 20:34:54 +09:00
372040d1d7 nvim: update: setting up trouble.nvim v3
- just using default configs
2024-06-18 20:34:25 +09:00
4fefdd20b2 nvim: update: lazy installation for nvim 0.10 2024-06-18 19:49:36 +09:00
955fd55ff0 fish: new: add qpdfview abbr 2024-06-18 19:49:16 +09:00
26a0008b64 new: add qpdfview config 2024-06-06 23:42:08 +09:00
6490787142 nvim: add support for powershell_es on linux 2024-05-01 18:32:06 +09:00
aeae66bbf4 Merge branch 'main' of github.com:qwjyh/dotfiles 2024-04-17 11:49:06 +09:00
0340b930ea update: nvim: remove auto appended setup script by PDM 2024-04-15 18:00:06 +09:00
25 changed files with 431 additions and 81 deletions

View file

@ -7,16 +7,18 @@ my dotfiles
- AHK macro - AHK macro
- wezterm - wezterm
- etc - etc
- Ubuntu 20.04 on WSL - Arch
- fish
- Arch/Manjaro
- fish - fish
- tmux - tmux
- neovim - neovim
- keyboard config(xremap) - keyboard config(xremap)
- wezterm - wezterm
- Ubuntu 22.04 on WSL
- fish
- Termux
## extra ## extra
- qpdfview
- okular - okular
# Installing # Installing
@ -29,11 +31,20 @@ my dotfiles
6. run `bin/install.ps1` 6. run `bin/install.ps1`
### note ### note
* manual install lean * manually install lean
## Linux ## Linux
1. install fish 1. run install.sh
2. run install.sh
# Neovim
## Julia
### Initial setup
- `./bin/neovim/setup_julials.jl` to set up environment with LanguageServer.jl
<!-- - Edit `init.lua` not to use sysimage and edit some julia code -->
- `./bin/neovim/update_julials.jl` to generate sysimage for faster startup time
Edit `init.lua` to change arguments for julials.
# TODO # TODO
- Iron.nvim doesn't work for julia on Windows - Iron.nvim doesn't work for julia on Windows

View file

@ -58,6 +58,7 @@ New-Item -ItemType SymbolicLink -Path ~\AppData\Local\nvim\lua\lspconfig\server_
mkdir $env:LOCALAPPDATA\nvim\after\ftplugin mkdir $env:LOCALAPPDATA\nvim\after\ftplugin
New-Item -ItemType SymbolicLink -Path $env:LOCALAPPDATA\nvim\after\ftplugin\satysfi.lua -Target (Resolve-Path .\dotfiles\neovim\after\ftplugin\satysfi.lua) New-Item -ItemType SymbolicLink -Path $env:LOCALAPPDATA\nvim\after\ftplugin\satysfi.lua -Target (Resolve-Path .\dotfiles\neovim\after\ftplugin\satysfi.lua)
New-Item -ItemType SymbolicLink -Path $env:LOCALAPPDATA\nvim\after\ftplugin\tex.lua -Target (Resolve-Path .\dotfiles\neovim\after\ftplugin\tex.lua) New-Item -ItemType SymbolicLink -Path $env:LOCALAPPDATA\nvim\after\ftplugin\tex.lua -Target (Resolve-Path .\dotfiles\neovim\after\ftplugin\tex.lua)
New-Item -ItemType SymbolicLink -Path $env:LOCALAPPDATA\nvim\after\ftplugin\typst.lua -Target (Resolve-Path .\dotfiles\neovim\after\ftplugin\typst.lua)
mkdir $env:LOCALAPPDATA\nvim\after\queries\satysfi mkdir $env:LOCALAPPDATA\nvim\after\queries\satysfi
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/monaqa/tree-sitter-satysfi/master/queries/highlights.scm" -OutFile $env:LOCALAPPDATA\nvim\after\queries\satysfi\highlights.scm Invoke-WebRequest -Uri "https://raw.githubusercontent.com/monaqa/tree-sitter-satysfi/master/queries/highlights.scm" -OutFile $env:LOCALAPPDATA\nvim\after\queries\satysfi\highlights.scm
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/monaqa/tree-sitter-satysfi/master/queries/indents.scm" -OutFile $env:LOCALAPPDATA\nvim\after\queries\satysfi\indents.scm Invoke-WebRequest -Uri "https://raw.githubusercontent.com/monaqa/tree-sitter-satysfi/master/queries/indents.scm" -OutFile $env:LOCALAPPDATA\nvim\after\queries\satysfi\indents.scm
@ -76,4 +77,7 @@ New-Item -ItemType SymbolicLink -Path ~\.config\wezterm\wezterm.lua -Target (Res
# julia # julia
mkdir ~\.config\julia\config mkdir ~\.config\julia\config
New-Item -ItemType SymbolicLink -Path ~\.julia\config\startup.jl -Target (Resolve-Path .\dotfiles\startup_windows.jl) -Force New-Item -ItemType SymbolicLink -Path ~\.julia\config\startup.jl -Target (Resolve-Path .\dotfiles\startup_windows.jl) -Force
# lf
mkdir $env:LOCALAPPDATA\lf
New-Item -ItemType SymbolicLink -Path $env:LOCALAPPDATA\lf\lfrc -Target (Resolve-Path .\dotfiles\lf\lfrc) -Force

View file

@ -31,6 +31,7 @@ ln -sf $(pwd)/dotfiles/neovim/lua/lspconfig/server_configurations/satysfi_ls.lua
mkdir -p ~/.config/nvim/after/ftplugin mkdir -p ~/.config/nvim/after/ftplugin
ln -sf $(pwd)/dotfiles/neovim/after/ftplugin/satysfi.lua ~/.config/nvim/after/ftplugin/satysfi.lua ln -sf $(pwd)/dotfiles/neovim/after/ftplugin/satysfi.lua ~/.config/nvim/after/ftplugin/satysfi.lua
ln -sf $(pwd)/dotfiles/neovim/after/ftplugin/tex.lua ~/.config/nvim/after/ftplugin/tex.lua ln -sf $(pwd)/dotfiles/neovim/after/ftplugin/tex.lua ~/.config/nvim/after/ftplugin/tex.lua
ln -sf $(pwd)/dotfiles/neovim/after/ftplugin/typst.lua ~/.config/nvim/after/ftplugin/typst.lua
mkdir -p ~/.config/nvim/after/queries/satysfi mkdir -p ~/.config/nvim/after/queries/satysfi
curl -o ~/.config/nvim/after/queries/satysfi/highlights.scm https://raw.githubusercontent.com/monaqa/tree-sitter-satysfi/master/queries/highlights.scm curl -o ~/.config/nvim/after/queries/satysfi/highlights.scm https://raw.githubusercontent.com/monaqa/tree-sitter-satysfi/master/queries/highlights.scm
curl -o ~/.config/nvim/after/queries/satysfi/indents.scm https://raw.githubusercontent.com/monaqa/tree-sitter-satysfi/master/queries/indents.scm curl -o ~/.config/nvim/after/queries/satysfi/indents.scm https://raw.githubusercontent.com/monaqa/tree-sitter-satysfi/master/queries/indents.scm
@ -44,3 +45,8 @@ ln -sf $(pwd)/dotfiles/neovim/luasnippets/satysfi/math.lua ~/.config/nvim/luasni
mkdir -p ~/.julia/config mkdir -p ~/.julia/config
ln -sf $(pwd)/dotfiles/startup_linux.jl ~/.julia/config/startup.jl ln -sf $(pwd)/dotfiles/startup_linux.jl ~/.julia/config/startup.jl
mkdir -p ~/.config/lf
ln -sf $(pwd)/dotfiles/lf/lfrc ~/.config/lf/lfrc
ln -sf $(pwd)/dotfiles/bat/config "$(bat --config-file)"

View file

@ -13,7 +13,7 @@ foreach(Pkg.add, pkg_ls_deps)
# add extra dependencies # add extra dependencies
# these packages are manually collected # these packages are manually collected
pkg_extra = ["Logging", "Sockets", "DataStructures", "Tar", "ArgTools", "Dates", "Downloads"] pkg_extra = ["Logging", "Sockets", "DataStructures", "Tar", "ArgTools", "Dates", "Downloads", "TOML"]
foreach(Pkg.add, pkg_extra) foreach(Pkg.add, pkg_extra)
@info "dependency added" @info "dependency added"
@ -24,6 +24,9 @@ open(out_path, "w") do io
println(io, "using LanguageServer") println(io, "using LanguageServer")
println(io, "using " * join(pkg_ls_deps, ", ")) println(io, "using " * join(pkg_ls_deps, ", "))
println(io, "using " * join(pkg_extra, ", ")) println(io, "using " * join(pkg_extra, ", "))
if Sys.iswindows()
println(io, "import FileWatching")
end
end end
@info "finished writing precompile head file" @info "finished writing precompile head file"

View file

@ -1,27 +1,24 @@
# How to manage Julia Language Server # How to manage Julia Language Server
This config use sysimage built with PackageCompiler to make language server startup faster. This config use sysimage built with PackageCompiler to make language server starts faster.
Scripts in this directory is for management of sysimage. Scripts in this directory are for management of the sysimage.
# description # description
all related process is done in project at `~/.julia/environments/nvim-lspconfig/`. all related process is done in project at `~/.julia/environments/nvim-lspconfig/`.
## startup ## install (or minor update of Julia)
```sh ```sh
$ ./setup_julials.sh julia ./setup_julials.jl
``` ```
which executes `add_dependencies.jl` internally. Run Language Server with `--tracecompile` option from any editor.
## update ## update
```sh ```sh
$ ./update_julials.sh julia ./update_julials.sh
``` ```
which updates project, compile sysimage, then do precompile. which updates project, compile sysimage, then do precompile.
To use the sysimage, run Language Server with `-J ~/.julia/environments/nvim-lspconfig/` option.
# effect # effect
Start up got about x3 - x4 faster. Start up got about x3 - x4 faster.
It still takes some time to load packages though. It still takes some time to load packages though.
# TODO
- [ ] Not sure all necessary packages are listed in add_dependencies.jl
- [ ] Maybe it's better to set up different sysimages for each projects

View file

@ -1,14 +1,9 @@
#!/usr/bin/julia #!/usr/bin/julia
project_path = joinpath(homedir(), ".julia", "environments", "nvim-lspconfig") project_path = joinpath(homedir(), ".julia", "environments", "nvim-lspconfig")
if !ispath(project_path) if !ispath(project_path)
try mkdir(project_path)
mkdir(project_path) @info "Created $(project_path)"
@info "Created $(project_path)" touch(joinpath(project_path, "tracecompile.jl"))
catch e
@error e
@error dump(e)
throw(e)
end
end end
cmd = `julia --project=$(project_path) $(@__DIR__)/add_dependencies.jl` cmd = `julia --project=$(project_path) $(@__DIR__)/add_dependencies.jl`
@info cmd @info cmd

View file

@ -1,2 +0,0 @@
#!/usr/bin/bash -x
julia --project=~/.julia/environments/nvim-lspconfig ./add_dependencies.jl

View file

@ -1,14 +1,16 @@
#!/usr/bin/julia #!/usr/bin/julia
project_path = joinpath(homedir(), ".julia", "environments", "nvim-lspconfig") project_path = joinpath(homedir(), ".julia", "environments", "nvim-lspconfig")
cd(project_path) cd(project_path) do
@info "now at " pwd() @info "now at " pwd()
run(`julia --project=. -e 'using Pkg; Pkg.update()'`) run(`julia --project=. -e 'using Pkg; Pkg.update()'`)
compile_traces = Iterators.filter(eachline("tracecompile.jl")) do line compile_traces = Iterators.filter(eachline("tracecompile.jl")) do line
!startswith(line, '#') && !occursin(r"\#\d+\#\d+", line) # Remove anonymous functions from compile trace
end |> join !startswith(line, '#') && !occursin(r"\#\d+\#\d+", line) && !occursin(r"\#\#printstyled\#", line)
read("precompile_exec_head.jl", String) * compile_traces |> (b -> write("precompile_exec.jl", b)) end |> join
@info "compiling sysimage..." read("precompile_exec_head.jl", String) * compile_traces |> (b -> write("precompile_exec.jl", b))
run(`julia --project=. -e 'using PackageCompiler; create_sysimage(["LanguageServer"], sysimage_path = "sys-ls.so", precompile_execution_file = ["precompile_exec.jl"])'`) @info "compiling sysimage..."
@info "post precompile" run(`julia --project=. -e 'using PackageCompiler; create_sysimage(["LanguageServer"], sysimage_path = "sys-ls.so", precompile_execution_file = ["precompile_exec.jl"])'`)
run(`julia --project=. -J sys-ls.so -e 'using Pkg; Pkg.precompile()'`) @info "post precompile"
run(`julia --project=. -J sys-ls.so -e 'using Pkg; Pkg.precompile()'`)
end

View file

@ -1,7 +0,0 @@
#!/usr/bin/bash -x
cd ~/.julia/environments/nvim-lspconfig/ || return 1
julia --project=. -e 'using Pkg; Pkg.update()'
cat precompile_exec_head.jl tracecompile.jl > precompile_exec.jl
julia --project=. -e 'using PackageCompiler; create_sysimage(["LanguageServer"], sysimage_path="sys-ls.so", precompile_execution_file=["precompile_exec.jl"])'
julia --project=. -J sys-ls.so -e 'using Pkg; Pkg.precompile()'

4
dotfiles/bat/config Normal file
View file

@ -0,0 +1,4 @@
# use Catppuccin for bat
# https://github.com/catppuccin/bat
# Installation instruction on the readme
--theme="Catppuccin Latte"

View file

@ -18,6 +18,7 @@ if status is-interactive
# abbr (from 3.6, --universal is removed) # abbr (from 3.6, --universal is removed)
abbr -a -- l less abbr -a -- l less
abbr -a -- ll 'eza -la --icons --git' abbr -a -- ll 'eza -la --icons --git'
abbr -a -- qpv 'qpdfview --unique'
zoxide init fish | source zoxide init fish | source

23
dotfiles/lf/lfrc Normal file
View file

@ -0,0 +1,23 @@
cmap <tab> cmd-menu-complete
cmap <backtab> cmd-menu-complete-back
## https://github.com/gokcehan/lf/wiki/Integrations#eza
#cmd on-select &{{
# lf -remote "send $id set statfmt \"$(eza -ld --color=always "$f" | sed 's/\\/\\\\/g;s/"/\\"/g')\""
#}}
#
#cmd git_branch ${{
# git branch | fzf | xargs git checkout
# pwd_shell="$(pwd | sed 's/\\/\\\\/g;s/"/\\"/g')"
# lf -remote "send $id updir; cd \"$pwd_shell\""
#}}
#map gb :git_branch
#map gp $clear; git pull --rebase || true; echo "press ENTER"; read ENTER
#map gs $clear; git status; echo "press ENTER"; read ENTER
#map gl $clear; git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
#
#cmd on-cd &{{
# fmt="$(STARSHIP_SHELL= starship prompt | sed 's/\\/\\\\/g;s/"/\\"/g')"
# lf -remote "send $id set promptfmt \"$fmt\""
#}}

View file

@ -5,3 +5,42 @@
(#eq? @_prefix "md") (#eq? @_prefix "md")
(#set! injection.language "markdown") (#set! injection.language "markdown")
(#offset! @injection.content 0 2 0 -1)) (#offset! @injection.content 0 2 0 -1))
; ((prefixed_string_literal
; prefix: (identifier) @_prefix) @injection.content
; (#eq? @_prefix "sql")
; (#set! injection.language "sql")
; (#offset! @injection.content 0 4 0 -1))
;
; ((prefixed_string_literal
; prefix: (identifier) @_prefix) @injection.content
; (#eq? @_prefix "s")
; (#set! injection.language "sql")
; (#offset! @injection.content 0 3 0 -1))
;
; ((prefixed_string_literal
; prefix: (identifier) @_prefix) @injection.content
; (#eq? @_prefix "t")
; (#set! injection.language "regex")
; (#offset! @injection.content 0 2 0 -1))
;
; ((prefixed_string_literal
; prefix: (identifier) @_prefix) @injection.content
; (#eq? @_prefix "ts")
; (#set! injection.language "regex")
; (#offset! @injection.content 0 2 0 -1))
;
; ((prefixed_string_literal
; prefix: (identifier) @_prefix) @injection.content
; (#eq? @_prefix "tu")
; (#set! injection.language "regex")
; (#offset! @injection.content 0 3 0 -1))
;
; ((prefixed_string_literal
; prefix: (identifier) @_prefix) @injection.content
; (#eq? @_prefix "sql")
; ; (#offset! @injection.content 0 2 0 -1)
; ; (#offset! @injection.content 0 6 0 -3)
; (#gsub! @injection.content "^\"%\"" "%1")
; (#set! injection.language "sql")
; )

View file

@ -1,7 +1,7 @@
----------------------------------------------------------- -----------------------------------------------------------
-- Installing plugin manager 'lazy.nvim' -- Installing plugin manager 'lazy.nvim'
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then if not (vim.uv or vim.loop).fs_stat(lazypath) then
vim.fn.system({ vim.fn.system({
"git", "git",
"clone", "clone",
@ -56,7 +56,21 @@ require('lazy').setup({
}, },
{ -- lualine(statusline) { -- lualine(statusline)
'nvim-lualine/lualine.nvim', 'nvim-lualine/lualine.nvim',
dependencies = { 'kyazdani42/nvim-web-devicons', lazy = true } dependencies = { 'nvim-tree/nvim-web-devicons', lazy = true }
},
{
'shellRaining/hlchunk.nvim',
event = { "BufReadPre", "BufNewFile" },
config = function()
require('hlchunk').setup {
chunk = {
enable = true,
},
line_num = {
enable = true,
},
}
end
}, },
{ {
'lervag/vimtex', 'lervag/vimtex',
@ -131,7 +145,40 @@ require('lazy').setup({
}, },
{ {
'folke/trouble.nvim', 'folke/trouble.nvim',
-- config = function opts = {},
cmd = "Trouble",
keys = {
{
"<space>xx",
"<cmd>Trouble diagnostics toggle<cr>",
desc = "Diagnostics (Trouble)",
},
{
"<space>xX",
"<cmd>Trouble diagnostics toggle filter.buf=0<cr>",
desc = "Buffer Diagnostics (Trouble)",
},
{
"<space>cs",
"<cmd>Trouble symbols toggle focus=false<cr>",
desc = "Symbols (Trouble)",
},
{
"<space>cl",
"<cmd>Trouble lsp toggle focus=false win.position=bottom<cr>",
desc = "LSP Definitions / references / ... (Trouble)",
},
{
"<space>xL",
"<cmd>Trouble loclist toggle<cr>",
desc = "Location List (Trouble)",
},
{
"<space>xQ",
"<cmd>Trouble qflist toggle<cr>",
desc = "Quickfix List (Trouble)",
},
},
}, },
{ {
'Julian/lean.nvim', 'Julian/lean.nvim',
@ -197,9 +244,100 @@ require('lazy').setup({
require('orgmode').setup({ require('orgmode').setup({
org_agenda_files = '~/orgfiles/**/*', org_agenda_files = '~/orgfiles/**/*',
org_default_notes_file = '~/orgfiles/refile.org', org_default_notes_file = '~/orgfiles/refile.org',
org_todo_keywords = {
"TODO(t)",
"PLAN(p)",
"NEXT(n)",
"|",
"DONE(d)",
"CANCELED(c)",
},
org_todo_keyword_faces = {
-- TODO = ":foreground red",
PLAN = ":foreground #F0BB61",
NEXT = ":background #663333 :foreground #E0A0A0",
CANCELED = ":foreground #99AA99",
},
org_archive_location = '~/orgfiles/archives/%s_archive::',
org_adapt_indentation = false,
org_id_link_to_org_use_id = true,
org_capture_templates = {
t = {
description = "Task",
template = '* TODO %?\n%u'
},
l = {
description = "Log",
template = '* %?\n%U'
},
j = {
description = "Journal",
template = '* %?\n%U',
target = '~/orgfiles/journal.org',
},
},
}) })
end, end,
}, },
{
'chomosuke/typst-preview.nvim',
ft = 'typst',
version = 'v1.*',
build = function()
require 'typst-preview'.update()
end,
config = function()
require 'typst-preview'.setup {
-- Setting this true will enable printing debug information with print()
debug = false,
-- Custom format string to open the output link provided with %s
-- Example: open_cmd = 'firefox %s -P typst-preview --class typst-preview'
open_cmd = nil,
-- Setting this to 'always' will invert black and white in the preview
-- Setting this to 'auto' will invert depending if the browser has enable
-- dark mode
-- Setting this to '{"rest": "<option>","image": "<option>"}' will apply
-- your choice of color inversion to images and everything else
-- separately.
invert_colors = 'never',
-- Whether the preview will follow the cursor in the source file
follow_cursor = true,
-- Provide the path to binaries for dependencies.
-- Setting this will skip the download of the binary by the plugin.
-- Warning: Be aware that your version might be older than the one
-- required.
dependencies_bin = {
['tinymist'] = nil,
['websocat'] = nil
},
-- A list of extra arguments (or nil) to be passed to previewer.
-- For example, extra_args = { "--input=ver=draft", "--ignore-system-fonts" }
extra_args = nil,
-- This function will be called to determine the root of the typst project
get_root = function(path_of_main_file)
-- Use root of git repository as a --root for typst
local rootpath = vim.fs.root(path_of_main_file, '.git')
if rootpath then
return rootpath
else
return vim.fn.fnamemodify(path_of_main_file, ':p:h')
end
end,
-- This function will be called to determine the main file of the typst
-- project.
get_main_file = function(path_of_buffer)
return path_of_buffer
end,
}
end
},
}) })
----------------------------------------------------------- -----------------------------------------------------------
@ -251,7 +389,7 @@ vim.keymap.set('n', 'L', '<cmd>tabn<cr>', { desc = 'tab next' })
require('catppuccin').setup({ require('catppuccin').setup({
transparent_background = true, transparent_background = true,
}) })
vim.cmd.colorscheme "catppuccin" vim.cmd.colorscheme "catppuccin-latte"
----------------------------------------------------------- -----------------------------------------------------------
vim.g.mapleader = ' ' vim.g.mapleader = ' '
@ -352,6 +490,9 @@ local builtin = require('telescope.builtin')
vim.keymap.set('n', '<leader>ff', function() builtin.find_files { sort_lastused = true } end, { desc = "find files" }) vim.keymap.set('n', '<leader>ff', function() builtin.find_files { sort_lastused = true } end, { desc = "find files" })
vim.keymap.set('n', '<leader>fw', builtin.lsp_workspace_symbols, { desc = "lsp workspace symbols" }) vim.keymap.set('n', '<leader>fw', builtin.lsp_workspace_symbols, { desc = "lsp workspace symbols" })
vim.keymap.set('n', '<leader>fd', builtin.lsp_document_symbols, { desc = "lsp document symbols" }) vim.keymap.set('n', '<leader>fd', builtin.lsp_document_symbols, { desc = "lsp document symbols" })
vim.keymap.set('n', '<leader>flr', builtin.lsp_references, { desc = "lsp references for word" })
vim.keymap.set('n', '<leader>fli', builtin.lsp_incoming_calls, { desc = "lsp incoming calls" })
vim.keymap.set('n', '<leader>flo', builtin.lsp_outgoing_calls, { desc = "lsp outgoing calls" })
vim.keymap.set('n', '<leader>fb', builtin.buffers, { desc = "buffers" }) vim.keymap.set('n', '<leader>fb', builtin.buffers, { desc = "buffers" })
vim.keymap.set('n', '<leader>fg', builtin.live_grep, { desc = "grep" }) vim.keymap.set('n', '<leader>fg', builtin.live_grep, { desc = "grep" })
vim.keymap.set('n', '<leader>fh', builtin.help_tags, { desc = "help tags" }) vim.keymap.set('n', '<leader>fh', builtin.help_tags, { desc = "help tags" })
@ -474,8 +615,6 @@ local lspconfig = require 'lspconfig'
-- See `:help vim.diagnostic.* for documentation on any of the below functions -- See `:help vim.diagnostic.* for documentation on any of the below functions
local opts = { noremap = true, silent = true } local opts = { noremap = true, silent = true }
vim.keymap.set('n', '<space>e', vim.diagnostic.open_float, opts) vim.keymap.set('n', '<space>e', vim.diagnostic.open_float, opts)
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts)
vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts)
vim.keymap.set('n', '<space>q', vim.diagnostic.setloclist, opts) vim.keymap.set('n', '<space>q', vim.diagnostic.setloclist, opts)
-- Use an on_attach function to only map the following keys -- Use an on_attach function to only map the following keys
@ -550,6 +689,7 @@ lspconfig.julials.setup {
-- use below 2 lines to collect script to be included in sysimage -- use below 2 lines to collect script to be included in sysimage
-- '--trace-compile', -- '--trace-compile',
-- vim.env.HOME .. "/.julia/environments/nvim-lspconfig/tracecompile.jl", -- vim.env.HOME .. "/.julia/environments/nvim-lspconfig/tracecompile.jl",
"-t4",
"-e", "-e",
[[ [[
# Load LanguageServer.jl: attempt to load from ~/.julia/environments/nvim-lspconfig # Load LanguageServer.jl: attempt to load from ~/.julia/environments/nvim-lspconfig
@ -586,6 +726,7 @@ lspconfig.julials.setup {
]] } ]] }
} }
-- SATySFi -- SATySFi
require 'lspconfig.server_configurations.satysfi_ls'
lspconfig.satysfi_ls.setup { lspconfig.satysfi_ls.setup {
on_attach = on_attach, on_attach = on_attach,
capabilities = capabilities, capabilities = capabilities,
@ -597,8 +738,10 @@ lspconfig.bashls.setup {
capabilities = capabilities, capabilities = capabilities,
} }
-- pwsh -- pwsh
local win_pwsh_es_path = '~/scoop/apps/powershell-editorservice/current'
local arch_pwsh_es_path = "/opt/powershell-editor-services/"
lspconfig.powershell_es.setup { lspconfig.powershell_es.setup {
bundle_path = '~/scoop/apps/powershell-editorservice/current', bundle_path = vim.fn.has('win32') == 1 and win_pwsh_es_path or arch_pwsh_es_path,
capabilities = capabilities, capabilities = capabilities,
} }
-- ccls -- ccls
@ -607,7 +750,13 @@ lspconfig.powershell_es.setup {
-- cmd = {'omnisharp'}, -- cmd = {'omnisharp'},
-- } -- }
lspconfig.typst_lsp.setup { -- lspconfig.typst_lsp.setup {
-- on_attach = on_attach,
-- capabilities = capabilities,
-- single_file_support = true,
-- }
lspconfig.tinymist.setup {
on_attach = on_attach, on_attach = on_attach,
capabilities = capabilities, capabilities = capabilities,
single_file_support = true, single_file_support = true,
@ -625,8 +774,8 @@ lspconfig.rust_analyzer.setup {
} }
} }
local lss = { "pyright", "texlab", "ccls", "clangd", "tsserver", --[["tailwindcss"]] "hls", "cmake", local lss = { "pyright", "texlab", --[[ "ccls", ]] "clangd", "ts_ls", --[["tailwindcss"]] "hls", "cmake",
"csharp_ls", "html", "r_language_server", "ruff_lsp", "cssls", "jsonls", "sqls" } "csharp_ls", "html", "r_language_server", "cssls", "jsonls", "sqls", "vhdl_ls", "ruff", "lemminx" }
for _, ls in pairs(lss) do for _, ls in pairs(lss) do
lspconfig[ls].setup { lspconfig[ls].setup {
on_attach = on_attach, on_attach = on_attach,

View file

@ -1,21 +1,20 @@
-- https://zenn.dev/monaqa/articles/2021-12-10-satysfi-language-server -- https://zenn.dev/monaqa/articles/2021-12-10-satysfi-language-server
local util = require 'lspconfig.util' local configs = require 'lspconfig.configs'
return { configs.satysfi_ls = {
default_config = {
cmd = { 'satysfi-language-server' },
filetypes = { 'satysfi' },
root_dir = util.root_pattern('.git'),
single_file_support = true,
},
docs = {
description = [[
https://github.com/monaqa/satysfi-language-server
Language server for SATySFi.
]],
default_config = { default_config = {
root_dir = [[root_pattern(".git")]], cmd = { 'satysfi-language-server' },
filetypes = { 'satysfi' },
root_dir = vim.fs.root(0, ".git"),
single_file_support = true,
},
docs = {
description = [[
https://github.com/monaqa/satysfi-language-server
Language server for SATySFi.
]],
default_config = {
root_dir = [[root_pattern(".git")]],
},
}, },
},
} }

View file

@ -1,7 +1,7 @@
-- https://qiita.com/uhooi/items/99aeff822d4870a8e269 -- https://qiita.com/uhooi/items/99aeff822d4870a8e269
local lsp_names = function () local lsp_names = function ()
local clients = {} local clients = {}
for _, client in ipairs(vim.lsp.get_active_clients({ bufnr = 0})) do for _, client in ipairs(vim.lsp.get_clients({ bufnr = 0})) do
table.insert(clients, client.name) table.insert(clients, client.name)
end end
return '' .. table.concat(clients, ', ') return '' .. table.concat(clients, ', ')

View file

@ -231,7 +231,3 @@ Import-Module WSLTabCompletion
Get-ChildItem ~\.config\powershell\completions\ | % { . $_ } Get-ChildItem ~\.config\powershell\completions\ | % { . $_ }
# Automatically appended by pdm scoop package
Get-ChildItem "$PROFILE\..\Completions\" | ForEach-Object {
. $_.FullName
}

View file

@ -1,6 +1,8 @@
try try
using OhMyREPL using OhMyREPL
enable_autocomplete_brackets(false) enable_autocomplete_brackets(false)
include("catppuccin.jl")
OhMyREPL.colorscheme!("CatppuccinLatte")
catch e catch e
@warn "Failed to load OhMyREPL" @warn "Failed to load OhMyREPL"
end end

View file

@ -2,7 +2,7 @@
source ~/.local.tmux.conf source ~/.local.tmux.conf
# ----------------------------------------------- # -----------------------------------------------
set -g history-limit 500000 set -g history-limit 50000
set-option -g default-command fish set-option -g default-command fish

View file

@ -44,15 +44,16 @@ return {
-- } -- }
-- }, -- },
color_scheme = "iceberg-dark", -- color_scheme = "iceberg-dark",
color_scheme = "catppuccin-latte",
use_fancy_tab_bar = false, use_fancy_tab_bar = false,
tab_bar_at_bottom = true, tab_bar_at_bottom = true,
window_background_opacity = 0.85, window_background_opacity = 0.85,
-- font = wezterm.font 'FirgeNerd Console' -- font = wezterm.font 'FirgeNerd Console'
font = wezterm.font_with_fallback { font = wezterm.font_with_fallback {
{ {
family = 'JuiseeHW Nerd Font', family = 'Juisee HWNF',
weight = 'Bold', weight = 'Regular',
harfbuzz_features = { harfbuzz_features = {
'calt=0', -- disables ligature 'calt=0', -- disables ligature
'zero=1', 'zero=1',

View file

@ -0,0 +1,73 @@
#!/usr/bin/env python
"""
Modify qpdfview config.
"""
import configparser
import os
import shutil
# =======================================================================================
QPDFVIEW_CONFIGDIR = os.path.expanduser("~/.config/qpdfview/")
if not os.path.exists(QPDFVIEW_CONFIGDIR):
print("qpdfview config directory not found.")
print("Install qpdfview first and rerun this script.")
print("Exiting...")
exit(1)
# =======================================================================================
QPDFVIEW_CONFIG_CONFIG = QPDFVIEW_CONFIGDIR + "qpdfview.conf"
print(f"{QPDFVIEW_CONFIG_CONFIG=}")
if os.path.exists(QPDFVIEW_CONFIG_CONFIG):
shutil.copyfile(QPDFVIEW_CONFIG_CONFIG, QPDFVIEW_CONFIG_CONFIG + ".orig")
config = configparser.RawConfigParser()
config.optionxform = lambda optionstr: optionstr
config.read(QPDFVIEW_CONFIG_CONFIG)
config["documentView"]["autoRefresh"] = "true"
config["documentView"]["highlightAll"] = "true"
config["documentView"]["highlightCurrentThumbnail"] = "true"
config["documentView"]["highlightDuration"] = "5000"
config["documentView"]["limitThumbnailsToResults"] = "true"
config["documentView"]["prefetch"] = "true"
config["documentView"]["prefetchDistance"] = "5"
config["documentView"]["relativeJumps"] = "true"
config["mainWindow"]["recentlyClosedCount"] = "20"
config["mainWindow"]["recentlyUsedCount"] = "40"
config["mainWindow"]["restorePerFileSettings"] = "true"
config["mainWindow"]["restoreTabs"] = "true"
config["mainWindow"]["searchableMenus"] = "true"
config["mainWindow"]["tabVisibility"] = "0"
config["mainWindow"]["trackRecentlyUsed"] = "true"
config["mainWindow"]["viewToolBar"] = "scaleFactor, zoomIn, zoomOut, fitToPageWidthMode"
config["pageItem"]["cacheSize"] = "131072K"
with open(QPDFVIEW_CONFIG_CONFIG, "w") as file:
config.write(file, space_around_delimiters=False)
# =======================================================================================
QPDFVIEW_CONFIG_SHORTCUTS = QPDFVIEW_CONFIGDIR + "shortcuts.conf"
if os.path.exists(QPDFVIEW_CONFIG_SHORTCUTS):
shutil.copyfile(QPDFVIEW_CONFIG_SHORTCUTS, QPDFVIEW_CONFIG_SHORTCUTS + ".orig")
shortcut_config = configparser.RawConfigParser()
shortcut_config.optionxform = lambda optionstr: optionstr
shortcut_config.read(QPDFVIEW_CONFIG_SHORTCUTS)
shortcut_config["General"]["continuousMode"] = "Ctrl+7, C"
shortcut_config["General"]["findNext"] = "Ctrl+G, Return"
shortcut_config["General"]["findPrevious"] = "Ctrl+Shift+G, Shift+Return"
shortcut_config["General"]["jumpToPage"] = "Ctrl+J, G"
shortcut_config["General"]["nextPage"] = "Space, N"
shortcut_config["General"]["previousPage"] = "Backspace, P"
with open(QPDFVIEW_CONFIG_SHORTCUTS, "w") as file:
shortcut_config.write(file, space_around_delimiters=False)

View file

@ -0,0 +1,15 @@
keymap:
- name: Wheel Tilt
remap:
# Side forward
# Btn_Side: Left
# Side back
# Btn_Extra: Right
XRIGHTSCROLL:
remap:
XHIRES_RIGHTSCROLL: Ctrl-Tab
XLEFTSCROLL:
remap:
XHIRES_LEFTSCROLL: Ctrl-Shift-Tab
device:
only: 'Logi M750 Mouse'

@ -1 +1 @@
Subproject commit 21f32a2032614d2e923be436ca4a4f0f07a8cdc5 Subproject commit 98581abe7cb2baecd63e95c337da08778fec60ae

14
nix/README.md Normal file
View file

@ -0,0 +1,14 @@
# Experimental Nix flake for general cli environment
- Basically for servers, not for my laptops.
# How to Install
```sh
$ nix flake build
$ nix profile install .#my-packages
```
# How to upgrade
```sh
$ nix flake upgrade
$ nix profile upgrade my-packages
```

25
nix/flake.nix Normal file
View file

@ -0,0 +1,25 @@
{
description = "A very basic flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
};
outputs = { self, nixpkgs }: {
packages.x86_64-linux.my-packages = nixpkgs.legacyPackages.x86_64-linux.buildEnv {
name = "my-packages-list";
paths = [
nixpkgs.legacyPackages.x86_64-linux.fish
nixpkgs.legacyPackages.x86_64-linux.git
nixpkgs.legacyPackages.x86_64-linux.curl
nixpkgs.legacyPackages.x86_64-linux.neovim
nixpkgs.legacyPackages.x86_64-linux.ripgrep
nixpkgs.legacyPackages.x86_64-linux.fzf
nixpkgs.legacyPackages.x86_64-linux.clang-tools
];
};
};
}