emacs update
moved emacs from home-manager packages to system packages updated config to use tree-sitter and lsp-mode
This commit is contained in:
		
							
								
								
									
										30
									
								
								.github/workflows/main.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										30
									
								
								.github/workflows/main.yml
									
									
									
									
										vendored
									
									
								
							@@ -1,30 +0,0 @@
 | 
				
			|||||||
name: main
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
on:
 | 
					 | 
				
			||||||
  push:
 | 
					 | 
				
			||||||
  pull_request:
 | 
					 | 
				
			||||||
  workflow_dispatch:
 | 
					 | 
				
			||||||
jobs:
 | 
					 | 
				
			||||||
  packages:
 | 
					 | 
				
			||||||
    name: test packages
 | 
					 | 
				
			||||||
    runs-on: ubuntu-latest
 | 
					 | 
				
			||||||
    strategy:
 | 
					 | 
				
			||||||
      matrix:
 | 
					 | 
				
			||||||
        pkg:
 | 
					 | 
				
			||||||
        - anup
 | 
					 | 
				
			||||||
        - discord
 | 
					 | 
				
			||||||
        - proxychains
 | 
					 | 
				
			||||||
        - st
 | 
					 | 
				
			||||||
        - dmenu
 | 
					 | 
				
			||||||
    steps:
 | 
					 | 
				
			||||||
      - uses: actions/checkout@v2.3.4
 | 
					 | 
				
			||||||
      - uses: cachix/install-nix-action@v13
 | 
					 | 
				
			||||||
        with:
 | 
					 | 
				
			||||||
          install_url: https://github.com/numtide/nix-flakes-installer/releases/download/nix-2.4pre20210429_d15a196/install
 | 
					 | 
				
			||||||
          extra_nix_config: |
 | 
					 | 
				
			||||||
            experimental-features = nix-command flakes
 | 
					 | 
				
			||||||
      - uses: cachix/cachix-action@v10
 | 
					 | 
				
			||||||
        with:
 | 
					 | 
				
			||||||
          name: natto1784
 | 
					 | 
				
			||||||
          authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
 | 
					 | 
				
			||||||
      - run: nix build -L .#${{ matrix.pkg }}
 | 
					 | 
				
			||||||
							
								
								
									
										16
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										16
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							@@ -34,6 +34,21 @@
 | 
				
			|||||||
        "type": "gitlab"
 | 
					        "type": "gitlab"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "emacs": {
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1631467754,
 | 
				
			||||||
 | 
					        "narHash": "sha256-lZbeo1Y/jni/KW1W+DnaeCPgIu+W+ks8qp3xlRtUYFQ=",
 | 
				
			||||||
 | 
					        "owner": "nix-community",
 | 
				
			||||||
 | 
					        "repo": "emacs-overlay",
 | 
				
			||||||
 | 
					        "rev": "e00f171142307b3c9bb962beeaaf09d0254f9e31",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "owner": "nix-community",
 | 
				
			||||||
 | 
					        "repo": "emacs-overlay",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "flake-compat": {
 | 
					    "flake-compat": {
 | 
				
			||||||
      "flake": false,
 | 
					      "flake": false,
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
@@ -339,6 +354,7 @@
 | 
				
			|||||||
    "root": {
 | 
					    "root": {
 | 
				
			||||||
      "inputs": {
 | 
					      "inputs": {
 | 
				
			||||||
        "agenix": "agenix",
 | 
					        "agenix": "agenix",
 | 
				
			||||||
 | 
					        "emacs": "emacs",
 | 
				
			||||||
        "home-manager": "home-manager",
 | 
					        "home-manager": "home-manager",
 | 
				
			||||||
        "home-manager-unstable": "home-manager-unstable",
 | 
					        "home-manager-unstable": "home-manager-unstable",
 | 
				
			||||||
        "mailserver": "mailserver",
 | 
					        "mailserver": "mailserver",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,6 +11,7 @@
 | 
				
			|||||||
    nvim.url = github:nix-community/neovim-nightly-overlay;
 | 
					    nvim.url = github:nix-community/neovim-nightly-overlay;
 | 
				
			||||||
    mailserver.url = gitlab:simple-nixos-mailserver/nixos-mailserver;
 | 
					    mailserver.url = gitlab:simple-nixos-mailserver/nixos-mailserver;
 | 
				
			||||||
    nbfc.url = github:natto1784/nbfc-linux/yawr;
 | 
					    nbfc.url = github:natto1784/nbfc-linux/yawr;
 | 
				
			||||||
 | 
					    emacs.url = github:nix-community/emacs-overlay;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  outputs = inputs@{self, nixpkgs, unstable, master,  ... }:
 | 
					  outputs = inputs@{self, nixpkgs, unstable, master,  ... }:
 | 
				
			||||||
@@ -36,6 +37,7 @@
 | 
				
			|||||||
      overlays = overlays ++ [ 
 | 
					      overlays = overlays ++ [ 
 | 
				
			||||||
        inputs.nur.overlay 
 | 
					        inputs.nur.overlay 
 | 
				
			||||||
        inputs.nvim.overlay
 | 
					        inputs.nvim.overlay
 | 
				
			||||||
 | 
					        inputs.emacs.overlay
 | 
				
			||||||
        channels
 | 
					        channels
 | 
				
			||||||
        (_:_:{nbfc-linux=inputs.nbfc.defaultPackage.${system};})
 | 
					        (_:_:{nbfc-linux=inputs.nbfc.defaultPackage.${system};})
 | 
				
			||||||
      ];
 | 
					      ];
 | 
				
			||||||
@@ -49,6 +51,7 @@
 | 
				
			|||||||
      ./modules/nvidia-offload.nix
 | 
					      ./modules/nvidia-offload.nix
 | 
				
			||||||
      ./modules/pipewire.nix
 | 
					      ./modules/pipewire.nix
 | 
				
			||||||
      ./modules/xorg.nix
 | 
					      ./modules/xorg.nix
 | 
				
			||||||
 | 
					      ./modules/emacs
 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
    commonModules = [
 | 
					    commonModules = [
 | 
				
			||||||
      ./modules/nvim
 | 
					      ./modules/nvim
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,45 +0,0 @@
 | 
				
			|||||||
;;settings
 | 
					 | 
				
			||||||
(setq display-line-numbers-type 'relative)
 | 
					 | 
				
			||||||
(setq inhibit-startup-screen t)
 | 
					 | 
				
			||||||
(set-face-attribute 'default nil :font "Fira Mono for Powerline" :height 120)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
;;add packages and shit
 | 
					 | 
				
			||||||
(require 'package)
 | 
					 | 
				
			||||||
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/"))
 | 
					 | 
				
			||||||
(package-initialize)
 | 
					 | 
				
			||||||
(setq pkgs '(ivy gruvbox-theme elcord rainbow-delimiters))
 | 
					 | 
				
			||||||
(while pkgs
 | 
					 | 
				
			||||||
       (require (car pkgs))
 | 
					 | 
				
			||||||
       (setq pkgs (cdr pkgs)))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
;;package config and modes
 | 
					 | 
				
			||||||
(global-hl-line-mode 1)
 | 
					 | 
				
			||||||
(scroll-bar-mode 0)
 | 
					 | 
				
			||||||
(tool-bar-mode 0)
 | 
					 | 
				
			||||||
(menu-bar-mode 0)
 | 
					 | 
				
			||||||
(fringe-mode 0)
 | 
					 | 
				
			||||||
(global-display-line-numbers-mode 1)
 | 
					 | 
				
			||||||
(load-theme 'gruvbox-dark-hard t)
 | 
					 | 
				
			||||||
(ivy-mode 1)
 | 
					 | 
				
			||||||
(elcord-mode 1)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
;;keybinds
 | 
					 | 
				
			||||||
;ivy
 | 
					 | 
				
			||||||
(define-key ivy-minibuffer-map (kbd "C-n") 'ivy-next-line)
 | 
					 | 
				
			||||||
(define-key ivy-minibuffer-map (kbd "C-e") 'ivy-previous-line)
 | 
					 | 
				
			||||||
(define-key ivy-minibuffer-map (kbd "C-i") 'ivy-done)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
;;hooks
 | 
					 | 
				
			||||||
;exclude line numbers
 | 
					 | 
				
			||||||
(setq exclude-ln '(term-mode-hook eshell-mode-hook shell-mode-hook))
 | 
					 | 
				
			||||||
(while exclude-ln
 | 
					 | 
				
			||||||
       (add-hook (car exclude-ln) (lambda () (display-line-numbers-mode 0)))
 | 
					 | 
				
			||||||
       (setq exclude-ln (cdr exclude-ln)))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
;rainbow delims
 | 
					 | 
				
			||||||
(add-hook 'prog-mode-hook 'rainbow-delimiters-mode)
 | 
					 | 
				
			||||||
							
								
								
									
										1
									
								
								home/config/emacs/init.el
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								home/config/emacs/init.el
									
									
									
									
									
										Symbolic link
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					../../../modules/emacs/init.el
 | 
				
			||||||
@@ -1,18 +1,60 @@
 | 
				
			|||||||
{ pkgs, config, ... }:
 | 
					{ pkgs, config, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  #i dont really use emacs but eh
 | 
					 | 
				
			||||||
  programs.emacs = {
 | 
					  programs.emacs = {
 | 
				
			||||||
    enable = true;
 | 
					    enable = false;
 | 
				
			||||||
    extraPackages = epkgs: with epkgs; [
 | 
					    extraPackages = epkgs: with epkgs; [
 | 
				
			||||||
      elcord
 | 
					      elcord
 | 
				
			||||||
      gruvbox-theme
 | 
					      gruvbox-theme
 | 
				
			||||||
      ivy
 | 
					      ivy
 | 
				
			||||||
      rainbow-delimiters
 | 
					      rainbow-delimiters
 | 
				
			||||||
 | 
					      evil
 | 
				
			||||||
 | 
					      evil-colemak-basics
 | 
				
			||||||
 | 
					      treemacs
 | 
				
			||||||
 | 
					      treemacs-evil
 | 
				
			||||||
 | 
					      lsp-mode
 | 
				
			||||||
 | 
					      lsp-treemacs
 | 
				
			||||||
 | 
					      lsp-ui
 | 
				
			||||||
 | 
					      tree-sitter
 | 
				
			||||||
 | 
					      tree-sitter-langs
 | 
				
			||||||
 | 
					      tsc
 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
    overrides = self: super : {
 | 
					    overrides = self: super : {
 | 
				
			||||||
      gruvbox-theme = self.melpaPackages.gruvbox-theme.overrideAttrs(_: {
 | 
					      tsc = super.tsc.overrideAttrs(oa: 
 | 
				
			||||||
        patches = [ ../../config/emacs/gruvbox-el.patch ];
 | 
					      let
 | 
				
			||||||
      });
 | 
					        tsc-dyn = version: pkgs.fetchurl { 
 | 
				
			||||||
 | 
					          url = "https://github.com/emacs-tree-sitter/elisp-tree-sitter/releases/download/${version}/tsc-dyn.so";
 | 
				
			||||||
 | 
					          sha256 = "sha256-oOq/TAooHRUo7JypCblrB/ztABowAHv2LRhFL/ZmVrg=";
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					      in { postInstall = oa.postInstall or "" + "cp ${tsc-dyn "0.15.2"} $out/share/emacs/site-lisp/elpa/tsc-${super.tsc.version}/tsc-dyn.so" ;});
 | 
				
			||||||
 | 
					      tree-sitter-langs = pkgs.symlinkJoin rec {
 | 
				
			||||||
 | 
					        name = "tree-sitter-langs";
 | 
				
			||||||
 | 
					        paths =
 | 
				
			||||||
 | 
					          let
 | 
				
			||||||
 | 
					            tree-sitter-grammars = pkgs.stdenv.mkDerivation rec {
 | 
				
			||||||
 | 
					              name = "tree-sitter-grammars";
 | 
				
			||||||
 | 
					              version = "0.10.4";
 | 
				
			||||||
 | 
					              src = pkgs.fetchzip {
 | 
				
			||||||
 | 
					                url = "https://github.com/emacs-tree-sitter/tree-sitter-langs/releases/download/${version}/tree-sitter-grammars-linux-${version}.tar.gz";
 | 
				
			||||||
 | 
					                sha256 = "sha256-Z+JtuGLTCVhCJBR60cbcDgWtdKcoYGWoeI5u9GcfvUQ=";
 | 
				
			||||||
 | 
					                stripRoot = false;
 | 
				
			||||||
 | 
					              };
 | 
				
			||||||
 | 
					              installPhase = ''
 | 
				
			||||||
 | 
					                install -d $out/langs/bin
 | 
				
			||||||
 | 
					                install -m444 * $out/langs/bin
 | 
				
			||||||
 | 
					                echo -n $version > $out/langs/bin/BUNDLE-VERSION
 | 
				
			||||||
 | 
					              '';
 | 
				
			||||||
 | 
					            };
 | 
				
			||||||
 | 
					          in
 | 
				
			||||||
 | 
					          [
 | 
				
			||||||
 | 
					            (super.tree-sitter-langs.overrideAttrs (oldAttrs: {
 | 
				
			||||||
 | 
					              postPatch = oldAttrs.postPatch or "" + ''
 | 
				
			||||||
 | 
					                substituteInPlace ./tree-sitter-langs-build.el \
 | 
				
			||||||
 | 
					                --replace "tree-sitter-langs-grammar-dir tree-sitter-langs--dir"  "tree-sitter-langs-grammar-dir \"${tree-sitter-grammars}/langs\""
 | 
				
			||||||
 | 
					              '';
 | 
				
			||||||
 | 
					            }))
 | 
				
			||||||
 | 
					            tree-sitter-grammars
 | 
				
			||||||
 | 
					          ];
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
  home.file.emacs = {
 | 
					  home.file.emacs = {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,6 +28,7 @@
 | 
				
			|||||||
    lohit-fonts.gurmukhi
 | 
					    lohit-fonts.gurmukhi
 | 
				
			||||||
    nerdfonts
 | 
					    nerdfonts
 | 
				
			||||||
    font-awesome
 | 
					    font-awesome
 | 
				
			||||||
 | 
					    monoid
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
  users.users.natto = {
 | 
					  users.users.natto = {
 | 
				
			||||||
    isNormalUser = true;
 | 
					    isNormalUser = true;
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										62
									
								
								modules/emacs/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								modules/emacs/default.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,62 @@
 | 
				
			|||||||
 | 
					{ pkgs, config, ... }:
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  environment.systemPackages = with pkgs; [
 | 
				
			||||||
 | 
					    (emacsWithPackagesFromUsePackage {
 | 
				
			||||||
 | 
					      config = ./init.el;
 | 
				
			||||||
 | 
					      alwaysEnsure = true;
 | 
				
			||||||
 | 
					      extraEmacsPackages = epkgs: with epkgs; [
 | 
				
			||||||
 | 
					        use-package
 | 
				
			||||||
 | 
					        tsc
 | 
				
			||||||
 | 
					      ];
 | 
				
			||||||
 | 
					      override = epkgs : epkgs // {
 | 
				
			||||||
 | 
					        tsc = epkgs.melpaPackages.tsc.overrideAttrs(oa: 
 | 
				
			||||||
 | 
					        let 
 | 
				
			||||||
 | 
					          version = "0.15.1";
 | 
				
			||||||
 | 
					          tsc-dyn = fetchurl {
 | 
				
			||||||
 | 
					            url = "https://github.com/emacs-tree-sitter/elisp-tree-sitter/releases/download/${version}/tsc-dyn.so";
 | 
				
			||||||
 | 
					            sha256 = "sha256-TrwyQZEfARHfafT4IhxR+p7vpjSuw9lUcgOSwCvPxe4=";
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					          version-file = writeText "DYN-VERSION" version;
 | 
				
			||||||
 | 
					        in {
 | 
				
			||||||
 | 
					/*          src = fetchFromGitHub {
 | 
				
			||||||
 | 
					            owner = "emacs-tree-sitter";
 | 
				
			||||||
 | 
					            repo = "elisp-tree-sitter";
 | 
				
			||||||
 | 
					            rev = version;
 | 
				
			||||||
 | 
					            sha256 = "sha256-dGWg4dj+85kxytvm+nNEJUN9UXdr9L6pSRz5OqDMFAM=";
 | 
				
			||||||
 | 
					          };*/
 | 
				
			||||||
 | 
					          postInstall = ''
 | 
				
			||||||
 | 
					            cp ${tsc-dyn} $out/share/emacs/site-lisp/elpa/tsc-${oa.version}/tsc-dyn.so
 | 
				
			||||||
 | 
					            cp ${version-file} $out/share/emacs/site-lisp/elpa/tsc-${oa.version}/DYN-VERSION
 | 
				
			||||||
 | 
					          '';
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					        tree-sitter-langs = epkgs.melpaPackages.tree-sitter-langs.overrideAttrs (oa:
 | 
				
			||||||
 | 
					        let
 | 
				
			||||||
 | 
					          tree-sitter-grammars = super.stdenv.mkDerivation rec {
 | 
				
			||||||
 | 
					            name = "tree-sitter-grammars";
 | 
				
			||||||
 | 
					            version = "0.10.4";
 | 
				
			||||||
 | 
					            src = fetchzip {
 | 
				
			||||||
 | 
					              url = "https://github.com/emacs-tree-sitter/tree-sitter-langs/releases/download/${version}/tree-sitter-grammars-linux-${version}.tar.gz";
 | 
				
			||||||
 | 
					              sha256 = "sha256-Z+JtuGLTCVhCJBR60cbcDgWtdKcoYGWoeI5u9GcfvUQ=";
 | 
				
			||||||
 | 
					              stripRoot = false;
 | 
				
			||||||
 | 
					            };
 | 
				
			||||||
 | 
					          installPhase = ''
 | 
				
			||||||
 | 
					            install -d $out/langs/bin
 | 
				
			||||||
 | 
					            install -m444 * $out/langs/bin
 | 
				
			||||||
 | 
					            echo -n $version > $out/langs/bin/BUNDLE-VERSION
 | 
				
			||||||
 | 
					          '';
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					        in {
 | 
				
			||||||
 | 
					            postPatch = oa.postPatch or "" + ''
 | 
				
			||||||
 | 
					              substituteInPlace ./tree-sitter-langs-build.el \
 | 
				
			||||||
 | 
					              --replace "tree-sitter-langs-grammar-dir tree-sitter-langs--dir"  "tree-sitter-langs-grammar-dir \"${tree-sitter-grammars}/langs\""
 | 
				
			||||||
 | 
					            '';
 | 
				
			||||||
 | 
					#            postInstall = oa.postInstall or "" + ''
 | 
				
			||||||
 | 
					 #             mkdir $out/share/emacs/site-lisp/elpa/tree-sitter-langs-${oa.version}/bin
 | 
				
			||||||
 | 
					  #            cp ${binaries}/* $out/share/emacs/site-lisp/elpa/tree-sitter-langs-${oa.version}/bin/
 | 
				
			||||||
 | 
					   #         '';
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					        gruvbox-theme = epkgs.melpaPackages.gruvbox-theme.overrideAttrs(_: { patches = [ ./gruvbox-el.patch ]; } );
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										101
									
								
								modules/emacs/init.el
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										101
									
								
								modules/emacs/init.el
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,101 @@
 | 
				
			|||||||
 | 
					;;settings
 | 
				
			||||||
 | 
					(setq display-line-numbers-type 'relative)
 | 
				
			||||||
 | 
					(setq inhibit-startup-screen t)
 | 
				
			||||||
 | 
					(set-face-attribute 'default nil :font "Monoid" :height 120)
 | 
				
			||||||
 | 
					(global-hl-line-mode 1)
 | 
				
			||||||
 | 
					(scroll-bar-mode 0)
 | 
				
			||||||
 | 
					(tool-bar-mode 0)
 | 
				
			||||||
 | 
					(menu-bar-mode 0)
 | 
				
			||||||
 | 
					(fringe-mode 0)
 | 
				
			||||||
 | 
					(global-display-line-numbers-mode 1)
 | 
				
			||||||
 | 
					(setq initial-major-mode 'emacs-lisp-mode)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;add packages and shit
 | 
				
			||||||
 | 
					(require 'package)
 | 
				
			||||||
 | 
					(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/"))
 | 
				
			||||||
 | 
					(package-initialize)
 | 
				
			||||||
 | 
					(require 'use-package)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;package config and modes
 | 
				
			||||||
 | 
					(use-package gruvbox-theme
 | 
				
			||||||
 | 
					  :init
 | 
				
			||||||
 | 
					  (load-theme 'gruvbox-dark-hard t))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(use-package ivy
 | 
				
			||||||
 | 
					  :config
 | 
				
			||||||
 | 
					  (ivy-mode 1))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(use-package elcord
 | 
				
			||||||
 | 
					  :config
 | 
				
			||||||
 | 
					  (elcord-mode 1))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(use-package evil
 | 
				
			||||||
 | 
					  :config
 | 
				
			||||||
 | 
					  (evil-mode 1))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(use-package evil-colemak-basics
 | 
				
			||||||
 | 
					  :init
 | 
				
			||||||
 | 
					  (setq evil-colemak-basics-layout-mod 'mod-dh)
 | 
				
			||||||
 | 
					  :config
 | 
				
			||||||
 | 
					  (global-evil-colemak-basics-mode 1))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(use-package treemacs
 | 
				
			||||||
 | 
					  :config
 | 
				
			||||||
 | 
					  (treemacs-filewatch-mode 1)
 | 
				
			||||||
 | 
					  (treemacs-git-mode 'deferred))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(use-package treemacs-evil
 | 
				
			||||||
 | 
					  :bind (:map evil-treemacs-state-map
 | 
				
			||||||
 | 
					              ("n" . treemacs-next-line)
 | 
				
			||||||
 | 
					              ("e" . treemacs-previous-line)
 | 
				
			||||||
 | 
					              ("M-n" . treemacs-next-neighbour)
 | 
				
			||||||
 | 
					              ("M-e" . treemacs-previous-neighbour)
 | 
				
			||||||
 | 
					              ("M-N" . treemacs-next-line-other-window)
 | 
				
			||||||
 | 
					              ("M-E" . treemacs-previous-line-other-window)
 | 
				
			||||||
 | 
					              ("M" . treemacs-collapse-parent-node))
 | 
				
			||||||
 | 
					  :init
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(use-package lsp-mode
 | 
				
			||||||
 | 
					  :config
 | 
				
			||||||
 | 
					  (lsp-mode 1))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(use-package lsp-treemacs
 | 
				
			||||||
 | 
					  :config
 | 
				
			||||||
 | 
					  (lsp-treemacs-sync-mode))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(use-package lsp-ui
 | 
				
			||||||
 | 
					  :config
 | 
				
			||||||
 | 
					  (lsp-ui-peek-enable 1)
 | 
				
			||||||
 | 
					  (lsp-ui-doc-enable 1))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(use-package tree-sitter-langs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(use-package tree-sitter
 | 
				
			||||||
 | 
					  :config
 | 
				
			||||||
 | 
					  (global-tree-sitter-mode)
 | 
				
			||||||
 | 
					  :init 
 | 
				
			||||||
 | 
					  (add-to-list 'tree-sitter-major-mode-language-alist '(fundamental-mode . bash))
 | 
				
			||||||
 | 
					  (add-hook 'tree-sitter-after-on-hook #'tree-sitter-hl-mode))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(use-package rainbow-delimiters
 | 
				
			||||||
 | 
					  :hook (prog-mode . rainbow-delimiters-mode))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;(use-package rustic)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;keybinds
 | 
				
			||||||
 | 
					;ivy
 | 
				
			||||||
 | 
					(define-key ivy-minibuffer-map (kbd "C-n") 'ivy-next-line)
 | 
				
			||||||
 | 
					(define-key ivy-minibuffer-map (kbd "C-e") 'ivy-previous-line)
 | 
				
			||||||
 | 
					(define-key ivy-minibuffer-map (kbd "C-i") 'ivy-done)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;evil-treemacs
 | 
				
			||||||
 | 
					(evil-define-key 'treemacs treemacs-mode-map (kbd "m") #'treemacs-COLLAPSE-action)
 | 
				
			||||||
 | 
					(evil-define-key 'treemacs treemacs-mode-map (kbd "i") #'treemacs-RET-action))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;hooks
 | 
				
			||||||
 | 
					;exclude line numbers
 | 
				
			||||||
 | 
					(setq exclude-ln '(term-mode-hook eshell-mode-hook shell-mode-hook))
 | 
				
			||||||
 | 
					(while exclude-ln
 | 
				
			||||||
 | 
					       (add-hook (car exclude-ln) (lambda () (display-line-numbers-mode 0)))
 | 
				
			||||||
 | 
					       (setq exclude-ln (cdr exclude-ln)))
 | 
				
			||||||
@@ -29,7 +29,7 @@
 | 
				
			|||||||
          nvim-tree-lua
 | 
					          nvim-tree-lua
 | 
				
			||||||
          vim-vsnip
 | 
					          vim-vsnip
 | 
				
			||||||
          nvim-treesitter
 | 
					          nvim-treesitter
 | 
				
			||||||
          vim-polyglot
 | 
					          vim-nix
 | 
				
			||||||
          (gruvbox.overrideAttrs (oa: { patches = [ ./gruvbox.patch ]; }))
 | 
					          (gruvbox.overrideAttrs (oa: { patches = [ ./gruvbox.patch ]; }))
 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -60,10 +60,12 @@ cdhbind('m', 'h')
 | 
				
			|||||||
cdhbind('n', 'j')
 | 
					cdhbind('n', 'j')
 | 
				
			||||||
cdhbind('e', 'k')
 | 
					cdhbind('e', 'k')
 | 
				
			||||||
cdhbind('i', 'l')
 | 
					cdhbind('i', 'l')
 | 
				
			||||||
cdhbind('h', 'i')
 | 
					cdhbind('u', 'i')
 | 
				
			||||||
cdhbind('j', 'm')
 | 
					cdhbind('l', 'u')
 | 
				
			||||||
cdhbind('k', 'n')
 | 
					cdhbind('k', 'n')
 | 
				
			||||||
cdhbind('l', 'e')
 | 
					cdhbind('f', 'e')
 | 
				
			||||||
 | 
					cdhbind('t', 'f')
 | 
				
			||||||
 | 
					cdhbind('j', 't')
 | 
				
			||||||
bind('n', "<M-s>", ":w<CR>", {noremap=true})
 | 
					bind('n', "<M-s>", ":w<CR>", {noremap=true})
 | 
				
			||||||
bind('n', "<M-n>", ":resize -2<CR>", {noremap=true, silent=true})
 | 
					bind('n', "<M-n>", ":resize -2<CR>", {noremap=true, silent=true})
 | 
				
			||||||
bind('n', "<M-e>", ":resize +2<CR>", {noremap=true, silent=true})
 | 
					bind('n', "<M-e>", ":resize +2<CR>", {noremap=true, silent=true})
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user