diff --git a/modules/default.nix b/modules/default.nix index eb9042c..c3be46f 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -7,6 +7,5 @@ ./firewall.nix ./git.nix ./kmscon.nix - ./mprocs.nix ]; } diff --git a/modules/desktop/default.nix b/modules/desktop/default.nix index 9f12200..2841c31 100644 --- a/modules/desktop/default.nix +++ b/modules/desktop/default.nix @@ -183,9 +183,6 @@ in oneko plover.dev - - mupdf - inotify-tools ]; xsession = { enable = true; diff --git a/modules/git.nix b/modules/git.nix index 87c068f..693f2fc 100644 --- a/modules/git.nix +++ b/modules/git.nix @@ -43,16 +43,36 @@ programs.gitui = { enable = true; keyConfig = '' - ( - move_left: Some(( code: Char('h'), modifiers: "")), - move_right: Some(( code: Char('l'), modifiers: "")), - move_up: Some(( code: Char('k'), modifiers: "")), - move_down: Some(( code: Char('j'), modifiers: "")), + ( + open_help: Some(( code: F(1), modifiers: ( bits: 0,),)), - stash_open: Some(( code: Char('l'), modifiers: "")), - open_help: Some(( code: F(1), modifiers: "")), + move_left: Some(( code: Char('h'), modifiers: ( bits: 0,),)), + move_right: Some(( code: Char('l'), modifiers: ( bits: 0,),)), + move_up: Some(( code: Char('k'), modifiers: ( bits: 0,),)), + move_down: Some(( code: Char('j'), modifiers: ( bits: 0,),)), - status_reset_item: Some(( code: Char('U'), modifiers: "SHIFT")), + popup_up: Some(( code: Char('p'), modifiers: ( bits: 2,),)), + popup_down: Some(( code: Char('n'), modifiers: ( bits: 2,),)), + page_up: Some(( code: Char('b'), modifiers: ( bits: 2,),)), + page_down: Some(( code: Char('f'), modifiers: ( bits: 2,),)), + home: Some(( code: Char('g'), modifiers: ( bits: 0,),)), + end: Some(( code: Char('G'), modifiers: ( bits: 1,),)), + shift_up: Some(( code: Char('K'), modifiers: ( bits: 1,),)), + shift_down: Some(( code: Char('J'), modifiers: ( bits: 1,),)), + + edit_file: Some(( code: Char('I'), modifiers: ( bits: 1,),)), + + status_reset_item: Some(( code: Char('U'), modifiers: ( bits: 1,),)), + + diff_reset_lines: Some(( code: Char('u'), modifiers: ( bits: 0,),)), + diff_stage_lines: Some(( code: Char('s'), modifiers: ( bits: 0,),)), + + stashing_save: Some(( code: Char('w'), modifiers: ( bits: 0,),)), + stashing_toggle_index: Some(( code: Char('m'), modifiers: ( bits: 0,),)), + + stash_open: Some(( code: Char('l'), modifiers: ( bits: 0,),)), + + abort_merge: Some(( code: Char('M'), modifiers: ( bits: 1,),)), ) ''; }; diff --git a/modules/mprocs.nix b/modules/mprocs.nix deleted file mode 100644 index cbf7153..0000000 --- a/modules/mprocs.nix +++ /dev/null @@ -1,16 +0,0 @@ -{...}: { - home-manager.users.jade = { - pkgs, - lib, - ... - }: { - home = { - packages = [pkgs.mprocs]; - }; - xdg.configFile."mprocs/mprocs.yaml" = { - text = builtins.toJSON { - proc_list_width = 15; - }; - }; - }; -} diff --git a/modules/shell/helix.nix b/modules/shell/helix.nix index 14029d7..2238418 100644 --- a/modules/shell/helix.nix +++ b/modules/shell/helix.nix @@ -1,12 +1,5 @@ {config, ...}: { - home-manager.users.jade = {pkgs, ...}: let - typstGrammar = pkgs.fetchFromGitHub { - owner = "uben0"; - repo = "tree-sitter-typst"; - rev = "baddc325e858afff90501dbefa00ecfa28528931"; - sha256 = "sha256-XZAgnpb1B8EZ2WXPj/JYSZGsmpKsnDiBFCDF0XjunOM"; - }; - in { + home-manager.users.jade = {pkgs, ...}: { home = { sessionVariables.EDITOR = "hx"; packages = [ @@ -14,28 +7,15 @@ pkgs.vscode-langservers-extracted pkgs.nodePackages.typescript-language-server pkgs.emmet-language-server - pkgs.typst-lsp ]; }; - home.file = { - ".config/helix/runtime/queries" = { - source = "${typstGrammar}/queries"; - }; - }; programs.helix = { enable = true; settings = { theme = "gruvbox"; editor = { line-number = "relative"; - bufferline = "multiple"; - color-modes = true; - lsp = { - display-messages = true; - display-inlay-hints = true; - }; - shell = ["nu" "-c"]; - idle-timeout = 0; + lsp.display-messages = true; indent-guides = { render = true; character = "│"; @@ -58,86 +38,32 @@ }; }; languages = { - language-server = { - "nu-builtin-lsp" = { - command = "${config.users.defaultUserShell}/bin/nu"; - args = ["--lsp"]; - }; - "rust-analyzer" = { - config = { - check.command = "clippy"; - completion.snippets.custom = { - "pub fn" = { - prefix = ["pfn" "pubfn"]; - postfix = ["pfn"]; - body = [ - "pub fn $\{receiver\}() {" - "\\t$1" - "}" - ]; - scope = "type"; - }; - }; - }; - }; - "emmet-language-server" = { - command = "emmet-language-server"; - args = ["--stdio"]; - }; - # "php" = { - # name = "php"; - # file-types = [ "php" ]; - # language-server = { - # command = "psalm"; - # args = ["--language-server"]; - # }; - # }; - "typst-lsp" = { - command = "typst-lsp"; - config = { - exportPdf = "onType"; - }; + language-server."nu-builtin-lsp" = { + command = "${config.users.defaultUserShell}/bin/nu"; + args = ["--lsp"]; + }; + language-server."rust-analyzer" = { + config = { + check.command = "clippy"; }; }; - grammar = [ - { - name = "typst"; - source = { - git = "https://github.com/uben0/tree-sitter-typst"; - rev = "baddc325e858afff90501dbefa00ecfa28528931"; - # path = "${typstGrammar}"; - }; - } - ]; + language-server."emmet-language-server" = { + command = "emmet-language-server"; + args = ["--stdio"]; + }; + # "php" = { + # name = "php"; + # file-types = [ "php" ]; + # language-server = { + # command = "psalm"; + # args = ["--language-server"]; + # }; + # }; language = [ { name = "nu"; language-servers = ["nu-builtin-lsp"]; } - { - name = "typst"; - scope = "source.typst"; - file-types = ["typ" "typst"]; - injection-regex = "typ(st)?"; - comment-token = "//"; - indent = { - tab-width = 2; - unit = " "; - }; - roots = ["typst.toml"]; - formatter = { - command = "${pkgs.typstfmt}/bin/typstfmt"; - }; - auto-format = true; - language-servers = ["typst-lsp"]; - auto-pairs = { - "(" = ")"; - "{" = "}"; - "[" = "]"; - "$" = "$"; - "\"" = "\""; - }; - } { name = "nix"; formatter = { diff --git a/other/config.nu b/other/config.nu index 2f1a437..2903d1d 100644 --- a/other/config.nu +++ b/other/config.nu @@ -803,15 +803,18 @@ def glog [ ] { git log --pretty=%h»¦«%s»¦«%aN»¦«%aE»¦«%aD -n $amount | lines - | split column "»¦«u commit subject name email date" + | split column "»¦«" commit subject name email date } -def typed [ - name: string +def ed [ + file: path + ...cmdargs: string ] { - touch $"($name).typ" - typst compile $"($name).typ" - mprocs --names Editor,Viewer,Notify $"hx '($name).typ'" $"mupdf-x11 '($name).pdf'" $"while inotifywait -e modify '($name).pdf' ; do pkill -HUP mupdf; done" + let ext = $file | path parse | get extension; + match $ext { + "typ" => {|| zellij run --direction down -- typst watch $file ($cmdargs | prepend '--open' | str join ' ') } + }; + hx $file } alias gnix = cd ~/nix-configs;