Updated kak, firefox, etc
This commit is contained in:
		
							parent
							
								
									0b4b950ad1
								
							
						
					
					
						commit
						379f672586
					
				
							
								
								
									
										
											BIN
										
									
								
								dotfiles/Passwords.kdbx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								dotfiles/Passwords.kdbx
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										447
									
								
								dotfiles/kak-lsp/kak-lsp.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										447
									
								
								dotfiles/kak-lsp/kak-lsp.toml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,447 @@
 | 
			
		||||
snippet_support = true
 | 
			
		||||
verbosity = 2
 | 
			
		||||
 | 
			
		||||
[server]
 | 
			
		||||
# exit session if no requests were received during given period in seconds
 | 
			
		||||
# set to 0 to disable
 | 
			
		||||
timeout = 1800 # seconds = 30 minutes
 | 
			
		||||
 | 
			
		||||
[language.bash]
 | 
			
		||||
filetypes = ["sh"]
 | 
			
		||||
roots = [".git", ".hg"]
 | 
			
		||||
command = "bash-language-server"
 | 
			
		||||
args = ["start"]
 | 
			
		||||
 | 
			
		||||
[language.c_cpp]
 | 
			
		||||
filetypes = ["c", "cpp"]
 | 
			
		||||
roots = ["compile_commands.json", ".clangd", ".git", ".hg"]
 | 
			
		||||
command = "clangd"
 | 
			
		||||
 | 
			
		||||
[language.clojure]
 | 
			
		||||
filetypes = ["clojure"]
 | 
			
		||||
roots = ["project.clj", ".git", ".hg"]
 | 
			
		||||
command = "clojure-lsp"
 | 
			
		||||
settings_section = "_"
 | 
			
		||||
[language.clojure.settings._]
 | 
			
		||||
# See https://clojure-lsp.io/settings/#all-settings
 | 
			
		||||
# source-paths-ignore-regex = ["resources.*", "target.*"]
 | 
			
		||||
 | 
			
		||||
[language.cmake]
 | 
			
		||||
filetypes = ["cmake"]
 | 
			
		||||
roots = ["CMakeLists.txt", ".git", ".hg"]
 | 
			
		||||
command = "cmake-language-server"
 | 
			
		||||
 | 
			
		||||
[language.crystal]
 | 
			
		||||
filetypes = ["crystal"]
 | 
			
		||||
roots = ["shard.yml"]
 | 
			
		||||
command = "crystalline"
 | 
			
		||||
 | 
			
		||||
[language.css]
 | 
			
		||||
filetypes = ["css"]
 | 
			
		||||
roots = ["package.json", ".git", ".hg"]
 | 
			
		||||
command = "vscode-css-languageserver"
 | 
			
		||||
args = ["--stdio"]
 | 
			
		||||
 | 
			
		||||
[language.less]
 | 
			
		||||
filetypes = ["less"]
 | 
			
		||||
roots = ["package.json", ".git", ".hg"]
 | 
			
		||||
command = "vscode-css-languageserver"
 | 
			
		||||
args = ["--stdio"]
 | 
			
		||||
 | 
			
		||||
[language.scss]
 | 
			
		||||
filetypes = ["scss"]
 | 
			
		||||
roots = ["package.json", ".git", ".hg"]
 | 
			
		||||
command = "vscode-css-languageserver"
 | 
			
		||||
args = ["--stdio"]
 | 
			
		||||
 | 
			
		||||
[language.d]
 | 
			
		||||
filetypes = ["d", "di"]
 | 
			
		||||
roots = [".git", "dub.sdl", "dub.json"]
 | 
			
		||||
command = "dls"
 | 
			
		||||
 | 
			
		||||
[language.dart]
 | 
			
		||||
# start shell to find path to dart analysis server source
 | 
			
		||||
filetypes = ["dart"]
 | 
			
		||||
roots = ["pubspec.yaml", ".git", ".hg"]
 | 
			
		||||
command = "dart"
 | 
			
		||||
args = ["language-server"]
 | 
			
		||||
[language.dart.settings.dart]
 | 
			
		||||
lineLength = 120
 | 
			
		||||
 | 
			
		||||
[language.elixir]
 | 
			
		||||
filetypes = ["elixir"]
 | 
			
		||||
roots = ["mix.exs"]
 | 
			
		||||
command = "elixir-ls"
 | 
			
		||||
settings_section = "elixirLS"
 | 
			
		||||
[language.elixir.settings.elixirLS]
 | 
			
		||||
# See https://github.com/elixir-lsp/elixir-ls/blob/master/apps/language_server/lib/language_server/server.ex
 | 
			
		||||
# dialyzerEnable = true
 | 
			
		||||
 | 
			
		||||
[language.elm]
 | 
			
		||||
filetypes = ["elm"]
 | 
			
		||||
roots = ["elm.json"]
 | 
			
		||||
command = "elm-language-server"
 | 
			
		||||
args = ["--stdio"]
 | 
			
		||||
settings_section = "elmLS"
 | 
			
		||||
[language.elm.settings.elmLS]
 | 
			
		||||
# See https://github.com/elm-tooling/elm-language-server#server-settings
 | 
			
		||||
runtime = "node"
 | 
			
		||||
elmPath = "elm"
 | 
			
		||||
elmFormatPath = "elm-format"
 | 
			
		||||
elmTestPath = "elm-test"
 | 
			
		||||
 | 
			
		||||
[language.elvish]
 | 
			
		||||
filetypes = ["elvish"]
 | 
			
		||||
roots = [".git", ".hg"]
 | 
			
		||||
command = "elvish"
 | 
			
		||||
args = ["-lsp"]
 | 
			
		||||
 | 
			
		||||
[language.erlang]
 | 
			
		||||
filetypes = ["erlang"]
 | 
			
		||||
# See https://github.com/erlang-ls/erlang_ls.git for more information and
 | 
			
		||||
# how to configure. This default config should work in most cases though.
 | 
			
		||||
roots = ["rebar.config", "erlang.mk", ".git", ".hg"]
 | 
			
		||||
command = "erlang_ls"
 | 
			
		||||
 | 
			
		||||
[language.go]
 | 
			
		||||
filetypes = ["go"]
 | 
			
		||||
roots = ["Gopkg.toml", "go.mod", ".git", ".hg"]
 | 
			
		||||
command = "gopls"
 | 
			
		||||
settings_section = "gopls"
 | 
			
		||||
[language.go.settings.gopls]
 | 
			
		||||
# See https://github.com/golang/tools/blob/master/gopls/doc/settings.md
 | 
			
		||||
# "build.buildFlags" = []
 | 
			
		||||
 | 
			
		||||
[language.haskell]
 | 
			
		||||
filetypes = ["haskell"]
 | 
			
		||||
roots = ["hie.yaml", "cabal.project", "Setup.hs", "stack.yaml", "*.cabal"]
 | 
			
		||||
command = "haskell-language-server-wrapper"
 | 
			
		||||
args = ["--lsp"]
 | 
			
		||||
settings_section = "_"
 | 
			
		||||
[language.haskell.settings._]
 | 
			
		||||
# See https://haskell-language-server.readthedocs.io/en/latest/configuration.html
 | 
			
		||||
# haskell.formattingProvider = "ormolu"
 | 
			
		||||
 | 
			
		||||
[language.html]
 | 
			
		||||
filetypes = ["html"]
 | 
			
		||||
roots = ["package.json"]
 | 
			
		||||
command = "vscode-html-languageserver"
 | 
			
		||||
args = ["--stdio"]
 | 
			
		||||
 | 
			
		||||
# # Commented out by default because you still need to set the paths in the JDT
 | 
			
		||||
# # Language Server arguments below before this can become a valid configuration.
 | 
			
		||||
# [language.java]
 | 
			
		||||
# filetypes = ["java"]
 | 
			
		||||
# roots = [".git", "mvnw", "gradlew"]
 | 
			
		||||
# command = "java"
 | 
			
		||||
# args = [
 | 
			
		||||
#     "-Declipse.application=org.eclipse.jdt.ls.core.id1",
 | 
			
		||||
#     "-Dosgi.bundles.defaultStartLevel=4",
 | 
			
		||||
#     "-Declipse.product=org.eclipse.jdt.ls.core.product",
 | 
			
		||||
#     "-Dlog.level=ALL",
 | 
			
		||||
#     "-Dfile.encoding=utf-8",
 | 
			
		||||
#     "--add-modules=ALL-SYSTEM",
 | 
			
		||||
#     "--add-opens",
 | 
			
		||||
#     "java.base/java.util=ALL-UNNAMED",
 | 
			
		||||
#     "--add-opens",
 | 
			
		||||
#     "java.base/java.lang=ALL-UNNAMED",
 | 
			
		||||
#     "-noverify",
 | 
			
		||||
#     "-Xmx1G",
 | 
			
		||||
#     "-jar",
 | 
			
		||||
#     "/path/to/eclipse.jdt.ls/repository/plugins/org.eclipse.equinox.launcher_1.6.100.v20201223-0822.jar",
 | 
			
		||||
#     "-configuration",
 | 
			
		||||
#     "/path/to/eclipse.jdt.ls/repository/config_linux",
 | 
			
		||||
#     "-data",
 | 
			
		||||
#     "/path/to/eclipse-workspace",
 | 
			
		||||
# ]
 | 
			
		||||
# [language.java.settings]
 | 
			
		||||
# # See https://github.dev/eclipse/eclipse.jdt.ls
 | 
			
		||||
# # "java.format.insertSpaces" = true
 | 
			
		||||
 | 
			
		||||
[language.javascriptreact]
 | 
			
		||||
filetypes = ["javascript"]
 | 
			
		||||
roots = ["package.json", "tsconfig.json", ".git", ".hg"]
 | 
			
		||||
command = "typescript-language-server"
 | 
			
		||||
args = ["--stdio"]
 | 
			
		||||
settings_section = "_"
 | 
			
		||||
[language.javascriptreact.settings._]
 | 
			
		||||
# quotePreference = "single"
 | 
			
		||||
# javascript.format.semicolons = "insert"
 | 
			
		||||
 | 
			
		||||
[language.json]
 | 
			
		||||
filetypes = ["json"]
 | 
			
		||||
roots = ["package.json"]
 | 
			
		||||
command = "vscode-json-language-server"
 | 
			
		||||
args = ["--stdio"]
 | 
			
		||||
 | 
			
		||||
# Requires Julia package "LanguageServer"
 | 
			
		||||
# Run: `julia --project=@kak-lsp -e 'import Pkg; Pkg.add("LanguageServer")'` to install it
 | 
			
		||||
# Configuration adapted from https://github.com/neovim/nvim-lspconfig/blob/bcebfac7429cd8234960197dca8de1767f3ef5d3/lua/lspconfig/julials.lua
 | 
			
		||||
[language.julia]
 | 
			
		||||
filetypes = ["julia"]
 | 
			
		||||
roots = ["Project.toml", ".git", ".hg"]
 | 
			
		||||
command = "julia"
 | 
			
		||||
