diff --git a/flake.lock b/flake.lock index 0600e78..2b41f45 100644 --- a/flake.lock +++ b/flake.lock @@ -5,11 +5,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1638837456, - "narHash": "sha256-WHLOxthAGx/wXw3QUa/lFE3mr6cQtnXfFYZ0DNyYwt4=", + "lastModified": 1640802000, + "narHash": "sha256-ZiI94Zv/IgW64fqKrtVaQqfUCkn9STvAjgfFmvtqcQ8=", "owner": "ryantm", "repo": "agenix", - "rev": "57806bf7e340f4cae705c91748d4fdf8519293a9", + "rev": "c5558c88b2941bf94886dfdede6926b1ba5f5629", "type": "github" }, "original": { @@ -36,11 +36,11 @@ }, "emacs": { "locked": { - "lastModified": 1640256373, - "narHash": "sha256-ipzq2W+905/qFEkPcgJoSg7jUDbp9J8F7IEAL7xqE0A=", + "lastModified": 1641149178, + "narHash": "sha256-Mt+oT5YZ6G9zHctDKV5pY+3vIdsMmAg0HMvz6rxsIc0=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "abce25bc28ffff32f6beb7b3072753116a2b7fcf", + "rev": "f3c435a5e5cfa3ce1b2f50ba37b9cacfec4139d9", "type": "github" }, "original": { @@ -115,11 +115,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1640126586, - "narHash": "sha256-Brja0wQZFSl+hduOcBfE/oVPs0QattbILSMHC7/9fEg=", + "lastModified": 1641121012, + "narHash": "sha256-svaOMxNMQgFHjcxdmLojOxTxfqSENtnO+S3kb+npIwY=", "owner": "nix-community", "repo": "home-manager", - "rev": "1b03a8ab7af9385b70b7d7c319c4a31a58c5cfa5", + "rev": "8e7a10602d1eb1d242c9d3f9b822203d5751a8c6", "type": "github" }, "original": { @@ -171,11 +171,11 @@ }, "master": { "locked": { - "lastModified": 1640272179, - "narHash": "sha256-xY4NlVQi6ZrolXDy/sB0H9wQnurj571YJRa2256Mhi0=", + "lastModified": 1641155364, + "narHash": "sha256-7OXbMNAVeO5Yn916tADri1UIzl5bU27PjIDSLZB4G9A=", "owner": "nixos", "repo": "nixpkgs", - "rev": "2d3d4867c4f96b701ff9a3edc1bd961b0414464f", + "rev": "03985162cf0d012b5ebdad5271c26e0cfacd1aa2", "type": "github" }, "original": { @@ -212,11 +212,11 @@ }, "locked": { "dir": "contrib", - "lastModified": 1640212476, - "narHash": "sha256-479GRRtuk0JL0aQLvfAx+R1DvuNke1W3Fe8hTcuPUno=", + "lastModified": 1641106516, + "narHash": "sha256-zx9GDn7rXvqvrQaRiop7Xx8qqSt3FPppVcShmneSqHs=", "owner": "neovim", "repo": "neovim", - "rev": "7b8fbbdebe90a2dbf0d57464c93c7d5bfc3da449", + "rev": "e42c9065972f93e4666fbd8e06fc56333e9e5d24", "type": "github" }, "original": { @@ -232,11 +232,11 @@ "utils": "utils_3" }, "locked": { - "lastModified": 1638710960, - "narHash": "sha256-C6M/Nt2XMn26RiyMHb37YbKd+RiaiOIyvB1drDv5Ni8=", + "lastModified": 1640904492, + "narHash": "sha256-KrFdQl9sRxfkA18OnfY10+wvcRsExEjl0HHUQH2Di8E=", "owner": "fufexan", "repo": "nix-gaming", - "rev": "e6c087d81eed40b5f147fc48cc969c590ede3124", + "rev": "57f79e1181805df1ec1c6336dca40aee9671cee0", "type": "github" }, "original": { @@ -306,11 +306,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1640234302, - "narHash": "sha256-dALA+cOam5jQ2KOYdWiv6H6Y2stcYG6eclWQQVGx/FI=", + "lastModified": 1641104204, + "narHash": "sha256-mCjEJNKaeS/BhQQFNSxHfA0/XtujbTAAJpustt1hIxI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "81cbfc8f2a1e218249b7bff74013b63150171496", + "rev": "28d58b979250ef33f049fe1c74daa50b7515126b", "type": "github" }, "original": { @@ -320,11 +320,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1640234302, - "narHash": "sha256-dALA+cOam5jQ2KOYdWiv6H6Y2stcYG6eclWQQVGx/FI=", + "lastModified": 1641104204, + "narHash": "sha256-mCjEJNKaeS/BhQQFNSxHfA0/XtujbTAAJpustt1hIxI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "81cbfc8f2a1e218249b7bff74013b63150171496", + "rev": "28d58b979250ef33f049fe1c74daa50b7515126b", "type": "github" }, "original": { @@ -380,11 +380,11 @@ }, "nixpkgs_7": { "locked": { - "lastModified": 1640234302, - "narHash": "sha256-dALA+cOam5jQ2KOYdWiv6H6Y2stcYG6eclWQQVGx/FI=", + "lastModified": 1641104204, + "narHash": "sha256-mCjEJNKaeS/BhQQFNSxHfA0/XtujbTAAJpustt1hIxI=", "owner": "nixos", "repo": "nixpkgs", - "rev": "81cbfc8f2a1e218249b7bff74013b63150171496", + "rev": "28d58b979250ef33f049fe1c74daa50b7515126b", "type": "github" }, "original": { @@ -396,11 +396,11 @@ }, "nixpkgs_8": { "locked": { - "lastModified": 1640139330, - "narHash": "sha256-Nkp3wUOGwtoQ7EH28RLVJ7EqB/e0TU7VcsM7GLy+SdY=", + "lastModified": 1640959792, + "narHash": "sha256-zYSR//06FU2TDOpKKj0Hkff6unsxk3NwwNFuB1loU6E=", "owner": "nixos", "repo": "nixpkgs", - "rev": "81cef6b70fb5d5cdba5a0fef3f714c2dadaf0d6d", + "rev": "59bfda72480496f32787cec8c557182738b1bd3f", "type": "github" }, "original": { @@ -412,11 +412,11 @@ }, "nixpkgs_9": { "locked": { - "lastModified": 1640139330, - "narHash": "sha256-Nkp3wUOGwtoQ7EH28RLVJ7EqB/e0TU7VcsM7GLy+SdY=", + "lastModified": 1640871638, + "narHash": "sha256-ty6sGnJUQEkCd43At5U3DRQZD7rPARz5VginSW6hZ3k=", "owner": "nixos", "repo": "nixpkgs", - "rev": "81cef6b70fb5d5cdba5a0fef3f714c2dadaf0d6d", + "rev": "5b091d4fbe3b7b7493c3b46fe0842e4b30ea24b3", "type": "github" }, "original": { @@ -428,11 +428,11 @@ }, "nur": { "locked": { - "lastModified": 1640266271, - "narHash": "sha256-LhzidQfDb+w4Y/YFbJ+TtnNGftxTyhERZ51c8fgno8c=", + "lastModified": 1641155785, + "narHash": "sha256-QDnIQ7sfawBaQckDTIQqsSevftrJpxluQUhzX0goWg4=", "owner": "nix-community", "repo": "NUR", - "rev": "f80f18f9a59e34e0932143ddd56a994e7ce08d0d", + "rev": "9dc87bdd533db31f14bd5fdc4f7fb6aab6a40056", "type": "github" }, "original": { @@ -448,11 +448,11 @@ "nixpkgs": "nixpkgs_9" }, "locked": { - "lastModified": 1640247287, - "narHash": "sha256-LjWjopWwbwdLN6Fmct59aJK0LYsUwbIgcQ5sY+n4N0g=", + "lastModified": 1641111239, + "narHash": "sha256-w1jUAuVmImMQGhaUY8dNVAxE4SNULI32RqyRX6DXzBo=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "f8886b6b3cedf8a38dd6daa6dfe64df9c710bd65", + "rev": "5906176ea9464d9a33c229b124fd713584bcfa57", "type": "github" }, "original": { @@ -485,11 +485,11 @@ "nixpkgs": "nixpkgs_10" }, "locked": { - "lastModified": 1640227139, - "narHash": "sha256-FN22WSu7hObDtBvhqNuCAW4qCN+FE9Gv97O8oO1E3L0=", + "lastModified": 1641091280, + "narHash": "sha256-atemDjUQXazv/VQvEb7VC6JQ6oe2n7D2r/09qRsbthc=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "5c8f3e3facc8b2d183bd18bbf9eb760ed37b5a49", + "rev": "13b6bd69cd0ecf985fba18105a23464c5e76b24a", "type": "github" }, "original": { @@ -500,11 +500,11 @@ }, "stable": { "locked": { - "lastModified": 1640077788, - "narHash": "sha256-YMSDk3hlucJTTARaHNOeQEF6zEW3A/x4sXgrz94VbS0=", + "lastModified": 1641046839, + "narHash": "sha256-9XJgfDKU1hhC0E16FxDJe//Utrm79AQxesPhTltwjQ4=", "owner": "nixos", "repo": "nixpkgs", - "rev": "9ab7d12287ced0e1b4c03b61c781901f178d9d77", + "rev": "d1e59cfc49961e121583abe32e2f3db1550fbcff", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 38e6f06..ce4e01e 100644 --- a/flake.nix +++ b/flake.nix @@ -57,7 +57,7 @@ ./modules/nvidia-offload.nix ./modules/sound.nix ./modules/xorg.nix - # ./modules/emacs + ./modules/emacs ]; commonModules = [ ./modules/nvim diff --git a/home/config/xmonad/xmonad.hs b/home/config/xmonad/xmonad.hs index 8238089..a83cf05 100644 --- a/home/config/xmonad/xmonad.hs +++ b/home/config/xmonad/xmonad.hs @@ -59,10 +59,10 @@ myKeys conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $ , ((modMask, xK_p), spawn "mpc toggle") - , ((modMask, xK_n), + , ((modMask, xK_h), spawn "mpc next") - , ((modMask, xK_e), + , ((modMask, xK_k), spawn "mpc prev") , ((modMask .|. shiftMask, xK_a), @@ -110,10 +110,10 @@ myKeys conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $ , ((modMask, xK_r), refresh) - , ((modMask, xK_j), + , ((modMask, xK_n), windows W.focusDown) - , ((modMask, xK_k), windows W.focusUp ) + , ((modMask, xK_e), windows W.focusUp ) , ((modMask .|. shiftMask, xK_h), windows W.focusMaster ) @@ -121,34 +121,34 @@ myKeys conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $ , ((modMask .|. shiftMask, xK_Return), windows W.swapMaster) - , ((modMask .|. shiftMask, xK_j), + , ((modMask .|. shiftMask, xK_n), windows W.swapDown ) - , ((modMask .|. shiftMask, xK_k), + , ((modMask .|. shiftMask, xK_e), windows W.swapUp ) - , ((mod1Mask, xK_h), + , ((mod1Mask, xK_m), sendMessage Expand) - , ((mod1Mask, xK_l), + , ((mod1Mask, xK_i), sendMessage Shrink) - , ((mod1Mask, xK_j), + , ((mod1Mask, xK_n), sendMessage MirrorExpand) - , ((mod1Mask, xK_k), + , ((mod1Mask, xK_e), sendMessage MirrorShrink) - , ((mod1Mask .|. shiftMask, xK_h), + , ((modMask .|. mod1Mask .|. shiftMask, xK_m), withFocused (keysMoveWindow (-30, 0))) - , ((mod1Mask .|. shiftMask, xK_l), + , ((modMask .|. mod1Mask .|. shiftMask, xK_i), withFocused (keysMoveWindow (30, 0))) - , ((mod1Mask .|. shiftMask, xK_j), + , ((modMask .|. mod1Mask .|. shiftMask, xK_n), withFocused (keysMoveWindow (0, 30))) - , ((mod1Mask .|. shiftMask, xK_k), + , ((modMask .|. mod1Mask .|. shiftMask, xK_e), withFocused (keysMoveWindow (0, -30))) , ((modMask, xK_t), diff --git a/home/natto.nix b/home/natto.nix index b595465..ac43846 100644 --- a/home/natto.nix +++ b/home/natto.nix @@ -48,7 +48,6 @@ in xfce.xfconf xfce.tumbler master.discord - customscripts mpd_discord_richpresence sox qbittorrent @@ -94,11 +93,18 @@ in pulseaudio (texlive.combine { inherit (texlive) scheme-small babel lm graphics-def url; }) (qjackctl.override { jackSession = true; }) - ardour carla electrum anki-bin spotify + deluge + teams + libreoffice + google-drive-ocamlfuse + customscripts + stable.ardour + stable.calf + stable.blender ]; file = { diff --git a/hosts/satori/boot.nix b/hosts/satori/boot.nix index 866367c..3c298cd 100644 --- a/hosts/satori/boot.nix +++ b/hosts/satori/boot.nix @@ -2,7 +2,7 @@ { boot = { - kernelPackages = pkgs.unstable.linuxPackages_latest; + kernelPackages = pkgs.unstable.linuxPackages_zen; initrd={ availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" "vfio-pci"]; /* preDeviceCommands = '' @@ -15,7 +15,7 @@ kernelModules = []; }; kernelParams = [ "intel_pstate=active" "intel_iommu=on" ]; - kernelModules = [ "kvm-intel" "snd-seq" "snd-rawmidi" ]; + kernelModules = [ "kvm-intel" "snd-seq" "snd-rawmidi" "joydev" ]; extraModulePackages = with config.boot.kernelPackages; [ nvidia_x11 v4l2loopback]; loader = { efi = { diff --git a/hosts/satori/hardware.nix b/hosts/satori/hardware.nix index 8d71a95..301fc11 100644 --- a/hosts/satori/hardware.nix +++ b/hosts/satori/hardware.nix @@ -29,6 +29,7 @@ fsType = "btrfs"; options = [ "compress-force=zstd:3" ]; }; + swapDevices = [ ]; zramSwap = { enable = true; diff --git a/hosts/satori/networking.nix b/hosts/satori/networking.nix index a2c27ab..50629b9 100644 --- a/hosts/satori/networking.nix +++ b/hosts/satori/networking.nix @@ -1,4 +1,4 @@ -{config, pkgs, ... }: +{ config, pkgs, ... }: { networking = { @@ -13,10 +13,10 @@ enp7s0.useDHCP = true; wlp0s20f3 = { useDHCP = true; - ipv4.addresses = [ { + ipv4.addresses = [{ prefixLength = 24; address = "192.168.0.109"; - } ]; + }]; }; }; wireguard.interfaces.wg0 = { @@ -25,11 +25,11 @@ privateKeyFile = "/var/wg"; peers = [ { - #Oracle VM1 - publicKey = "z0Y2VNEWcyVQVSqRHiwmiJ5/0MgSPM+HZfEcwIccSxM="; - allowedIPs = [ "10.55.0.0/24" ]; - endpoint = "weirdnatto.in:17840"; - persistentKeepalive = 25; + #Oracle VM1 + publicKey = "z0Y2VNEWcyVQVSqRHiwmiJ5/0MgSPM+HZfEcwIccSxM="; + allowedIPs = [ "10.55.0.0/24" ]; + endpoint = "weirdnatto.in:17840"; + persistentKeepalive = 25; } ]; }; diff --git a/hosts/satori/pkgs.nix b/hosts/satori/pkgs.nix index 61e66dc..109696f 100644 --- a/hosts/satori/pkgs.nix +++ b/hosts/satori/pkgs.nix @@ -2,6 +2,7 @@ { environment.systemPackages = with pkgs; [ + w3m tmux bc gnumake @@ -11,6 +12,7 @@ python3 htop nodejs + ghc wget ripgrep kbd @@ -29,10 +31,16 @@ rnix-lsp python3Packages.python-lsp-server haskell-language-server + fly + (steam.override { + extraLibraries = pkgs: [ pkgs.pipewire ]; + extraProfile = '' + unset VK_ICD_FILENAMES + export VK_ICD_FILENAMES=${config.hardware.nvidia.package}/share/vulkan/icd.d/nvidia_icd.json:${config.hardware.nvidia.package.lib32}/share/vulkan/icd.d/nvidia_icd32.json''; + }) ]; programs = { - steam.enable = true; gnupg = { agent = { enableSSHSupport = true; @@ -104,7 +112,7 @@ nix = { package = pkgs.nixUnstable; extraOptions = '' - experimental-features = nix-command ca-references flakes + experimental-features = nix-command flakes ''; trustedUsers = [ "root" "natto" ]; binaryCaches = [ diff --git a/hosts/satori/services.nix b/hosts/satori/services.nix index 115a811..16cbcb8 100644 --- a/hosts/satori/services.nix +++ b/hosts/satori/services.nix @@ -1,7 +1,44 @@ -{lib, config, pkgs, ... }: +{ lib, config, pkgs, ... }: { services = { + /* openvpn.servers = { + satori = { + config = '' + remote weirdnatto.in + dev tun + ifconfig 10.55.0.3 10.55.0.1 + secret /var/secrets/openvpn.key + ''; + }; + };*/ + vault-agent = { + enable = true; + settings = { + vault = { + address = "https://10.55.0.2:8800"; + client_cert = "/var/vault/cert.pem"; + client_key = "/var/vault/key.pem"; + }; + auto_auth = { + method = [ + { + "cert" = { + name = "Satori"; + }; + } + ]; + }; + template = [ + { + source = pkgs.writeText "openvpn.tpl" '' + {{ with secret "kv/openvpn" }}{{ .Data.data.secret }}{{ end }} + ''; + destination = "/var/secrets/openvpn.key"; + } + ]; + }; + }; tor.enable = true; logmein-hamachi.enable = true; openssh = { @@ -18,18 +55,18 @@ }; }; systemd.services = { - tor.wantedBy = lib.mkForce []; - mysql.wantedBy = lib.mkForce []; - logmein-hamachi.wantedBy = lib.mkForce []; - openssh.wantedBy = lib.mkForce []; + tor.wantedBy = lib.mkForce [ ]; + mysql.wantedBy = lib.mkForce [ ]; + logmein-hamachi.wantedBy = lib.mkForce [ ]; + openssh.wantedBy = lib.mkForce [ ]; #printing.wantedBy = lib.mkForce []; #vault.wantedBy = lib.mkForce []; }; security.pki.certificateFiles = [ ../../cert.pem ]; - /* virtualisation.libvirtd = { + /* virtualisation.libvirtd = { enable = true; onBoot = "ignore"; onShutdown = "shutdown"; qemuRunAsRoot = false; - };*/ + };*/ } diff --git a/modules/emacs/#init.el# b/modules/emacs/#init.el# new file mode 100644 index 0000000..a40ed3a --- /dev/null +++ b/modules/emacs/#init.el# @@ -0,0 +1,221 @@ +;; -*- lexical-binding:t -*- + +;;colors +(setq +c-bg "#1d2021" +c-fg "#d5c4a1" +c-red "#cc241d" +c-green "#98971a" +c-yellow "#d79921" +c-blue "#458588" +c-magenta "#b16286" +c-cyan "#689d6a" +c-white "#a89984" +c-black "#928374" +c-red-2 "#fb4934" +c-green-2 "#b8bb26" +c-yellow-2 "#fabd2f" +c-blue-2 "#83a598" +c-magenta-2 "#d3869b" +c-cyan-2 "#8ec07c" +c-white-2 "#ebdbb2") +;;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) +(tab-bar-mode t) +(fringe-mode 0) +(global-display-line-numbers-mode 1) +(setq initial-major-mode 'emacs-lisp-mode) +(setq frame-resize-pixelwise t) +(setq auto-window-vscroll nil) +(setq scroll-step 1) + +;;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 + (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) + (ivy-mode 1)) + +(use-package elcord + :config + (elcord-mode 1)) + +(use-package undo-tree + :config + (global-undo-tree-mode 1)) + +(use-package evil + :config + (evil-set-undo-system 'undo-tree) + (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-display-current-project-exclusively) + (treemacs-git-mode 'deferred)) + +(use-package treemacs-evil + :config + (define-key evil-treemacs-state-map (kbd "n") #'treemacs-next-line) + (define-key evil-treemacs-state-map (kbd "e") #'treemacs-previous-line) + (define-key evil-treemacs-state-map (kbd "M-n") #'treemacs-next-neighbour) + (define-key evil-treemacs-state-map (kbd "M-e") #'treemacs-previous-neighbour) + (define-key evil-treemacs-state-map (kbd "M-N") #'treemacs-next-line-other-window) + (define-key evil-treemacs-state-map (kbd "M-E") #'treemacs-previous-line-other-window) + (define-key evil-treemacs-state-map (kbd "M") #'treemacs-collapse-parent-node) + (evil-define-key 'treemacs treemacs-mode-map (kbd "m") #'treemacs-COLLAPSE-action) + (evil-define-key 'treemacs treemacs-mode-map (kbd "i") #'treemacs-RET-action) + ) + +(use-package lsp-mode + :init + (setq ) + :config + (lsp-mode 1)) + +(use-package lsp-treemacs + :config + (lsp-treemacs-sync-mode 1)) + +(use-package lsp-ui + :init + (setq lsp-ui-doc-show-with-cursor t) + :config + (lsp-ui-peek-enable 1) + (lsp-ui-doc-enable 1)) + +(use-package company + :after lsp-mode + :config + (define-key company-active-map (kbd "C-n") 'company-select-next) + (define-key company-active-map (kbd "C-e") 'company-select-previous) + (define-key company-search-map (kbd "C-n") 'company-select-next) + (define-key company-search-map (kbd "C-e") 'company-select-previous)) + +(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 flex-autopair + :config + (flex-autopair-mode 1)) + +(use-package rainbow-mode + :config + (rainbow-mode 1)) + +(use-package rustic) + +(use-package magit) + +(use-package nix-mode + :mode "\\.nix\\'") + +(defface bufname + `((t :foreground ,c-fg + :background ,c-bg + :weight bold + )) + "Custom face for buffer name" + :group 'mode-line-faces ) + +(defface majmode + `((t :foreground ,c-fg + :background ,c-bg + )) + "Custom face for major mode" + :group 'mode-line-faces ) + +(defface gitmode + `((t :foreground ,c-fg + :background ,c-red-2 + :weight bold + )) + "Custom face for VC" + :group 'mode-line-faces ) +(defface infomode + `((t :foreground ,c-bg + :background ,c-green + :weight bold + )) + "For showing line and column number" + :group 'mode-line-faces ) + + +(setq-default mode-line-format + '((:propertize " %b " face bufname) + (vc-mode (:propertize (" " vc-mode " " ) face gitmode)) + (:propertize (" " mode-name " ") face majmode) + (:propertize ("[[ %l | %c || %p . %+%@ ]]") face infomode) + ("%-"))) + +(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))) +(let ((default-color (cons (face-background 'mode-line) + (face-foreground 'mode-line)))) + (add-hook 'post-command-hook + (lambda () + (let ((color (cond ((minibufferp) default-color) + ((evil-insert-state-p) (cons c-magenta c-fg)) + ((evil-visual-state-p) (cons c-cyan c-fg)) + ((evil-normal-state-p) (cons c-fg c-bg)) + ((buffer-modified-p) (cons c-blue c-fg)) + (t default-color)))) + (set-face-background 'bufname (car color)) + (set-face-foreground 'bufname (cdr color)) + )))) + +;;keybinds + +(add-hook 'emacs-startup-hook (lambda () + (when (get-buffer "*scratch*") + (kill-buffer "*scratch*")))) + +(global-set-key (kbd "M-o") 'treemacs) +(global-set-key (kbd "M-v") 'split-window-vertically) +(global-set-key (kbd "M-h") 'split-window-horizontally) +(global-set-key (kbd "M-C-m") 'shrink-window-horizontally) +(global-set-key (kbd "M-C-i") 'enlarge-window-horizontally) +(global-set-key (kbd "M-C-e") 'shrink-window) +(global-set-key (kbd "M-C-n") 'enlarge-window) +(global-set-key (kbd "C-S-m") 'windmove-left) +(global-set-key (kbd "C-S-i") 'windmove-right) +(global-set-key (kbd "C-S-e") 'windmove-up) +(global-set-key (kbd "C-S-n") 'windmove-down) +(global-set-key (kbd "M-S-,") 'previous-buffer) +(global-set-key (kbd "M-S-.") 'next-buffer) +(global-set-key (kbd "M-C-S-q") '(kill-buffer)) diff --git a/modules/emacs/default.nix b/modules/emacs/default.nix index 243b459..cf9eaec 100644 --- a/modules/emacs/default.nix +++ b/modules/emacs/default.nix @@ -1,56 +1,66 @@ -{pkgs, ... }: +{ pkgs, ... }: { -services.emacs = { - enable = true; - package = with pkgs; emacsWithPackagesFromUsePackage { - config = ./init.el; - package = emacsGcc; - alwaysEnsure = true; - extraEmacsPackages = epkgs: with epkgs; [ - use-package - tsc - ]; + services.emacs = { + enable = true; + package = with pkgs; emacsWithPackagesFromUsePackage { + config = ./init.el; + package = emacsGcc; + alwaysEnsure = true; + extraEmacsPackages = epkgs: with epkgs; [ + use-package + tsc + ]; - #https://github.com/NixOS/nixpkgs/issues/108089 - override = epkgs : epkgs // { - tsc = epkgs.melpaPackages.tsc.overrideAttrs(oa: - let - version = "0.15.2"; - tsc-dyn = 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 = '' - cp ${tsc-dyn} $out/share/emacs/site-lisp/elpa/tsc-${oa.version}/tsc-dyn.so - echo -n ${version} > $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.7"; - src = fetchzip { - url = "https://github.com/emacs-tree-sitter/tree-sitter-langs/releases/download/${version}/tree-sitter-grammars-linux-${version}.tar.gz"; - sha256 = "sha256-pdSMyTUUAj4JsRLbJMUMbQSOaSEYlsaqVdmaXtXtSJw="; - stripRoot = false; - }; - installPhase = '' - install -d $out/langs/bin - install -m444 * $out/langs/bin - ''; - postInstall = '' - 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\"" - ''; - }); - gruvbox-theme = epkgs.melpaPackages.gruvbox-theme.overrideAttrs(_: { patches = [ ./gruvbox-el.patch ]; } ); + #https://github.com/NixOS/nixpkgs/issues/108089 + override = epkgs: epkgs // { + tsc = epkgs.melpaPackages.tsc.overrideAttrs (oa: + let + version = "0.16.1"; + tsc-dyn = fetchurl { + url = "https://github.com/emacs-tree-sitter/elisp-tree-sitter/releases/download/${version}/tsc-dyn.so"; + sha256 = "sha256-l2mVxnnO43rzLWbOAnX5UZ0a7uk0EPE2x0Jl9rd2D1A="; + }; + in + { + postInstall = '' + cp ${tsc-dyn} $out/share/emacs/site-lisp/elpa/tsc-${oa.version}/tsc-dyn.so + echo -n ${version} > $out/share/emacs/site-lisp/elpa/tsc-${oa.version}/DYN-VERSION + ''; + }); + tree-sitter-langs = epkgs.melpaPackages.tree-sitter-langs.overrideAttrs (oa: + let + version = "0.10.14"; + tree-sitter-grammars = super.stdenv.mkDerivation rec { + inherit version; + name = "tree-sitter-grammars"; + src = fetchzip { + url = "https://github.com/emacs-tree-sitter/tree-sitter-langs/releases/download/${version}/tree-sitter-grammars-linux-${version}.tar.gz"; + sha256 = "sha256-J8VplZWhyWN8ur74Ep0CTl4nPtESzfs2Gh6MxfY5Zqc="; + stripRoot = false; + }; + installPhase = '' + install -d $out/langs/bin + echo -n "${version}" > $out/langs/bin/BUNDLE-VERSION + install -m444 * $out/langs/bin + ''; + }; + in + { + src = fetchFromGitHub { + owner = "emacs-tree-sitter"; + repo = "tree-sitter-langs"; + rev = version; + sha256 = "sha256-uKfkhcm1k2Ov4fSr7ALVnpQoX/l9ssEWMn761pa7Y/c="; + }; + postPatch = '' + 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\"" + ''; + }); + gruvbox-theme = epkgs.melpaPackages.gruvbox-theme.overrideAttrs (_: { patches = [ ./gruvbox-el.patch ]; }); + }; }; - };}; + }; } + + diff --git a/modules/emacs/init.el b/modules/emacs/init.el index 49337d6..1751834 100644 --- a/modules/emacs/init.el +++ b/modules/emacs/init.el @@ -1,5 +1,4 @@ ;; -*- lexical-binding:t -*- - ;;colors (setq c-bg "#1d2021" @@ -24,7 +23,8 @@ c-white-2 "#ebdbb2") (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) +(scroll-bar-mode 0) +(tool-bar-mode 0) (menu-bar-mode 0) (fringe-mode 0) (global-display-line-numbers-mode 1) @@ -73,10 +73,10 @@ c-white-2 "#ebdbb2") (use-package treemacs :config (treemacs-filewatch-mode 1) +; (treemacs-display-current-project-exclusively) (treemacs-git-mode 'deferred)) -(use-package treemacs-evil - :config +(use-package treemacs-evil :config (define-key evil-treemacs-state-map (kbd "n") #'treemacs-next-line) (define-key evil-treemacs-state-map (kbd "e") #'treemacs-previous-line) (define-key evil-treemacs-state-map (kbd "M-n") #'treemacs-next-neighbour) @@ -89,18 +89,30 @@ c-white-2 "#ebdbb2") ) (use-package lsp-mode + :init + (setq ) :config (lsp-mode 1)) (use-package lsp-treemacs :config - (lsp-treemacs-sync-mode)) + (lsp-treemacs-sync-mode 1)) (use-package lsp-ui + :init + (setq lsp-ui-doc-show-with-cursor t) :config (lsp-ui-peek-enable 1) (lsp-ui-doc-enable 1)) +(use-package company + :after lsp-mode + :config + (define-key company-active-map (kbd "C-n") 'company-select-next) + (define-key company-active-map (kbd "C-e") 'company-select-previous) + (define-key company-search-map (kbd "C-n") 'company-select-next) + (define-key company-search-map (kbd "C-e") 'company-select-previous)) + (use-package tree-sitter-langs) (use-package tree-sitter @@ -128,6 +140,23 @@ c-white-2 "#ebdbb2") (use-package nix-mode :mode "\\.nix\\'") +(use-package projectile) + +(use-package vterm) + +(use-package vterm-toggle + :config + (setq vterm-toggle-fullscreen-p nil) + (add-to-list 'display-buffer-alist + '((lambda(bufname _) (with-current-buffer bufname (equal major-mode 'vterm-mode))) + (display-buffer-reuse-window display-buffer-at-bottom) + (reusable-frames . visible) + (window-height . 0.4))) + (global-set-key [f1] 'vterm-toggle) + (global-set-key [C-f1] 'vterm-toggle-cd) + (define-key vterm-mode-map (kbd "C-N") 'vterm-toggle-forward) + (define-key vterm-mode-map (kbd "C-E") 'vterm-toggle-backward)) + (defface bufname `((t :foreground ,c-fg :background ,c-bg @@ -135,7 +164,6 @@ c-white-2 "#ebdbb2") )) "Custom face for buffer name" :group 'mode-line-faces ) - (defface majmode `((t :foreground ,c-fg :background ,c-bg @@ -183,3 +211,19 @@ c-white-2 "#ebdbb2") (set-face-background 'bufname (car color)) (set-face-foreground 'bufname (cdr color)) )))) + +;;keybinds +(global-set-key (kbd "M-o") 'treemacs) +(global-set-key (kbd "M-v") 'split-window-vertically) +(global-set-key (kbd "M-h") 'split-window-horizontally) +(global-set-key (kbd "M-C-m") 'shrink-window-horizontally) +(global-set-key (kbd "M-C-i") 'enlarge-window-horizontally) +(global-set-key (kbd "M-C-e") 'shrink-window) +(global-set-key (kbd "M-C-n") 'enlarge-window) +(global-set-key (kbd "C-S-m") 'windmove-left) +(global-set-key (kbd "C-S-i") 'windmove-right) +(global-set-key (kbd "C-S-e") 'windmove-up) +(global-set-key (kbd "C-S-n") 'windmove-down) +(global-set-key (kbd "M->") 'previous-buffer) +(global-set-key (kbd "M-<") 'next-buffer) +(global-set-key (kbd "M-C-S-q") 'kill-buffer) diff --git a/modules/nvidia-offload.nix b/modules/nvidia-offload.nix index c9865d1..e3505b8 100644 --- a/modules/nvidia-offload.nix +++ b/modules/nvidia-offload.nix @@ -15,8 +15,7 @@ in hardware = { opengl = { driSupport32Bit = true; - #package = pkgs.mesa_drivers; - extraPackages32 = with pkgs.pkgsi686Linux; [ libva ]; + # extraPackages32 = with pkgs.pkgsi686Linux; [ libva ]; enable = true; }; nvidia = { diff --git a/modules/sound.nix b/modules/sound.nix index 1c95413..cd8e574 100644 --- a/modules/sound.nix +++ b/modules/sound.nix @@ -12,7 +12,7 @@ jack.enable = true; socketActivation = true; - # https://nixos.wiki/wiki/PipeWire#Low-latency_setup + # https://nixos.wiki/wiki/PipeWire#Low-latency_setup config.pipewire = { context.objects = [ { @@ -20,7 +20,7 @@ args = { factory.name = "support.node.driver"; node.name = "Dummy-Driver"; - priority.driver = 8000; + priority.driver= 8000; }; } ]; diff --git a/nohup.out b/nohup.out new file mode 100644 index 0000000..b50b017 --- /dev/null +++ b/nohup.out @@ -0,0 +1,11 @@ +Error while parsing hooks JSON. Error: "ENOENT: no such file or directory, open '/home/natto/.config/Microsoft/Microsoft Teams/hooks.json'" +(node:5989) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead. +(node:5989) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 ecsSettingsUpdated listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit +(node:5989) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 appInitialized listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit +Error while parsing hooks JSON. Error: "ENOENT: no such file or directory, open '/home/natto/.config/Microsoft/Microsoft Teams/hooks.json'" +(node:6134) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead. +[5989:0101/032649.226286:FATAL:gpu_data_manager_impl_private.cc(442)] GPU process isn't usable. Goodbye. +Cannot upload crash dump: cannot exec /usr/bin/wget +Server response: +Cannot upload crash dump: cannot exec /usr/bin/wget +Server response: diff --git a/overlays/customscripts/src/gdfuse b/overlays/customscripts/src/gdfuse new file mode 100644 index 0000000..7066d40 --- /dev/null +++ b/overlays/customscripts/src/gdfuse @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +su $USERNAME -l -c "google-drive-ocamlfuse -label $1 $*" +exit 0