Compare commits
4 Commits
0b4b950ad1
...
2bb838aef4
Author | SHA1 | Date | |
---|---|---|---|
2bb838aef4 | |||
f4e35e83ef | |||
29626f89b2 | |||
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"
|
||||
|
||||
|
|
84
flake.lock
84
flake.lock
|
@ -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": {
|
||||
|
@ -58,6 +20,26 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-ld": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1701153607,
|
||||
"narHash": "sha256-h+odOVyiGmEERMECoFOj5P7FPiMR8IPRzroFA4sKivg=",
|
||||
"owner": "Mic92",
|
||||
"repo": "nix-ld",
|
||||
"rev": "bf5aa84a713c31d95b4307e442e966d6c7fd7ae7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Mic92",
|
||||
"repo": "nix-ld",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1702312524,
|
||||
|
@ -90,12 +72,28 @@
|
|||
"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",
|
||||
"nix-ld": "nix-ld",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-stable": "nixpkgs-stable"
|
||||
"nixpkgs-stable": "nixpkgs-stable",
|
||||
"nur": "nur"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
22
flake.nix
22
flake.nix
|
@ -6,18 +6,25 @@
|
|||
|
||||
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-23.11";
|
||||
|
||||
nix-ld = {
|
||||
url = "github:Mic92/nix-ld";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
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, nix-ld, nur, home-manager, ... } @ inputs:
|
||||
let
|
||||
inherit (self) outputs;
|
||||
system = "x86_64-linux";
|
||||
|
@ -37,6 +44,7 @@
|
|||
nixServer = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
# nixpkgs.overlays = [ nur.overlay ];
|
||||
./nixos/server_configuration.nix
|
||||
inputs.home-manager.nixosModules.default
|
||||
];
|
||||
|
@ -44,10 +52,12 @@
|
|||
nixDesktop = nixpkgs.lib.nixosSystem {
|
||||
# Pass args to desktop configuration
|
||||
specialArgs = {
|
||||
inherit inputs outputs userName hostName desktop timeZone gaming;
|
||||
inherit inputs outputs userName hostName desktop timeZone gaming system;
|
||||
};
|
||||
modules = [
|
||||
./nixos/desktop_configuration.nix
|
||||
# Setup nix-ld
|
||||
nix-ld.nixosModules.nix-ld
|
||||
# Setup home manager
|
||||
home-manager.nixosModules.home-manager {
|
||||
home-manager.useGlobalPkgs = true;
|
||||
|
|
66
modules/apps/firefox/firefox.nix
Normal file
66
modules/apps/firefox/firefox.nix
Normal file
|
@ -0,0 +1,66 @@
|
|||
{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/do/mypage.pl?prfe=a1ffaae1a3f4dc133b6e11b3d611db561598fc16fbc43a22c2694805a5b4d46852c848cb54f3ccbc9cea0e8e83dab567d3abe2b350870e7781f8701d4558a1c988aced444d1e8d8a7b830563/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;
|
||||
"signon.rememberSignon" = false;
|
||||
"extensions.formautofill.creditCards.enabled" = false;
|
||||
"extensions.formautofill.addresses.enabled" = 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,21 @@
|
|||
|
||||
# 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 +82,7 @@
|
|||
#
|
||||
home.sessionVariables = {
|
||||
EDITOR = "kak";
|
||||
XDG_CURRENT_DESKTOP="sway";
|
||||
};
|
||||
|
||||
wayland.windowManager.sway = {
|
||||
|
@ -121,6 +121,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,9 +19,17 @@
|
|||
|
||||
};
|
||||
|
||||
###
|
||||
## Configuration
|
||||
###
|
||||
|
||||
config = lib.mkIf config.swaywm.enable {
|
||||
|
||||
nixpkgs.config.allowUnfree = config.swaywm.useNonFree;
|
||||
# For R2ModMan
|
||||
nixpkgs.config.permittedInsecurePackages = [
|
||||
"electron-25.9.0"
|
||||
];
|
||||
|
||||
###
|
||||
## XDG portal setup
|
||||
|
@ -48,24 +56,25 @@
|
|||
###
|
||||
environment.systemPackages = with pkgs; lib.lists.flatten [
|
||||
[
|
||||
bash
|
||||
foot
|
||||
git
|
||||
glib # gsettings
|
||||
grim
|
||||
libnotify
|
||||
mako
|
||||
ncspot
|
||||
networkmanagerapplet
|
||||
pavucontrol
|
||||
slurp
|
||||
swaylock
|
||||
swayidle
|
||||
wl-clipboard
|
||||
wdisplays
|
||||
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 [
|
||||
|
@ -73,12 +82,25 @@
|
|||
# ])
|
||||
];
|
||||
|
||||
# Thunar config
|
||||
programs.thunar = {
|
||||
enable = true;
|
||||
plugins = with pkgs.xfce; [
|
||||
thunar-archive-plugin
|
||||
thunar-volman
|
||||
];
|
||||
};
|
||||
programs.file-roller.enable = true;
|
||||
programs.xfconf.enable = true;
|
||||
|
||||
programs.zsh.enable = true;
|
||||
programs.steam.enable = config.swaywm.installGaming;
|
||||
|
||||
|
||||
###
|
||||
## Services
|
||||
###
|
||||
services.gvfs.enable = true; # thunar functionalities
|
||||
services.openssh.enable = true;
|
||||
services.dbus.enable = true;
|
||||
services.pipewire = {
|
||||
|
@ -90,17 +112,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
|
||||
###
|
||||
|
|
52
modules/user/.main_user.nix.kak.pLou1v
Normal file
52
modules/user/.main_user.nix.kak.pLou1v
Normal file
|
@ -0,0 +1,52 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.main_user;
|
||||
in
|
||||
{
|
||||
options.main_user = {
|
||||
enable = lib.mkEnableOption "enable user module";
|
||||
|
||||
isDesktopUser = lib.mkOption {
|
||||
default = false;
|
||||
example = true;
|
||||
description = "Add additional user groups for desktop users";
|
||||
};
|
||||
|
||||
userName = lib.mkOption {
|
||||
default = "mainuser";
|
||||
description = "username";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
users.users.${cfg.userName} = lib.mkMerge [
|
||||
{
|
||||
isNormalUser = true;
|
||||
initialPassword = "password";
|
||||
|
||||
description = "main user";
|
||||
shell = pkgs.zsh;
|
||||
}
|
||||
|
||||
(lib.mkIf (!cfg.isDesktopUser) {
|
||||
extraGroups = [
|
||||
"wheel"
|
||||
"networkmanager"
|
||||
cfg.userName
|
||||
];
|
||||
})
|
||||
(lib.mkIf cfg.isDesktopUser {
|
||||
extraGroups = [
|
||||
"wheel"
|
||||
"networkmanager"
|
||||
"corectrl"
|
||||
cfg.userName
|
||||
"video"
|
||||
"audio"
|
||||
# For android
|
||||
"adbusers"
|
||||
];
|
||||
})
|
||||
];
|
||||
};
|
|
@ -44,6 +44,8 @@ in
|
|||
cfg.userName
|
||||
"video"
|
||||
"audio"
|
||||
# For android
|
||||
"adbusers"
|
||||
];
|
||||
})
|
||||
];
|
||||
|
|
|
@ -19,6 +19,9 @@
|
|||
"nix-command" "flakes"
|
||||
];
|
||||
|
||||
programs.nix-ld.enable = true;
|
||||
|
||||
|
||||
system.stateVersion = "23.11"; # Did you read the comment?
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ config, lib, inputs, outputs, pkgs, userName, hostName, desktop, timeZone, gaming, ... }:
|
||||
{ config, lib, inputs, outputs, pkgs, userName, hostName, desktop, timeZone, gaming, system, ... }:
|
||||
|
||||
let
|
||||
supportedDesktops = [ "sway" ];
|
||||
|
@ -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
|
||||
|
@ -23,6 +28,8 @@ in
|
|||
"nix-command" "flakes"
|
||||
];
|
||||
|
||||
# programs.nix-ld.dev.enable = true;
|
||||
|
||||
# nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
|
@ -44,11 +51,73 @@ 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
|
||||
zig
|
||||
### LSP's
|
||||
rnix-lsp # Nix LSP
|
||||
openscad-lsp
|
||||
nodePackages.typescript-language-server
|
||||
vscode-langservers-extracted # provides eslint, markdown, json, css, and html lsp
|
||||
rubyPackages.solargraph
|
||||
python310Packages.python-lsp-server
|
||||
zls
|
||||
### Misc
|
||||
# android-udev-rules
|
||||
# android-tools
|
||||
# sdkmanager
|
||||
openscad
|
||||
|
||||
#
|
||||
# Productivity
|
||||
#
|
||||
libreoffice
|
||||
|
||||
#
|
||||
# Gaming
|
||||
#
|
||||
mumble
|
||||
wine-wayland
|
||||
r2modman
|
||||
|
||||
#
|
||||
# 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?
|
||||
}
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "uas" "sd_mod" ];
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "uas" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
@ -23,6 +23,11 @@
|
|||
fsType = "vfat";
|
||||
};
|
||||
|
||||
fileSystems."/home/nate/Games" =
|
||||
{ device = "/dev/disk/by-uuid/d66b7920-2c29-400a-be51-0b3890ea63db";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
|
|
Loading…
Reference in New Issue
Block a user