args = [
 | 
			
		||||
    "--startup-file=no",
 | 
			
		||||
    "--history-file=no",
 | 
			
		||||
    "-e",
 | 
			
		||||
    """
 | 
			
		||||
    ls_install_path = joinpath(get(DEPOT_PATH, 1, joinpath(homedir(), ".julia")), "environments", "kak-lsp");
 | 
			
		||||
    pushfirst!(LOAD_PATH, ls_install_path);
 | 
			
		||||
    using LanguageServer;
 | 
			
		||||
    popfirst!(LOAD_PATH);
 | 
			
		||||
    depot_path = get(ENV, "JULIA_DEPOT_PATH", "");
 | 
			
		||||
    buffer_file = ENV["kak_buffile"];
 | 
			
		||||
    project_path = let
 | 
			
		||||
      dirname(something(
 | 
			
		||||
        # 1. Check if there is an explicitly set project
 | 
			
		||||
        Base.load_path_expand((
 | 
			
		||||
          p = get(ENV, "JULIA_PROJECT", nothing);
 | 
			
		||||
          p === nothing ? nothing : isempty(p) ? nothing : p
 | 
			
		||||
        )),
 | 
			
		||||
        # 2. Check for Project.toml in current working directory
 | 
			
		||||
        Base.current_project(pwd()),
 | 
			
		||||
        # 3. Check for Project.toml from buffer's full file path excluding the file name
 | 
			
		||||
        Base.current_project(dirname(buffer_file)),
 | 
			
		||||
        # 4. Fallback to global environment
 | 
			
		||||
        Base.active_project()
 | 
			
		||||
      ))
 | 
			
		||||
    end
 | 
			
		||||
    server = LanguageServer.LanguageServerInstance(stdin, stdout, project_path, depot_path);
 | 
			
		||||
    server.runlinter = true;
 | 
			
		||||
    run(server);
 | 
			
		||||
    """,
 | 
			
		||||
]
 | 
			
		||||
[language.julia.settings]
 | 
			
		||||
# See https://github.com/julia-vscode/LanguageServer.jl/blob/master/src/requests/workspace.jl
 | 
			
		||||
# Format options. See https://github.com/julia-vscode/DocumentFormat.jl/blob/master/src/DocumentFormat.jl
 | 
			
		||||
# "julia.format.indent" = 4
 | 
			
		||||
# Lint options. See https://github.com/julia-vscode/StaticLint.jl/blob/master/src/linting/checks.jl
 | 
			
		||||
# "julia.lint.call" = true
 | 
			
		||||
# Other options, see https://github.com/julia-vscode/LanguageServer.jl/blob/master/src/requests/workspace.jl
 | 
			
		||||
# "julia.lint.run" = "true"
 | 
			
		||||
 | 
			
		||||
[language.latex]
 | 
			
		||||
filetypes = ["latex"]
 | 
			
		||||
roots = [".git", ".hg"]
 | 
			
		||||
command = "texlab"
 | 
			
		||||
settings_section = "texlab"
 | 
			
		||||
[language.latex.settings.texlab]
 | 
			
		||||
# See https://github.com/latex-lsp/texlab/wiki/Configuration
 | 
			
		||||
#
 | 
			
		||||
# Preview configuration for zathura with SyncTeX search.
 | 
			
		||||
# For other PDF viewers see https://github.com/latex-lsp/texlab/wiki/Previewing
 | 
			
		||||
forwardSearch.executable = "zathura"
 | 
			
		||||
forwardSearch.args = [
 | 
			
		||||
    "%p",
 | 
			
		||||
    "--synctex-forward", # Support texlab-forward-search
 | 
			
		||||
    "%l:1:%f",
 | 
			
		||||
    "--synctex-editor-command", # Inverse search: use Control+Left-Mouse-Button to jump to source.
 | 
			
		||||
    """
 | 
			
		||||
        sh -c '
 | 
			
		||||
            echo "
 | 
			
		||||
                evaluate-commands -client %opt{texlab_client} %{
 | 
			
		||||
                    evaluate-commands -try-client %opt{jumpclient} %{
 | 
			
		||||
                        edit -- %{input} %{line}
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            " | kak -p $kak_session
 | 
			
		||||
        '
 | 
			
		||||
    """,
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[language.lua]
 | 
			
		||||
filetypes = ["lua"]
 | 
			
		||||
roots = [".git", ".hg"]
 | 
			
		||||
command = "lua-language-server"
 | 
			
		||||
[language.lua.settings.Lua]
 | 
			
		||||
# See https://github.com/sumneko/vscode-lua/blob/master/setting/schema.json
 | 
			
		||||
# diagnostics.enable = true
 | 
			
		||||
 | 
			
		||||
[language.markdown]
 | 
			
		||||
filetype = ["md", "markdown"]
 | 
			
		||||
roots = [".git", ".hg"]
 | 
			
		||||
command = "vscode-markdown-language-server"
 | 
			
		||||
args = ["--stdio"]
 | 
			
		||||
 | 
			
		||||
# [[language]]
 | 
			
		||||
# name = "markdown"
 | 
			
		||||
# scope = "source.md"
 | 
			
		||||
# injection-regex = "md|markdown"
 | 
			
		||||
# file-types = ["md", "markdown", "PULLREQ_EDITMSG", "mkd", "mdwn", "mdown", "markdn", "mdtxt", "mdtext", "workbook"]
 | 
			
		||||
# roots = [".marksman.toml"]
 | 
			
		||||
# language-servers = [ "marksman" ]
 | 
			
		||||
# indent = { tab-width = 2, unit = "  " }
 | 
			
		||||
 | 
			
		||||
[language.nim]
 | 
			
		||||
filetypes = ["nim"]
 | 
			
		||||
roots = ["*.nimble", ".git", ".hg"]
 | 
			
		||||
command = "nimlsp"
 | 
			
		||||
 | 
			
		||||
[language.nix]
 | 
			
		||||
filetypes = ["nix"]
 | 
			
		||||
roots = ["flake.nix", "shell.nix", ".git", ".hg"]
 | 
			
		||||
command = "rnix-lsp"
 | 
			
		||||
 | 
			
		||||
[language.ocaml]
 | 
			
		||||
filetypes = ["ocaml"]
 | 
			
		||||
# Often useful to simply do a `touch dune-workspace` in your project root folder if you have problems with root detection
 | 
			
		||||
roots = ["dune-workspace", "dune-project", "Makefile", "opam", "*.opam", "esy.json", ".git", ".hg", "dune"]
 | 
			
		||||
command = "ocamllsp"
 | 
			
		||||
 | 
			
		||||
[language.php]
 | 
			
		||||
filetypes = ["php"]
 | 
			
		||||
roots = [".htaccess", "composer.json"]
 | 
			
		||||
command = "intelephense"
 | 
			
		||||
args = ["--stdio"]
 | 
			
		||||
settings_section = "intelephense"
 | 
			
		||||
[language.php.settings]
 | 
			
		||||
intelephense.storagePath = "/tmp/intelephense"
 | 
			
		||||
 | 
			
		||||
[language.proto]
 | 
			
		||||
filetypes = ["protobuf"]
 | 
			
		||||
roots = [".git", ".hg"]
 | 
			
		||||
command = "pls" # https://github.com/lasorda/protobuf-language-server
 | 
			
		||||
 | 
			
		||||
[language.python]
 | 
			
		||||
filetypes = ["python"]
 | 
			
		||||
roots = ["requirements.txt", "setup.py", ".git", ".hg"]
 | 
			
		||||
command = "pylsp"
 | 
			
		||||
settings_section = "_"
 | 
			
		||||
[language.python.settings._]
 | 
			
		||||
# See https://github.com/python-lsp/python-lsp-server#configuration
 | 
			
		||||
# pylsp.configurationSources = ["flake8"]
 | 
			
		||||
pylsp.plugins.jedi_completion.include_params = true
 | 
			
		||||
 | 
			
		||||
[language.r]
 | 
			
		||||
filetypes = ["r"]
 | 
			
		||||
roots = ["DESCRIPTION", ".git", ".hg"]
 | 
			
		||||
command = "R"
 | 
			
		||||
args = ["--slave", "-e", "languageserver::run()"]
 | 
			
		||||
 | 
			
		||||
[language.racket]
 | 
			
		||||
filetypes = ["racket"]
 | 
			
		||||
roots = ["info.rkt"]
 | 
			
		||||
command = "racket"
 | 
			
		||||
args = ["-l", "racket-langserver"]
 | 
			
		||||
 | 
			
		||||
[language.reason]
 | 
			
		||||
filetypes = ["reason"]
 | 
			
		||||
roots = ["package.json", "Makefile", ".git", ".hg"]
 | 
			
		||||
command = "ocamllsp"
 | 
			
		||||
 | 
			
		||||
[language.ruby]
 | 
			
		||||
filetypes = ["ruby"]
 | 
			
		||||
roots = ["Gemfile"]
 | 
			
		||||
command = "solargraph"
 | 
			
		||||
args = ["stdio"]
 | 
			
		||||
settings_section = "_"
 | 
			
		||||
[language.ruby.settings._]
 | 
			
		||||
# See https://github.com/castwide/solargraph/blob/master/lib/solargraph/language_server/host.rb
 | 
			
		||||
# diagnostics = false
 | 
			
		||||
 | 
			
		||||
# [language.rust]
 | 
			
		||||
# filetypes = ["rust"]
 | 
			
		||||
# roots = ["Cargo.toml"]
 | 
			
		||||
# command = "sh"
 | 
			
		||||
# args = [
 | 
			
		||||
#     "-c",
 | 
			
		||||
#     """
 | 
			
		||||
#         if path=$(rustup which rls 2>/dev/null); then
 | 
			
		||||
#             "$path"
 | 
			
		||||
#         else
 | 
			
		||||
#             rls
 | 
			
		||||
#         fi
 | 
			
		||||
#     """,
 | 
			
		||||
# ]
 | 
			
		||||
# [language.rust.settings.rust]
 | 
			
		||||
# # See https://github.com/rust-lang/rls#configuration
 | 
			
		||||
# # features = []
 | 
			
		||||
 | 
			
		||||
[language.rust]
 | 
			
		||||
filetypes = ["rust"]
 | 
			
		||||
roots = ["Cargo.toml"]
 | 
			
		||||
command = "sh"
 | 
			
		||||
args = [
 | 
			
		||||
    "-c",
 | 
			
		||||
    """
 | 
			
		||||
        if path=$(rustup which rust-analyzer 2>/dev/null); then
 | 
			
		||||
            "$path"
 | 
			
		||||
        else
 | 
			
		||||
            rust-analyzer
 | 
			
		||||
        fi
 | 
			
		||||
    """,
 | 
			
		||||
]
 | 
			
		||||
settings_section = "rust-analyzer"
 | 
			
		||||
[language.rust.settings.rust-analyzer]
 | 
			
		||||
# See https://rust-analyzer.github.io/manual.html#configuration
 | 
			
		||||
hoverActions.enable = false # kak-lsp doesn't support this at the moment
 | 
			
		||||
# cargo.features = []
 | 
			
		||||
 | 
			
		||||
[language.terraform]
 | 
			
		||||
filetypes = ["terraform"]
 | 
			
		||||
roots = ["*.tf"]
 | 
			
		||||
command = "terraform-ls"
 | 
			
		||||
args = ["serve"]
 | 
			
		||||
[language.terraform.settings.terraform-ls]
 | 
			
		||||
# See https://github.com/hashicorp/terraform-ls/blob/main/docs/SETTINGS.md
 | 
			
		||||
# rootModulePaths = []
 | 
			
		||||
 | 
			
		||||
# [language.typescriptreact]
 | 
			
		||||
# filetypes = ["typescript"]
 | 
			
		||||
# roots = ["package.json", "tsconfig.json", ".git", ".hg"]
 | 
			
		||||
# command = "typescript-language-server"
 | 
			
		||||
# args = ["--stdio"]
 | 
			
		||||
# settings_section = "_"
 | 
			
		||||
# [language.typescriptreact.settings._]
 | 
			
		||||
# quotePreference = "double"
 | 
			
		||||
# typescript.format.semicolons = "insert"
 | 
			
		||||
 | 
			
		||||
[language.tsx]
 | 
			
		||||
filetypes = ["typescript"]
 | 
			
		||||
roots = ["package.json", "tsconfig.json", ".git", ".hg"]
 | 
			
		||||
command = "typescript-language-server"
 | 
			
		||||
args = ["--stdio"]
 | 
			
		||||
settings_section = "_"
 | 
			
		||||
 | 
			
		||||
# [language.typescript.settings.deno]
 | 
			
		||||
# enable = true
 | 
			
		||||
# lint = true
 | 
			
		||||
 | 
			
		||||
[language.yaml]
 | 
			
		||||
filetypes = ["yaml"]
 | 
			
		||||
roots = [".git", ".hg"]
 | 
			
		||||
command = "yaml-language-server"
 | 
			
		||||
args = ["--stdio"]
 | 
			
		||||
[language.yaml.settings]
 | 
			
		||||
# See https://github.com/redhat-developer/yaml-language-server#language-server-settings
 | 
			
		||||
# Defaults are at https://github.com/redhat-developer/yaml-language-server/blob/master/src/yamlSettings.ts
 | 
			
		||||
# yaml.format.enable = true
 | 
			
		||||
 | 
			
		||||
[language.zig]
 | 
			
		||||
filetypes = ["zig"]
 | 
			
		||||
roots = ["build.zig"]
 | 
			
		||||
command = "zls"
 | 
			
		||||
 | 
			
		||||
# Semantic tokens support
 | 
			
		||||
# See https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_semanticTokens
 | 
			
		||||
# for the default list of tokens and modifiers.
 | 
			
		||||
# However, many language servers implement their own values.
 | 
			
		||||
# Make sure to check the output of `lsp-capabilities` and each server's documentation and source code as well.
 | 
			
		||||
# Examples:
 | 
			
		||||
# - TypeScript: https://github.com/microsoft/vscode-languageserver-node/blob/main/client/src/common/semanticTokens.ts
 | 
			
		||||
# - Rust Analyzer: https://github.com/rust-analyzer/rust-analyzer/blob/master/crates/ide/src/syntax_highlighting.rs
 | 
			
		||||
[semantic_tokens]
 | 
			
		||||
faces = [
 | 
			
		||||
    {face="documentation", token="comment", modifiers=["documentation"]},
 | 
			
		||||
    {face="comment", token="comment"},
 | 
			
		||||
    {face="function", token="function"},
 | 
			
		||||
    {face="keyword", token="keyword"},
 | 
			
		||||
    {face="module", token="namespace"},
 | 
			
		||||
    {face="operator", token="operator"},
 | 
			
		||||
    {face="string", token="string"},
 | 
			
		||||
    {face="type", token="type"},
 | 
			
		||||
    {face="default+d", token="variable", modifiers=["readonly"]},
 | 
			
		||||
    {face="default+d", token="variable", modifiers=["constant"]},
 | 
			
		||||
    {face="variable", token="variable"},
 | 
			
		||||
]
 | 
			
		||||
							
								
								
									
										83
									
								
								dotfiles/kak/colors/catppuccin_frappe.kak
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								dotfiles/kak/colors/catppuccin_frappe.kak
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,83 @@
 | 
			
		||||
# Catppuccin theme for Kakoune
 | 
			
		||||
 | 
			
		||||
# Color palette
 | 
			
		||||
declare-option	str	rosewater			'rgb:f2d5cf'
 | 
			
		||||
declare-option	str	red					'rgb:e78284'
 | 
			
		||||
declare-option	str	mauve				'rgb:ca9ee6'
 | 
			
		||||
declare-option	str	maroon				'rgb:ea999c'
 | 
			
		||||
declare-option	str	pink				'rgb:f4b8e4'
 | 
			
		||||
declare-option	str	cyan				'rgb:85c1dc'
 | 
			
		||||
declare-option	str	yellow				'rgb:e5c890'
 | 
			
		||||
declare-option	str	green				'rgb:a6d189'
 | 
			
		||||
declare-option	str	white				'rgb:c6d0f5'
 | 
			
		||||
declare-option	str	blue				'rgb:8caaee'
 | 
			
		||||
declare-option	str	sky					'rgb:99d1db'
 | 
			
		||||
declare-option	str	lavender			'rgb:babbf1'
 | 
			
		||||
declare-option	str	black1				'rgb:292c3c'
 | 
			
		||||
declare-option	str	black2				'rgb:303446'
 | 
			
		||||
declare-option	str black3				'rgb:414559'
 | 
			
		||||
declare-option	str orange				'rgb:ef9f76'
 | 
			
		||||
declare-option	str teal				'rgb:81c8be'
 | 
			
		||||
declare-option	str	gray0				'rgb:626880'
 | 
			
		||||
declare-option	str	gray1				'rgb:737994'
 | 
			
		||||
declare-option	str	bright_red			%opt{red}
 | 
			
		||||
declare-option	str	bright_green		%opt{green}
 | 
			
		||||
declare-option	str	bright_yellow		%opt{yellow}
 | 
			
		||||
declare-option	str	bright_blue			%opt{blue}
 | 
			
		||||
declare-option	str	bright_cyan			%opt{cyan}
 | 
			
		||||
declare-option	str	bright_white		%opt{white}
 | 
			
		||||
declare-option	str	foreground			%opt{white}
 | 
			
		||||
declare-option	str	background			%opt{black2}
 | 
			
		||||
 | 
			
		||||
# Markup
 | 
			
		||||
set-face	global	title				"%opt{rosewater}"
 | 
			
		||||
set-face	global	header				"%opt{bright_red}"
 | 
			
		||||
set-face	global	bold				"%opt{mauve}"
 | 
			
		||||
set-face	global	italic				"%opt{lavender}"
 | 
			
		||||
set-face	global	mono				"%opt{green}"
 | 
			
		||||
set-face	global	block				"%opt{cyan}"
 | 
			
		||||
set-face	global	link				"%opt{green}"
 | 
			
		||||
set-face	global	bullet				"%opt{green}"
 | 
			
		||||
set-face	global	list				"%opt{white}"
 | 
			
		||||
 | 
			
		||||
# Builtins
 | 
			
		||||
set-face	global	Default				"%opt{white},%opt{background}"
 | 
			
		||||
set-face	global	PrimarySelection	"%opt{gray0},%opt{lavender}"
 | 
			
		||||
set-face	global	SecondarySelection	"%opt{lavender},%opt{gray0}"
 | 
			
		||||
set-face	global	PrimaryCursor		"%opt{background},%opt{rosewater}"
 | 
			
		||||
set-face	global	SecondaryCursor		"%opt{black1},%opt{teal}"
 | 
			
		||||
set-face	global	PrimaryCursorEol	"%opt{gray0},%opt{mauve}"
 | 
			
		||||
set-face	global	SecondaryCursorEol	"%opt{gray0},%opt{maroon}"
 | 
			
		||||
set-face	global	LineNumbers			"%opt{gray1},%opt{background}"
 | 
			
		||||
set-face	global	LineNumberCursor	"%opt{lavender},%opt{gray0}+b"
 | 
			
		||||
set-face	global	LineNumbersWrapped	"%opt{teal},%opt{black1}+i"
 | 
			
		||||
set-face	global	MenuForeground 		"%opt{white},%opt{gray0}+b"
 | 
			
		||||
set-face	global	MenuBackground		"%opt{white},%opt{black3}"
 | 
			
		||||
set-face	global	MenuInfo			"%opt{black1},%opt{blue}"
 | 
			
		||||
set-face	global	Information			"%opt{black1},%opt{lavender}"
 | 
			
		||||
set-face	global	Error				"%opt{red},%opt{black2}"
 | 
			
		||||
set-face	global	StatusLine			"%opt{white},%opt{black1}"
 | 
			
		||||
set-face	global	StatusLineMode		"%opt{black2},%opt{yellow}"
 | 
			
		||||
set-face	global	StatusLineInfo		"%opt{background},%opt{green}"
 | 
			
		||||
set-face	global	StatusLineValue		"%opt{orange},%opt{gray0}"
 | 
			
		||||
set-face	global	StatusCursor		"%opt{black1},%opt{lavender}"
 | 
			
		||||
set-face	global	Prompt				"%opt{green},%opt{black2}"
 | 
			
		||||
set-face	global	MatchingChar		"%opt{maroon},%opt{black2}"
 | 
			
		||||
set-face	global	Whitespace			"%opt{gray1},%opt{background}+f"
 | 
			
		||||
set-face	global	WrapMarker			Whitespace
 | 
			
		||||
set-face	global	BufferPadding		"%opt{background},%opt{background}"
 | 
			
		||||
 | 
			
		||||
# Code
 | 
			
		||||
set-face	global	value				"%opt{orange}"
 | 
			
		||||
set-face	global	type				"%opt{rosewater}"
 | 
			
		||||
set-face	global	variable			"%opt{white}"
 | 
			
		||||
set-face	global	module				"%opt{maroon}"
 | 
			
		||||
set-face	global	function			"%opt{sky}"
 | 
			
		||||
set-face	global	string				"%opt{green}"
 | 
			
		||||
set-face	global	keyword				"%opt{blue}"
 | 
			
		||||
set-face	global	operator			"%opt{blue}"
 | 
			
		||||
set-face	global	attribute			"%opt{green}"
 | 
			
		||||
set-face	global	comment				"%opt{gray1}"
 | 
			
		||||
set-face	global	documentation		comment
 | 
			
		||||
set-face	global	meta				"%opt{pink}"
 | 
			
		||||
set-face	global	builtin				"%opt{lavender}+b"
 | 
			
		||||
							
								
								
									
										83
									
								
								dotfiles/kak/colors/catppuccin_latte.kak
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								dotfiles/kak/colors/catppuccin_latte.kak
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,83 @@
 | 
			
		||||
# Catppuccin theme for Kakoune
 | 
			
		||||
 | 
			
		||||
# Color palette
 | 
			
		||||
declare-option	str	rosewater			'rgb:dc8a78'
 | 
			
		||||
declare-option	str	red					'rgb:d20f39'
 | 
			
		||||
declare-option	str	mauve				'rgb:8839ef'
 | 
			
		||||
declare-option	str	maroon				'rgb:e64553'
 | 
			
		||||
declare-option	str	pink				'rgb:ea76cb'
 | 
			
		||||
declare-option	str	cyan				'rgb:209fb5'
 | 
			
		||||
declare-option	str	yellow				'rgb:df8e1d'
 | 
			
		||||
declare-option	str	green				'rgb:40a02b'
 | 
			
		||||
declare-option	str	white				'rgb:4c4f69'
 | 
			
		||||
declare-option	str	blue				'rgb:1e66f5'
 | 
			
		||||
declare-option	str	sky					'rgb:04a5e5'
 | 
			
		||||
declare-option	str	lavender			'rgb:7287fd'
 | 
			
		||||
declare-option	str	black1				'rgb:e6e9ef'
 | 
			
		||||
declare-option	str	black2				'rgb:eff1f5'
 | 
			
		||||
declare-option	str black3				'rgb:ccd0da'
 | 
			
		||||
declare-option	str orange				'rgb:fe640b'
 | 
			
		||||
declare-option	str teal				'rgb:179299'
 | 
			
		||||
declare-option	str	gray0				'rgb:acb0be'
 | 
			
		||||
declare-option	str	gray1				'rgb:9ca0b0'
 | 
			
		||||
declare-option	str	bright_red			%opt{red}
 | 
			
		||||
declare-option	str	bright_green		%opt{green}
 | 
			
		||||
declare-option	str	bright_yellow		%opt{yellow}
 | 
			
		||||
declare-option	str	bright_blue			%opt{blue}
 | 
			
		||||
declare-option	str	bright_cyan			%opt{cyan}
 | 
			
		||||
declare-option	str	bright_white		%opt{white}
 | 
			
		||||
declare-option	str	foreground			%opt{white}
 | 
			
		||||
declare-option	str	background			%opt{black2}
 | 
			
		||||
 | 
			
		||||
# Markup
 | 
			
		||||
set-face	global	title				"%opt{rosewater}"
 | 
			
		||||
set-face	global	header				"%opt{bright_red}"
 | 
			
		||||
set-face	global	bold				"%opt{mauve}"
 | 
			
		||||
set-face	global	italic				"%opt{lavender}"
 | 
			
		||||
set-face	global	mono				"%opt{green}"
 | 
			
		||||
set-face	global	block				"%opt{cyan}"
 | 
			
		||||
set-face	global	link				"%opt{green}"
 | 
			
		||||
set-face	global	bullet				"%opt{green}"
 | 
			
		||||
set-face	global	list				"%opt{white}"
 | 
			
		||||
 | 
			
		||||
# Builtins
 | 
			
		||||
set-face	global	Default				"%opt{white},%opt{background}"
 | 
			
		||||
set-face	global	PrimarySelection	"%opt{gray0},%opt{lavender}"
 | 
			
		||||
set-face	global	SecondarySelection	"%opt{lavender},%opt{gray0}"
 | 
			
		||||
set-face	global	PrimaryCursor		"%opt{background},%opt{rosewater}"
 | 
			
		||||
set-face	global	SecondaryCursor		"%opt{black1},%opt{teal}"
 | 
			
		||||
set-face	global	PrimaryCursorEol	"%opt{gray0},%opt{mauve}"
 | 
			
		||||
set-face	global	SecondaryCursorEol	"%opt{gray0},%opt{maroon}"
 | 
			
		||||
set-face	global	LineNumbers			"%opt{gray1},%opt{background}"
 | 
			
		||||
set-face	global	LineNumberCursor	"%opt{lavender},%opt{gray0}+b"
 | 
			
		||||
set-face	global	LineNumbersWrapped	"%opt{teal},%opt{black1}+i"
 | 
			
		||||
set-face	global	MenuForeground 		"%opt{white},%opt{gray0}+b"
 | 
			
		||||
set-face	global	MenuBackground		"%opt{white},%opt{black3}"
 | 
			
		||||
set-face	global	MenuInfo			"%opt{black1},%opt{blue}"
 | 
			
		||||
set-face	global	Information			"%opt{black1},%opt{lavender}"
 | 
			
		||||
set-face	global	Error				"%opt{red},%opt{black2}"
 | 
			
		||||
set-face	global	StatusLine			"%opt{white},%opt{black1}"
 | 
			
		||||
set-face	global	StatusLineMode		"%opt{black2},%opt{yellow}"
 | 
			
		||||
set-face	global	StatusLineInfo		"%opt{background},%opt{green}"
 | 
			
		||||
set-face	global	StatusLineValue		"%opt{orange},%opt{gray0}"
 | 
			
		||||
set-face	global	StatusCursor		"%opt{black1},%opt{lavender}"
 | 
			
		||||
set-face	global	Prompt				"%opt{green},%opt{black2}"
 | 
			
		||||
set-face	global	MatchingChar		"%opt{maroon},%opt{black2}"
 | 
			
		||||
set-face	global	Whitespace			"%opt{gray1},%opt{background}+f"
 | 
			
		||||
set-face	global	WrapMarker			Whitespace
 | 
			
		||||
set-face	global	BufferPadding		"%opt{background},%opt{background}"
 | 
			
		||||
 | 
			
		||||
# Code
 | 
			
		||||
set-face	global	value				"%opt{orange}"
 | 
			
		||||
set-face	global	type				"%opt{rosewater}"
 | 
			
		||||
set-face	global	variable			"%opt{white}"
 | 
			
		||||
set-face	global	module				"%opt{maroon}"
 | 
			
		||||
set-face	global	function			"%opt{sky}"
 | 
			
		||||
set-face	global	string				"%opt{green}"
 | 
			
		||||
set-face	global	keyword				"%opt{blue}"
 | 
			
		||||
set-face	global	operator			"%opt{blue}"
 | 
			
		||||
set-face	global	attribute			"%opt{green}"
 | 
			
		||||
set-face	global	comment				"%opt{gray1}"
 | 
			
		||||
set-face	global	documentation		comment
 | 
			
		||||
set-face	global	meta				"%opt{pink}"
 | 
			
		||||
set-face	global	builtin				"%opt{lavender}+b"
 | 
			
		||||
							
								
								
									
										83
									
								
								dotfiles/kak/colors/catppuccin_macchiato.kak
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								dotfiles/kak/colors/catppuccin_macchiato.kak
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,83 @@
 | 
			
		||||
# Catppuccin theme for Kakoune
 | 
			
		||||
 | 
			
		||||
# Color palette
 | 
			
		||||
declare-option	str	rosewater			'rgb:f4dbd6'
 | 
			
		||||
declare-option	str	red					'rgb:ed8796'
 | 
			
		||||
declare-option	str	mauve				'rgb:c6a0f6'
 | 
			
		||||
declare-option	str	maroon				'rgb:ee99a0'
 | 
			
		||||
declare-option	str	pink				'rgb:f5bde6'
 | 
			
		||||
declare-option	str	cyan				'rgb:7dc4e4'
 | 
			
		||||
declare-option	str	yellow				'rgb:eed49f'
 | 
			
		||||
declare-option	str	green				'rgb:a6da95'
 | 
			
		||||
declare-option	str	white				'rgb:cad3f5'
 | 
			
		||||
declare-option	str	blue				'rgb:8aadf4'
 | 
			
		||||
declare-option	str	sky					'rgb:91d7e3'
 | 
			
		||||
declare-option	str	lavender			'rgb:b7bdf8'
 | 
			
		||||
declare-option	str	black1				'rgb:1e2030'
 | 
			
		||||
declare-option	str	black2				'rgb:24273a'
 | 
			
		||||
declare-option	str black3				'rgb:363a4f'
 | 
			
		||||
declare-option	str orange				'rgb:f5a97f'
 | 
			
		||||
declare-option	str teal				'rgb:8bd5ca'
 | 
			
		||||
declare-option	str	gray0				'rgb:5b6078'
 | 
			
		||||
declare-option	str	gray1				'rgb:6e738d'
 | 
			
		||||
declare-option	str	bright_red			%opt{red}
 | 
			
		||||
declare-option	str	bright_green		%opt{green}
 | 
			
		||||
declare-option	str	bright_yellow		%opt{yellow}
 | 
			
		||||
declare-option	str	bright_blue			%opt{blue}
 | 
			
		||||
declare-option	str	bright_cyan			%opt{cyan}
 | 
			
		||||
declare-option	str	bright_white		%opt{white}
 | 
			
		||||
declare-option	str	foreground			%opt{white}
 | 
			
		||||
declare-option	str	background			%opt{black2}
 | 
			
		||||
 | 
			
		||||
# Markup
 | 
			
		||||
set-face	global	title				"%opt{rosewater}"
 | 
			
		||||
set-face	global	header				"%opt{bright_red}"
 | 
			
		||||
set-face	global	bold				"%opt{mauve}"
 | 
			
		||||
set-face	global	italic				"%opt{lavender}"
 | 
			
		||||
set-face	global	mono				"%opt{green}"
 | 
			
		||||
set-face	global	block				"%opt{cyan}"
 | 
			
		||||
set-face	global	link				"%opt{green}"
 | 
			
		||||
set-face	global	bullet				"%opt{green}"
 | 
			
		||||
set-face	global	list				"%opt{white}"
 | 
			
		||||
 | 
			
		||||
# Builtins
 | 
			
		||||
set-face	global	Default				"%opt{white},%opt{background}"
 | 
			
		||||
set-face	global	PrimarySelection	"%opt{gray0},%opt{lavender}"
 | 
			
		||||
set-face	global	SecondarySelection	"%opt{lavender},%opt{gray0}"
 | 
			
		||||
set-face	global	PrimaryCursor		"%opt{background},%opt{rosewater}"
 | 
			
		||||
set-face	global	SecondaryCursor		"%opt{black1},%opt{teal}"
 | 
			
		||||
set-face	global	PrimaryCursorEol	"%opt{gray0},%opt{mauve}"
 | 
			
		||||
set-face	global	SecondaryCursorEol	"%opt{gray0},%opt{maroon}"
 | 
			
		||||
set-face	global	LineNumbers			"%opt{gray1},%opt{background}"
 | 
			
		||||
set-face	global	LineNumberCursor	"%opt{lavender},%opt{gray0}+b"
 | 
			
		||||
set-face	global	LineNumbersWrapped	"%opt{teal},%opt{black1}+i"
 | 
			
		||||
set-face	global	MenuForeground 		"%opt{white},%opt{gray0}+b"
 | 
			
		||||
set-face	global	MenuBackground		"%opt{white},%opt{black3}"
 | 
			
		||||
set-face	global	MenuInfo			"%opt{black1},%opt{blue}"
 | 
			
		||||
set-face	global	Information			"%opt{black1},%opt{lavender}"
 | 
			
		||||
set-face	global	Error				"%opt{red},%opt{black2}"
 | 
			
		||||
set-face	global	StatusLine			"%opt{white},%opt{black1}"
 | 
			
		||||
set-face	global	StatusLineMode		"%opt{black2},%opt{yellow}"
 | 
			
		||||
set-face	global	StatusLineInfo		"%opt{background},%opt{green}"
 | 
			
		||||
set-face	global	StatusLineValue		"%opt{orange},%opt{gray0}"
 | 
			
		||||
set-face	global	StatusCursor		"%opt{black1},%opt{lavender}"
 | 
			
		||||
set-face	global	Prompt				"%opt{green},%opt{black2}"
 | 
			
		||||
set-face	global	MatchingChar		"%opt{maroon},%opt{black2}"
 | 
			
		||||
set-face	global	Whitespace			"%opt{gray1},%opt{background}+f"
 | 
			
		||||
set-face	global	WrapMarker			Whitespace
 | 
			
		||||
set-face	global	BufferPadding		"%opt{background},%opt{background}"
 | 
			
		||||
 | 
			
		||||
# Code
 | 
			
		||||
set-face	global	value				"%opt{orange}"
 | 
			
		||||
set-face	global	type				"%opt{pink}"
 | 
			
		||||
set-face	global	variable			"%opt{white}"
 | 
			
		||||
set-face	global	module				"%opt{mauve}"
 | 
			
		||||
set-face	global	function			"%opt{sky}"
 | 
			
		||||
set-face	global	string				"%opt{green}"
 | 
			
		||||
set-face	global	keyword				"%opt{blue}"
 | 
			
		||||
set-face	global	operator			"%opt{blue}"
 | 
			
		||||
set-face	global	attribute			"%opt{green}"
 | 
			
		||||
set-face	global	comment				"%opt{gray1}"
 | 
			
		||||
set-face	global	documentation		comment
 | 
			
		||||
set-face	global	meta				"%opt{pink}"
 | 
			
		||||
set-face	global	builtin				"%opt{lavender}+b"
 | 
			
		||||
							
								
								
									
										83
									
								
								dotfiles/kak/colors/catppuccin_mocha.kak
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								dotfiles/kak/colors/catppuccin_mocha.kak
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,83 @@
 | 
			
		||||
# Catppuccin theme for Kakoune
 | 
			
		||||
 | 
			
		||||
# Color palette
 | 
			
		||||
declare-option	str	rosewater			'rgb:f5e0dc'
 | 
			
		||||
declare-option	str	red					'rgb:f38ba8'
 | 
			
		||||
declare-option	str	mauve				'rgb:cba6f7'
 | 
			
		||||
declare-option	str	maroon				'rgb:eba0ac'
 | 
			
		||||
declare-option	str	pink				'rgb:f5c2e7'
 | 
			
		||||
declare-option	str	cyan				'rgb:74c7ec'
 | 
			
		||||
declare-option	str	yellow				'rgb:f9e2af'
 | 
			
		||||
declare-option	str	green				'rgb:a6e3a1'
 | 
			
		||||
declare-option	str	white				'rgb:cdd6f4'
 | 
			
		||||
declare-option	str	blue				'rgb:89b4fa'
 | 
			
		||||
declare-option	str	sky					'rgb:89dceb'
 | 
			
		||||
declare-option	str	lavender			'rgb:b4befe'
 | 
			
		||||
declare-option	str	black1				'rgb:181825'
 | 
			
		||||
declare-option	str	black2				'rgb:1e1e2e'
 | 
			
		||||
declare-option	str black3				'rgb:313244'
 | 
			
		||||
declare-option	str orange				'rgb:fab387'
 | 
			
		||||
declare-option	str teal				'rgb:94e2d5'
 | 
			
		||||
declare-option	str	gray0				'rgb:585b70'
 | 
			
		||||
declare-option	str	gray1				'rgb:6c7086'
 | 
			
		||||
declare-option	str	bright_red			%opt{red}
 | 
			
		||||
declare-option	str	bright_green		%opt{green}
 | 
			
		||||
declare-option	str	bright_yellow		%opt{yellow}
 | 
			
		||||
declare-option	str	bright_blue			%opt{blue}
 | 
			
		||||
declare-option	str	bright_cyan			%opt{cyan}
 | 
			
		||||
declare-option	str	bright_white		%opt{white}
 | 
			
		||||
declare-option	str	foreground			%opt{white}
 | 
			
		||||
declare-option	str	background			%opt{black2}
 | 
			
		||||
 | 
			
		||||
# Markup
 | 
			
		||||
set-face	global	title				"%opt{rosewater}"
 | 
			
		||||
set-face	global	header				"%opt{bright_red}"
 | 
			
		||||
set-face	global	bold				"%opt{mauve}"
 | 
			
		||||
set-face	global	italic				"%opt{lavender}"
 | 
			
		||||
set-face	global	mono				"%opt{green}"
 | 
			
		||||
set-face	global	block				"%opt{cyan}"
 | 
			
		||||
set-face	global	link				"%opt{green}"
 | 
			
		||||
set-face	global	bullet				"%opt{green}"
 | 
			
		||||
set-face	global	list				"%opt{white}"
 | 
			
		||||
 | 
			
		||||
# Builtins
 | 
			
		||||
set-face	global	Default				"%opt{white},%opt{background}"
 | 
			
		||||
set-face	global	PrimarySelection	"%opt{gray0},%opt{lavender}"
 | 
			
		||||
set-face	global	SecondarySelection	"%opt{lavender},%opt{gray0}"
 | 
			
		||||
set-face	global	PrimaryCursor		"%opt{background},%opt{rosewater}"
 | 
			
		||||
set-face	global	SecondaryCursor		"%opt{black1},%opt{teal}"
 | 
			
		||||
set-face	global	PrimaryCursorEol	"%opt{gray0},%opt{mauve}"
 | 
			
		||||
set-face	global	SecondaryCursorEol	"%opt{gray0},%opt{maroon}"
 | 
			
		||||
set-face	global	LineNumbers			"%opt{gray1},%opt{background}"
 | 
			
		||||
set-face	global	LineNumberCursor	"%opt{lavender},%opt{gray0}+b"
 | 
			
		||||
set-face	global	LineNumbersWrapped	"%opt{teal},%opt{black1}+i"
 | 
			
		||||
set-face	global	MenuForeground 		"%opt{white},%opt{gray0}+b"
 | 
			
		||||
set-face	global	MenuBackground		"%opt{white},%opt{black3}"
 | 
			
		||||
set-face	global	MenuInfo			"%opt{black1},%opt{blue}"
 | 
			
		||||
set-face	global	Information			"%opt{black1},%opt{lavender}"
 | 
			
		||||
set-face	global	Error				"%opt{red},%opt{black2}"
 | 
			
		||||
set-face	global	StatusLine			"%opt{white},%opt{black1}"
 | 
			
		||||
set-face	global	StatusLineMode		"%opt{black2},%opt{yellow}"
 | 
			
		||||
set-face	global	StatusLineInfo		"%opt{background},%opt{green}"
 | 
			
		||||
set-face	global	StatusLineValue		"%opt{orange},%opt{gray0}"
 | 
			
		||||
set-face	global	StatusCursor		"%opt{black1},%opt{lavender}"
 | 
			
		||||
set-face	global	Prompt				"%opt{green},%opt{black2}"
 | 
			
		||||
set-face	global	MatchingChar		"%opt{maroon},%opt{black2}"
 | 
			
		||||
set-face	global	Whitespace			"%opt{gray1},%opt{background}+f"
 | 
			
		||||
set-face	global	WrapMarker			Whitespace
 | 
			
		||||
set-face	global	BufferPadding		"%opt{background},%opt{background}"
 | 
			
		||||
 | 
			
		||||
# Code
 | 
			
		||||
set-face	global	value				"%opt{orange}"
 | 
			
		||||
set-face	global	type				"%opt{rosewater}"
 | 
			
		||||
set-face	global	variable			"%opt{white}"
 | 
			
		||||
set-face	global	module				"%opt{maroon}"
 | 
			
		||||
set-face	global	function			"%opt{sky}"
 | 
			
		||||
set-face	global	string				"%opt{green}"
 | 
			
		||||
set-face	global	keyword				"%opt{blue}"
 | 
			
		||||
set-face	global	operator			"%opt{blue}"
 | 
			
		||||
set-face	global	attribute			"%opt{green}"
 | 
			
		||||
set-face	global	comment				"%opt{gray1}"
 | 
			
		||||
set-face	global	documentation		comment
 | 
			
		||||
set-face	global	meta				"%opt{pink}"
 | 
			
		||||
set-face	global	builtin				"%opt{lavender}+b"
 | 
			
		||||
							
								
								
									
										252
									
								
								dotfiles/kak/kakrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										252
									
								
								dotfiles/kak/kakrc
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,252 @@
 | 
			
		||||
# ------------------
 | 
			
		||||
# Plugin Setup
 | 
			
		||||
# ------------------
 | 
			
		||||
 | 
			
		||||
# IMORTANT NOTE:
 | 
			
		||||
# I needed to open kakoune and type ':plug-install' to actually
 | 
			
		||||
# install the plugins listed in this file. I did not see this 
 | 
			
		||||
# mentioned in wikis or anything, so make sure to do this to
 | 
			
		||||
# avoid searching github wikis and reddit needlessly.
 | 
			
		||||
 | 
			
		||||
# Creates the /plugins folder if it doesnt exist each startup
 | 
			
		||||
evaluate-commands %sh{
 | 
			
		||||
    plugins="$kak_config/plugins"
 | 
			
		||||
    mkdir -p "$plugins"
 | 
			
		||||
    [ ! -e "$plugins/plug.kak" ] && \
 | 
			
		||||
        git clone -q https://github.com/andreyorst/plug.kak.git "$plugins/plug.kak"
 | 
			
		||||
    printf "%s\n" "source '$plugins/plug.kak/rc/plug.kak'"
 | 
			
		||||
}
 | 
			
		||||
plug "andreyorst/plug.kak" noload
 | 
			
		||||
 | 
			
		||||
# ------------------
 | 
			
		||||
# Editor Settings
 | 
			
		||||
# ------------------
 | 
			
		||||
 | 
			
		||||
# Disables startup message showing
 | 
			
		||||
set-option global startup_info_version 30000000
 | 
			
		||||
 | 
			
		||||
set-option global tabstop 4
 | 
			
		||||
set-option global indentwidth 4
 | 
			
		||||
set-option global scrolloff 5,3
 | 
			
		||||
declare-option str kakrc_path "~/.config/kak/kakrc"
 | 
			
		||||
declare-option str sway_conf_path "~/.config/sway/config.d/default"
 | 
			
		||||
declare-option str shell_config "~/.zshrc"
 | 
			
		||||
 | 
			
		||||
# plug "catppuccin/kakoune" theme config %{
 | 
			
		||||
#     colorscheme catppuccin_macchiato
 | 
			
		||||
# }
 | 
			
		||||
colorscheme catppuccin_macchiato
 | 
			
		||||
# relative line numbers
 | 
			
		||||
hook global BufCreate .* %{
 | 
			
		||||
    add-highlighter buffer/ number-lines -hlcursor
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Git Gutters
 | 
			
		||||
hook global WinCreate .* %{ evaluate-commands %sh{
 | 
			
		||||
  if [ $kak_buffile != $kak_bufname ] && git ls-files --error-unmatch "$kak_buffile" > /dev/null 2>&1; then
 | 
			
		||||
    echo "git show-diff"
 | 
			
		||||
  fi
 | 
			
		||||
}}
 | 
			
		||||
 | 
			
		||||
# Write on unfocus
 | 
			
		||||
hook global FocusOut .* %{ try %{
 | 
			
		||||
    write
 | 
			
		||||
}}
 | 
			
		||||
 | 
			
		||||
hook global BufWritePost .* %{ evaluate-commands 'git update-diff' }
 | 
			
		||||
hook global BufReload .* %{ evaluate-commands 'git update-diff' }
 | 
			
		||||
 | 
			
		||||
# Add default,red and bold style to these regex matches
 | 
			
		||||
add-highlighter global/ regex \b(TODO|FIXME|XXX|NOTE)\b 0:default,red+rb
 | 
			
		||||
 | 
			
		||||
# ------------------
 | 
			
		||||
# Key bindings
 | 
			
		||||
# ------------------
 | 
			
		||||
 | 
			
		||||
# Remap hjkl navigation to colemak-dh layout
 | 
			
		||||
map global normal n h
 | 
			
		||||
map global normal e k
 | 
			
		||||
map global normal i j
 | 
			
		||||
map global normal o l
 | 
			
		||||
 | 
			
		||||
map global normal N H
 | 
			
		||||
map global normal E K
 | 
			
		||||
map global normal I J
 | 
			
		||||
map global normal O L
 | 
			
		||||
 | 
			
		||||
# Remap insert command
 | 
			
		||||
map global normal h i
 | 
			
		||||
 | 
			
		||||
# Insert line above or below
 | 
			
		||||
map global normal l o
 | 
			
		||||
map global normal L O
 | 
			
		||||
 | 
			
		||||
# No alt, remap
 | 
			
		||||
map global normal <c-f> <a-f>  -docstring 'same as [f] but in the other direction'
 | 
			
		||||
map global normal <c-t> <a-t>  -docstring 'same as [t] but in the other direction'
 | 
			
		||||
map global normal <c-n> <a-h>  -docstring 'select to beginning of line'
 | 
			
		||||
map global normal <c-o> <a-l>  -docstring 'select to end of line'
 | 
			
		||||
map global normal <c-s> <a-s>  -docstring 'split selections on line boundaries'
 | 
			
		||||
map global normal <c-S> <a-S>  -docstring 'select first and last character of each selection'
 | 
			
		||||
map global normal '<c-;>' '<a-;>'  -docstring 'flip direction of each selection'
 | 
			
		||||
map global normal <c-:> <a-:>  -docstring 'ensure selections are in forward direction (cursor then anchor)'
 | 
			
		||||
map global normal <c-,> <a-,>  -docstring 'clear the main selection'
 | 
			
		||||
 | 
			
		||||
# Scrolling remap
 | 
			
		||||
map global normal <c-e> <pageup> -docstring 'Scroll screen up'
 | 
			
		||||
map global normal <c-i> <pagedown> -docstring 'Scroll screen down'
 | 
			
		||||
 | 
			
		||||
map global normal <c-/> ':comment-line<ret>' -docstring 'comment selected lines'
 | 
			
		||||
 | 
			
		||||
# Ctrl-s to save
 | 
			
		||||
map global normal <c-s> ':w<ret>' -docstring 'write buffer'
 | 
			
		||||
# Ctrl-x to save and exit
 | 
			
		||||
map global normal <c-x> ':w<ret>:db<ret>' -docstring 'write close buffer'
 | 
			
		||||
 | 
			
		||||
# Colemak goto remappings
 | 
			
		||||
map global goto n h -docstring 'line start'
 | 
			
		||||
map global goto o l -docstring 'line end'
 | 
			
		||||
map global goto e k -docstring 'buffer top'
 | 
			
		||||
map global goto i j -docstring 'buffer bottom'
 | 
			
		||||
 | 
			
		||||
map global goto h n
 | 
			
		||||
map global goto l o
 | 
			
		||||
map global goto k e
 | 
			
		||||
map global goto j i
 | 
			
		||||
 | 
			
		||||
# Remap view keys
 | 
			
		||||
map global view n h
 | 
			
		||||
map global view o l
 | 
			
		||||
map global view e k
 | 
			
		||||
map global view i j
 | 
			
		||||
 | 
			
		||||
map global normal ( ': buffer-previous<ret>' -docstring 'prev buffer'
 | 
			
		||||
map global normal ) ': buffer-next<ret>' -docstring 'next buffer'
 | 
			
		||||
 | 
			
		||||
# map global normal [ ( -docstring 'rotate main selection'
 | 
			
		||||
    
 | 
			
		||||
# map global normal ] ) -docstring 'rotate main selection backwards'
 | 
			
		||||
# Make x select <param> lines up and down
 | 
			
		||||
def -params 1 extend-line-down %{
 | 
			
		||||
  exec "<a-:>%arg{1}J"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
def -params 1 extend-line-up %{
 | 
			
		||||
  exec "<a-:><a-;>%arg{1}K<a-;>"
 | 
			
		||||
  try %{
 | 
			
		||||
    exec -draft ';<a-K>\n<ret>'
 | 
			
		||||
    exec X
 | 
			
		||||
  }
 | 
			
		||||
  exec '<a-;><a-X>'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
map global normal x ':extend-line-down %val{count}<ret>'
 | 
			
		||||
map global normal X ':extend-line-up %val{count}<ret>'
 | 
			
		||||
 | 
			
		||||
map global normal k n -docstring 'next result'
 | 
			
		||||
map global normal K N -docstring 'next result add selection'
 | 
			
		||||
 | 
			
		||||
map global normal <a-k> <c-n> -docstring 'prev result'
 | 
			
		||||
map global normal <a-K> <c-N> -docstring 'prev result add selection'
 | 
			
		||||
 | 
			
		||||
map global insert <down> <c-n> -docstring 'next completion'
 | 
			
		||||
map global insert <up> <c-p> -docstring 'prev completion'
 | 
			
		||||
 | 
			
		||||
# User Mode Bindings
 | 
			
		||||
# Accessed with <space>
 | 
			
		||||
declare-user-mode git
 | 
			
		||||
map global user g ': enter-user-mode git<ret>' -docstring "Git mode"
 | 
			
		||||
map global user p '<a-!>wl-paste -n<ret>' -docstring 'paste from system clip board'
 | 
			
		||||
hook global RegisterModified '"' %{ nop %sh{
 | 
			
		||||
  printf %s "$kak_main_reg_dquote" | wl-copy > /dev/null 2>&1 &
 | 
			
		||||
}}
 | 
			
		||||
 | 
			
		||||
# Open kakrc, double quotes needed to ecsape the kakrc_path option
 | 
			
		||||
map global user o ":edit %opt{kakrc_path}<ret>" -docstring 'open kakrc'
 | 
			
		||||
map global user z ":edit %opt{shell_config}<ret>" -docstring 'open shell config'
 | 
			
		||||
map global user S ":edit %opt{sway_conf_path}<ret>" -docstring 'open wm config'
 | 
			
		||||
# Git Mode Bindings
 | 
			
		||||
map global git d '<esc>:git show-diff<ret>' -docstring "Show diff"
 | 
			
		||||
 | 
			
		||||
# -----------------
 | 
			
		||||
# LSP Configuration
 | 
			
		||||
# -----------------
 | 
			
		||||
 | 
			
		||||
plug "kak-lsp/kak-lsp" do %{
 | 
			
		||||
  cargo install --locked --force --path .
 | 
			
		||||
  mkdir -p ~/.config/kak-lsp
 | 
			
		||||
  cp -n kak-lsp.toml ~/.config/kak-lsp/
 | 
			
		||||
} config %{
 | 
			
		||||
 | 
			
		||||
  # enable inlay hints
 | 
			
		||||
  lsp-inlay-hints-enable global
 | 
			
		||||
  lsp-inlay-diagnostics-enable global
 | 
			
		||||
 | 
			
		||||
  # set global lsp_diagnostic_line_error_sign '║'
 | 
			
		||||
  # set global lsp_diagnostic_line_warning_sign '┊'
 | 
			
		||||
 | 
			
		||||
  define-command lsp-restart -docstring 'restart lsp server' %{ lsp-stop; lsp-start }
 | 
			
		||||
 | 
			
		||||
  map global insert <tab> '<a-;>:try lsp-snippets-select-next-placeholders catch %{ execute-keys -with-hooks <lt>tab> }<ret>' -docstring 'Select next snippet placeholder'
 | 
			
		||||
  map global object a '<a-semicolon>lsp-object<ret>' -docstring 'LSP any symbol'
 | 
			
		||||
  map global object <a-a> '<a-semicolon>lsp-object<ret>' -docstring 'LSP any symbol'
 | 
			
		||||
  map global object e '<a-semicolon>lsp-object Function Method<ret>' -docstring 'LSP function or method'
 | 
			
		||||
  map global object k '<a-semicolon>lsp-object Class Interface Struct<ret>' -docstring 'LSP class interface or struct'
 | 
			
		||||
  map global object d '<a-semicolon>lsp-diagnostic-object --include-warnings<ret>' -docstring 'LSP errors and warnings'
 | 
			
		||||
  map global object D '<a-semicolon>lsp-diagnostic-object<ret>' -docstring 'LSP errors'
 | 
			
		||||
 | 
			
		||||
  # load lsp for supported filetypes
 | 
			
		||||
  set-option global lsp_cmd "kak-lsp -s %val{session} -vvv --log /tmp/kak-lsp.log"
 | 
			
		||||
  hook global WinSetOption filetype=(rust|python|go|javascript|typescript|c|cpp|zig|dart|ruby) %{
 | 
			
		||||
    lsp-enable-window
 | 
			
		||||
    # lsp-auto-hover-enable
 | 
			
		||||
    map global user l ': enter-user-mode lsp<ret>' -docstring 'lsp mode'
 | 
			
		||||
    map global user h ': enter-user-mode lsp<ret>h' -docstring 'lsp help'
 | 
			
		||||
    map global user a ': enter-user-mode lsp<ret>a' -docstring 'lsp code action'
 | 
			
		||||
    set-option global lsp_hover_anchor false
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  hook global KakEnd .* lsp-exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# -----------------
 | 
			
		||||
# Other Plugins
 | 
			
		||||
# -----------------
 | 
			
		||||
 | 
			
		||||
map global goto f '<esc>:prompt -shell-script-candidates %{ fd --type f --hidden } file: %{ edit %val{text} }<ret>' -docstring "file"
 | 
			
		||||
map global goto b '<esc>:prompt -buffer-completion buffer: %{ buffer %val{text} }<ret>' -docstring "buffer"
 | 
			
		||||
 | 
			
		||||
# Fzf Plugin 
 | 
			
		||||
plug "andreyorst/fzf.kak" config %{
 | 
			
		||||
    # map global user f ':fzf-mode<ret>v' -docstring 'fzf file in project'
 | 
			
		||||
    map global user b ':fzf-mode<ret>b' -docstring 'fzf current buffers'
 | 
			
		||||
 | 
			
		||||
    map global user / ':fzf-mode<ret>g' -docstring 'fzf search in project'
 | 
			
		||||
 | 
			
		||||
    # def fzf_file %{
 | 
			
		||||
    #     evaluate-commands %sh{
 | 
			
		||||
    #        printf "%s\n" ":fzf-mode<ret><esc>:fzf -items-cmd fd<ret>"
 | 
			
		||||
    #    }
 | 
			
		||||
    # }
 | 
			
		||||
 | 
			
		||||
# Change FZF colors
 | 
			
		||||
# FZF_DEFAULT_OPTS=" \
 | 
			
		||||
# --color=bg+:#313244,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8 \
 | 
			
		||||
# --color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc \
 | 
			
		||||
# --color=marker:#f5e0dc,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
plug "alexherbo2/auto-pairs.kak" %{
 | 
			
		||||
    enable-auto-pairs
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
plug "https://github.com/h-youhei/kakoune-surround"
 | 
			
		||||
 | 
			
		||||
map global normal <c-m> ':surround<ret>'
 | 
			
		||||
 | 
			
		||||
# Custom scripts
 | 
			
		||||
source "~/.config/kak/rc/fzf_git.kak"
 | 
			
		||||
							
								
								
									
										60
									
								
								dotfiles/kak/rc/fzf_git.kak
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								dotfiles/kak/rc/fzf_git.kak
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,60 @@
 | 
			
		||||
 | 
			
		||||
define-command fzzf -params .. %{ evaluate-commands %sh{
 | 
			
		||||
 | 
			
		||||
    while [ $# -gt 0 ]; do
 | 
			
		||||
        case $1 in
 | 
			
		||||
            (-items-cmd)    shift; items_cmd="$1"  ;;
 | 
			
		||||
        esac
 | 
			
		||||
        shift
 | 
			
		||||
    done
 | 
			
		||||
 | 
			
		||||
    # fzf_tmp=$(mktemp -d "${TMPDIR:-/tmp}"/fzfgit.kak.XXXXXX)
 | 
			
		||||
    # fzfcmd="${fzf_tmp}/fzfcmd"
 | 
			
		||||
    # result="${fzf_tmp}/result"
 | 
			
		||||
 | 
			
		||||
    # (
 | 
			
		||||
    #     shell_path="$(command -v sh)"
 | 
			
		||||
    #     if [ -n "${shell_path}" ]; then
 | 
			
		||||
    #         # portable shebang
 | 
			
		||||
    #         printf "%s\n" "#!${shell_path}"
 | 
			
		||||
    #         # set SHELL because fzf preview uses it
 | 
			
		||||
    #         printf "%s\n" "SHELL=${shell_path}"
 | 
			
		||||
    #     fi
 | 
			
		||||
    #     # compose entire fzf command with all args into single file which will be executed later
 | 
			
		||||
    #     # printf "%s\n" "export FZF_DEFAULT_OPTS=\"${kak_opt_fzf_default_opts:-}\""
 | 
			
		||||
    #     printf "%s\n" "cd \"${PWD}\" && $items_cmd | fzf > $result"
 | 
			
		||||
    #     printf "%s\n" "evaluate-commands -client ${kak_client} edit -existing $file" | kak -p "${kak_session}"
 | 
			
		||||
    #     printf "%s\n" "rm ${fzfcmd}"
 | 
			
		||||
    #     printf "%s\n" "fg"
 | 
			
		||||
    # ) >> "${fzfcmd}"
 | 
			
		||||
    # chmod 755 "${fzfcmd}"
 | 
			
		||||
 | 
			
		||||
    kill -TSTP $kak_client_pid
 | 
			
		||||
    cd `pwd` && $items_cmd | \
 | 
			
		||||
    fzf | \
 | 
			
		||||
    xargs printf "evaluate-commands -client ${kak_client} edit -existing %s\n" | \
 | 
			
		||||
    kak -p
 | 
			
		||||
    fg
 | 
			
		||||
 | 
			
		||||
    # cmd="terminal $fzfcmd"
 | 
			
		||||
 | 
			
		||||
    # Tells kakoune to open a terminal and run $fzfcmd
 | 
			
		||||
    # printf "%s\n" "$fzfcmd"
 | 
			
		||||
 | 
			
		||||
    # (   while [ -e "${fzfcmd}" ]; do sleep 0.1; done
 | 
			
		||||
    #     # printf "%s\n" "evaluate-commands -client ${kak_client} edit -existing ~/out.txt" | kak -p "${kak_session}"
 | 
			
		||||
    #     if [ -s "${result}" ]; then
 | 
			
		||||
    #         file=$(cat $result)
 | 
			
		||||
    #         printf "%s\n" "evaluate-commands -client ${kak_client} edit -existing $file" | kak -p "${kak_session}"
 | 
			
		||||
 | 
			
		||||
    #     fi
 | 
			
		||||
    #     rm -rf $fzf_temp
 | 
			
		||||
    # ) > /dev/null 2>&1 < /dev/null &
 | 
			
		||||
 | 
			
		||||
    # Bring kakoune back into the foreground
 | 
			
		||||
}}
 | 
			
		||||
 | 
			
		||||
# define-command fzf-project %{ fzzf -items-cmd 'fd -tfile' }
 | 
			
		||||
 | 
			
		||||
# map global user f ':fzf-project<ret>' -docstring 'fzf current project'
 | 
			
		||||
 | 
			
		||||
@ -17,5 +17,5 @@ QuietSuccess=true
 | 
			
		||||
[PasswordGenerator]
 | 
			
		||||
AdditionalChars=
 | 
			
		||||
ExcludedChars=
 | 
			
		||||
Length=20
 | 
			
		||||
Length=25
 | 
			
		||||
SpecialChars=false
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										23
									
								
								dotfiles/mako/config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								dotfiles/mako/config
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,23 @@
 | 
			
		||||
font=UbuntuMono 12.5
 | 
			
		||||
 | 
			
		||||
background-color=#404552
 | 
			
		||||
text-color=#e5e9f0
 | 
			
		||||
width=315
 | 
			
		||||
height=200
 | 
			
		||||
padding=10
 | 
			
		||||
margin=10
 | 
			
		||||
progress-color=over #eceff480
 | 
			
		||||
icon-path=/usr/share/icons/Arc-X-D
 | 
			
		||||
max-icon-size=70
 | 
			
		||||
layer=overlay
 | 
			
		||||
 | 
			
		||||
border-size=5
 | 
			
		||||
border-radius=0
 | 
			
		||||
border-color=#5294e2
 | 
			
		||||
 | 
			
		||||
default-timeout=5000
 | 
			
		||||
 | 
			
		||||
[urgency=high]
 | 
			
		||||
 | 
			
		||||
ignore-timeout=1
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
entries="Logout Suspend Reboot Shutdown"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										63
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										63
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							@ -1,43 +1,5 @@
 | 
			
		||||
{
 | 
			
		||||
  "nodes": {
 | 
			
		||||
    "firefox-addons": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "flake-utils": "flake-utils",
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "nixpkgs"
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "dir": "pkgs/firefox-addons",
 | 
			
		||||
        "lastModified": 1702612985,
 | 
			
		||||
        "narHash": "sha256-dnlw/lHJO2Fk/jUHzkz4dYKHF4nQxmHps9Jx8zldoo4=",
 | 
			
		||||
        "owner": "rycee",
 | 
			
		||||
        "repo": "nur-expressions",
 | 
			
		||||
        "rev": "ae18cb76153e8dda888a313daac932ba358002ae",
 | 
			
		||||
        "type": "gitlab"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "dir": "pkgs/firefox-addons",
 | 
			
		||||
        "owner": "rycee",
 | 
			
		||||
        "repo": "nur-expressions",
 | 
			
		||||
        "type": "gitlab"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "flake-utils": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1629284811,
 | 
			
		||||
        "narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=",
 | 
			
		||||
        "owner": "numtide",
 | 
			
		||||
        "repo": "flake-utils",
 | 
			
		||||
        "rev": "c5d161cc0af116a2e17f54316f0bf43f0819785c",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "numtide",
 | 
			
		||||
        "repo": "flake-utils",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "home-manager": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
@ -45,11 +7,11 @@
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1702538064,
 | 
			
		||||
        "narHash": "sha256-At5GwJPu2tzvS9dllhBoZmqK6lkkh/sOp2YefWRlaL8=",
 | 
			
		||||
        "lastModified": 1702735279,
 | 
			
		||||
        "narHash": "sha256-SztEzDOE/6bDNnWWvnRbSHPVrgewLwdSei1sxoZFejM=",
 | 
			
		||||
        "owner": "nix-community",
 | 
			
		||||
        "repo": "home-manager",
 | 
			
		||||
        "rev": "0e2e443ff24f9d75925e91b89d1da44b863734af",
 | 
			
		||||
        "rev": "e9b9ecef4295a835ab073814f100498716b05a96",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
@ -90,12 +52,27 @@
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nur": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1702770334,
 | 
			
		||||
        "narHash": "sha256-MVILxIF9ZVIk0f9w3yYZpy8auwxgey0MFzdoIFFvQNU=",
 | 
			
		||||
        "owner": "nix-community",
 | 
			
		||||
        "repo": "NUR",
 | 
			
		||||
        "rev": "1d37444620523278aa163bb9e30104f5d1152061",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "nix-community",
 | 
			
		||||
        "repo": "NUR",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "root": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "firefox-addons": "firefox-addons",
 | 
			
		||||
        "home-manager": "home-manager",
 | 
			
		||||
        "nixpkgs": "nixpkgs",
 | 
			
		||||
        "nixpkgs-stable": "nixpkgs-stable"
 | 
			
		||||
        "nixpkgs-stable": "nixpkgs-stable",
 | 
			
		||||
        "nur": "nur"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										13
									
								
								flake.nix
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								flake.nix
									
									
									
									
									
								
							@ -6,18 +6,20 @@
 | 
			
		||||
 | 
			
		||||
    nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-23.11";
 | 
			
		||||
 | 
			
		||||
    nur.url = "github:nix-community/NUR";
 | 
			
		||||
 | 
			
		||||
    home-manager = {
 | 
			
		||||
        url = "github:nix-community/home-manager";
 | 
			
		||||
        inputs.nixpkgs.follows = "nixpkgs";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    firefox-addons = {
 | 
			
		||||
        url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
 | 
			
		||||
        inputs.nixpkgs.follows = "nixpkgs";
 | 
			
		||||
    };
 | 
			
		||||
    # firefox-addons = {
 | 
			
		||||
    #     url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
 | 
			
		||||
    #     inputs.nixpkgs.follows = "nixpkgs";
 | 
			
		||||
    # };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  outputs = { self, nixpkgs, nixpkgs-stable, home-manager, ... } @ inputs:
 | 
			
		||||
  outputs = { self, nixpkgs, nixpkgs-stable, nur, home-manager, ... } @ inputs:
 | 
			
		||||
  let
 | 
			
		||||
    inherit (self) outputs;
 | 
			
		||||
    system = "x86_64-linux";
 | 
			
		||||
@ -37,6 +39,7 @@
 | 
			
		||||
      nixServer = nixpkgs.lib.nixosSystem {
 | 
			
		||||
        specialArgs = { inherit inputs; };
 | 
			
		||||
        modules = [
 | 
			
		||||
           # nixpkgs.overlays = [ nur.overlay ];
 | 
			
		||||
          ./nixos/server_configuration.nix
 | 
			
		||||
          inputs.home-manager.nixosModules.default
 | 
			
		||||
        ];
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										63
									
								
								modules/apps/firefox/firefox.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								modules/apps/firefox/firefox.nix
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,63 @@
 | 
			
		||||
{lib, config, pkgs, inputs, ...}:
 | 
			
		||||
let
 | 
			
		||||
  cfg = config.firefoxApp;
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
    # imports = [
 | 
			
		||||
    #     inputs.nur.hmModules.nur
 | 
			
		||||
    # ];
 | 
			
		||||
 | 
			
		||||
    options.firefoxApp = {
 | 
			
		||||
        enable = lib.mkEnableOption "enable firefox browser";
 | 
			
		||||
    };
 | 
			
		||||
    config = lib.mkIf cfg.enable {
 | 
			
		||||
        programs.firefox = {
 | 
			
		||||
            enable = true;
 | 
			
		||||
            profiles = {
 | 
			
		||||
                default = {
 | 
			
		||||
                    id = 0;
 | 
			
		||||
                    name = "default";
 | 
			
		||||
                    isDefault = true;
 | 
			
		||||
                    extensions = with pkgs; [
 | 
			
		||||
                        nur.repos.rycee.firefox-addons.darkreader
 | 
			
		||||
                        nur.repos.rycee.firefox-addons.keepassxc-browser
 | 
			
		||||
                        nur.repos.crazazy.firefox-addons.ublock-origin
 | 
			
		||||
                    ];
 | 
			
		||||
                    search = {
 | 
			
		||||
                        # Replace default firefox search engine config with this one
 | 
			
		||||
                        force = true;
 | 
			
		||||
                        default = "Startpage";
 | 
			
		||||
                        engines = {
 | 
			
		||||
                            "Startpage" = {
 | 
			
		||||
                                urls = [{
 | 
			
		||||
                                    template = "https://www.startpage.com/sp/search?query={searchTerms}";
 | 
			
		||||
                                }];
 | 
			
		||||
                            };
 | 
			
		||||
                        };
 | 
			
		||||
                    };
 | 
			
		||||
                    settings = {
 | 
			
		||||
                       "browser.startup.blankWindow" = true;
 | 
			
		||||
                       "browser.startup.homepage" = "about:blank";
 | 
			
		||||
                       "browser.search.region" = "US";
 | 
			
		||||
                       "browser.search.isUS" = true;
 | 
			
		||||
                       "distribution.searchplugins.defaultLocale" = "en-US";
 | 
			
		||||
                       "general.useragent.locale" = "en-US";
 | 
			
		||||
                       "extensions.activeThemeID" = "{831b8843-7251-4306-9521-e688f18b4aeb}";
 | 
			
		||||
                       "privacy.trackingprotection.enable" = true;
 | 
			
		||||
                       "privacy.trackingprotection.emailtracking.enable" = true;
 | 
			
		||||
                       "privacy.trackingprotection.socialtracking.enable" = true;
 | 
			
		||||
                       "privacy.clearOnShutdown.cookies" = true;
 | 
			
		||||
                       "browser.safebrowsing.passwords.enabled" = false;
 | 
			
		||||
                       "browser.migrate.interactions.passwords" = false;
 | 
			
		||||
                       "pref.privacy.disable_button.view_passwords" = false;
 | 
			
		||||
                        # "browser.bookmarks.showMobileBookmarks" = true;
 | 
			
		||||
                       # "browser.newtabpage.pinned" = [{
 | 
			
		||||
                       #   title = "NixOS";
 | 
			
		||||
                       #   url = "https://nixos.org";
 | 
			
		||||
                       # }];
 | 
			
		||||
                   };
 | 
			
		||||
                };
 | 
			
		||||
            };
 | 
			
		||||
        };
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
@ -4,8 +4,15 @@
 | 
			
		||||
  # manage.
 | 
			
		||||
  #
 | 
			
		||||
 | 
			
		||||
  # nixpkgs.overlays = [
 | 
			
		||||
  #   inputs.nur.overlay
 | 
			
		||||
  # ];
 | 
			
		||||
 | 
			
		||||
  # nixpkgs.config.allowUnfree = true;
 | 
			
		||||
  # inputs.nixpkgs-stable.config.allowUnfree = true;
 | 
			
		||||
  imports = [
 | 
			
		||||
      ../apps/firefox/firefox.nix
 | 
			
		||||
  ];
 | 
			
		||||
  
 | 
			
		||||
  home.username = userName;
 | 
			
		||||
  home.homeDirectory = "/home/${userName}";
 | 
			
		||||
@ -16,29 +23,20 @@
 | 
			
		||||
 | 
			
		||||
  # The home.packages option allows you to install Nix packages into your
 | 
			
		||||
  # environment.
 | 
			
		||||
  firefoxApp.enable = true;
 | 
			
		||||
  fonts.fontconfig.enable = true;
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    bat
 | 
			
		||||
    inputs.nixpkgs-stable.legacyPackages.x86_64-linux.corectrl
 | 
			
		||||
    fd
 | 
			
		||||
    firefox
 | 
			
		||||
    foot
 | 
			
		||||
    fzf
 | 
			
		||||
    htop
 | 
			
		||||
    kakoune
 | 
			
		||||
    # nur.repos.crazazy.js.eslint
 | 
			
		||||
    # inputs.nixpkgs-stable.legacyPackages.x86_64-linux.corectrl
 | 
			
		||||
    # kakoune
 | 
			
		||||
    keepassxc
 | 
			
		||||
    libnotify
 | 
			
		||||
    mako
 | 
			
		||||
    networkmanagerapplet
 | 
			
		||||
    obs-studio
 | 
			
		||||
    signal-desktop
 | 
			
		||||
    # steam
 | 
			
		||||
    waybar
 | 
			
		||||
    wofi
 | 
			
		||||
    xfce.thunar
 | 
			
		||||
    # Install fonts
 | 
			
		||||
    (nerdfonts.override { fonts = [ "Hermit" "Overpass" ]; })
 | 
			
		||||
    overpass
 | 
			
		||||
 | 
			
		||||
    # # You can also create simple shell scripts directly inside your
 | 
			
		||||
    # # configuration. For example, this adds a command 'my-hello' to your
 | 
			
		||||
@ -83,6 +81,7 @@
 | 
			
		||||
  #
 | 
			
		||||
  home.sessionVariables = {
 | 
			
		||||
    EDITOR = "kak";
 | 
			
		||||
    XDG_CURRENT_DESKTOP="sway";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  wayland.windowManager.sway = {
 | 
			
		||||
@ -121,6 +120,26 @@
 | 
			
		||||
          plugins = [ "git" ];
 | 
			
		||||
          theme = "half-life";
 | 
			
		||||
      };
 | 
			
		||||
      initExtra = ''
 | 
			
		||||
          alias ask="nix-shell -p python310Packages.openai --run 'python ~/source/python/chat.py'"
 | 
			
		||||
 | 
			
		||||
          fzf_projects() {
 | 
			
		||||
              DIR=`
 | 
			
		||||
              fd .git --search-path="$HOME/source/" -H --ignore-file ~/.config/fd-ignore -tdirectory | \
 | 
			
		||||
              xargs dirname | \
 | 
			
		||||
              sed 's|$HOME||g' | \
 | 
			
		||||
              sort | \
 | 
			
		||||
              uniq | \
 | 
			
		||||
              fzf --preview 'ls $HOME/{}/README.md 2>/dev/null && bat $HOME/{}/README.md || printf "No README.md file found in this directory\n%s" {}' --preview-window=top | \
 | 
			
		||||
              xargs printf "$HOME/%s/"
 | 
			
		||||
              `
 | 
			
		||||
              cd $DIR
 | 
			
		||||
          }
 | 
			
		||||
          alias p="fzf_projects source/"
 | 
			
		||||
 | 
			
		||||
          ### Busykid Bash Functions
 | 
			
		||||
 | 
			
		||||
       '';
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -19,6 +19,10 @@
 | 
			
		||||
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    ###
 | 
			
		||||
    ##  Configuration
 | 
			
		||||
    ###
 | 
			
		||||
 | 
			
		||||
    config = lib.mkIf config.swaywm.enable {
 | 
			
		||||
 | 
			
		||||
        nixpkgs.config.allowUnfree = config.swaywm.useNonFree;
 | 
			
		||||
@ -48,9 +52,15 @@
 | 
			
		||||
        ###
 | 
			
		||||
        environment.systemPackages = with pkgs; lib.lists.flatten [
 | 
			
		||||
             [
 | 
			
		||||
                bash
 | 
			
		||||
                foot
 | 
			
		||||
                git
 | 
			
		||||
                glib # gsettings
 | 
			
		||||
                grim
 | 
			
		||||
                libnotify
 | 
			
		||||
                mako
 | 
			
		||||
                ncspot
 | 
			
		||||
                networkmanagerapplet
 | 
			
		||||
                pavucontrol
 | 
			
		||||
                slurp
 | 
			
		||||
                swaylock
 | 
			
		||||
@ -58,14 +68,8 @@
 | 
			
		||||
                wl-clipboard
 | 
			
		||||
                xdg-utils
 | 
			
		||||
                zsh
 | 
			
		||||
                # Add to gaming only installs
 | 
			
		||||
                lutris
 | 
			
		||||
                wine-wayland
 | 
			
		||||
                # Video utils
 | 
			
		||||
                davinci-resolve-studio
 | 
			
		||||
                imv
 | 
			
		||||
                mpv
 | 
			
		||||
                gimp
 | 
			
		||||
                # Fonts
 | 
			
		||||
 | 
			
		||||
             ]
 | 
			
		||||
            config.swaywm.systemPackages
 | 
			
		||||
            # (lib.mkIf config.swaywm.installGaming [
 | 
			
		||||
@ -90,17 +94,6 @@
 | 
			
		||||
        # kdeconnect setup
 | 
			
		||||
        programs.kdeconnect.enable = true;
 | 
			
		||||
 | 
			
		||||
        # Firewall
 | 
			
		||||
        # networking.firewall = {
 | 
			
		||||
        #   enable = true;
 | 
			
		||||
        #   allowedTCPPortRanges = [
 | 
			
		||||
        #       {from = 1714; to = 1764;} # KDE Connnect
 | 
			
		||||
        #   ];
 | 
			
		||||
        #   allowedUDPPortRanges = [
 | 
			
		||||
        #       {from = 1714; to = 1764;} # KDE Connnect
 | 
			
		||||
        #   ];
 | 
			
		||||
        # };
 | 
			
		||||
 | 
			
		||||
        ###
 | 
			
		||||
        ##  Misc
 | 
			
		||||
        ###
 | 
			
		||||
 | 
			
		||||
@ -44,6 +44,8 @@ in
 | 
			
		||||
                    cfg.userName
 | 
			
		||||
                    "video"
 | 
			
		||||
                    "audio"
 | 
			
		||||
                    # For android
 | 
			
		||||
                    "adbusers"
 | 
			
		||||
                ];
 | 
			
		||||
            })
 | 
			
		||||
        ];
 | 
			
		||||
 | 
			
		||||
@ -12,10 +12,15 @@ in
 | 
			
		||||
    }
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  nixpkgs.overlays = [
 | 
			
		||||
    inputs.nur.overlay
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  imports = [ # Include the results of the hardware scan.
 | 
			
		||||
    ./hardware-configuration.nix
 | 
			
		||||
    ../modules/user/main_user.nix
 | 
			
		||||
    ../modules/sway/sway_conf.nix
 | 
			
		||||
    # inputs.nur.hmModules.nur
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  # Enable flakes feature
 | 
			
		||||
@ -44,10 +49,54 @@ in
 | 
			
		||||
      enable = desktop == "sway";
 | 
			
		||||
      useNonFree = true;
 | 
			
		||||
      installGaming = gaming;
 | 
			
		||||
      systemPackages = [
 | 
			
		||||
        pkgs.libreoffice
 | 
			
		||||
      systemPackages = with pkgs; [
 | 
			
		||||
        # Dev Tools
 | 
			
		||||
        dbeaver
 | 
			
		||||
        cargo
 | 
			
		||||
        kakoune
 | 
			
		||||
        # flutter
 | 
			
		||||
        docker
 | 
			
		||||
        docker-compose
 | 
			
		||||
        python310
 | 
			
		||||
        nodejs_21
 | 
			
		||||
        ### LSP's
 | 
			
		||||
        rnix-lsp # Nix LSP
 | 
			
		||||
        nodePackages.typescript-language-server
 | 
			
		||||
        vscode-langservers-extracted # provides eslint, markdown, json, css, and html lsp
 | 
			
		||||
        rubyPackages.solargraph
 | 
			
		||||
        python310Packages.python-lsp-server
 | 
			
		||||
        ### Misc
 | 
			
		||||
        # android-udev-rules
 | 
			
		||||
        # android-tools
 | 
			
		||||
        # sdkmanager
 | 
			
		||||
 | 
			
		||||
        # Productivity
 | 
			
		||||
        libreoffice
 | 
			
		||||
 | 
			
		||||
        # Gaming
 | 
			
		||||
        wine-wayland
 | 
			
		||||
 | 
			
		||||
        # Better Unix
 | 
			
		||||
        bat
 | 
			
		||||
        duf
 | 
			
		||||
        fd
 | 
			
		||||
        fzf
 | 
			
		||||
        lsd
 | 
			
		||||
        ripgrep
 | 
			
		||||
        gtop
 | 
			
		||||
 | 
			
		||||
        # Photo / Video
 | 
			
		||||
        davinci-resolve-studio
 | 
			
		||||
        imv
 | 
			
		||||
        mpv
 | 
			
		||||
        gimp
 | 
			
		||||
 | 
			
		||||
        # Work
 | 
			
		||||
        slack
 | 
			
		||||
      ];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  programs.adb.enable = true;
 | 
			
		||||
 
 | 
			
		||||
  system.stateVersion = "23.11"; # Did you read the comment?
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user