diff --git a/desktop/software/default.nix b/desktop/software/default.nix index 0d64064..81992c8 100644 --- a/desktop/software/default.nix +++ b/desktop/software/default.nix @@ -30,7 +30,6 @@ in rclone signal-desktop spotify-player - starship stow tor-browser vlc @@ -51,6 +50,35 @@ in programs.kdeconnect.enable = true; home = { + programs.fish = { + enable = true; + interactiveShellInit = '' + set -U fish_greeting + starship init fish | source + ''; + }; + programs.starship = { + enable = true; + enableFishIntegration = true; + settings = { + format = "[$username](green)@[$hostname](red)[\\[$directory\\]](cyan bold)$all"; + username = { + show_always = true; + format = "$user"; + }; + hostname = { + ssh_only = false; + format = "$hostname"; + }; + directory.format = "$path"; + character = { + format = "$symbol "; + success_symbol = "\\\$"; + error_symbol = "[\\\$](red)"; + }; + git_branch.format = "[$symbol$branch(:$remote_branch)]($style)"; + }; + }; programs.librewolf = { enable = true; settings = { diff --git a/desktop/software/development.nix b/desktop/software/development.nix index aca62d5..09edff4 100644 --- a/desktop/software/development.nix +++ b/desktop/software/development.nix @@ -32,6 +32,7 @@ in ]; home = { + xdg.configFile."emacs/init.el".source = ../../dotfiles/emacs/init.el; programs.vscode = { enable = true; package = pkgs.vscodium; diff --git a/dotfiles/emacs/init.el b/dotfiles/emacs/init.el new file mode 100644 index 0000000..19952a9 --- /dev/null +++ b/dotfiles/emacs/init.el @@ -0,0 +1,161 @@ +;; .emacs + +;; Initialize straight.el +(defvar bootstrap-version) +(let ((bootstrap-file + (expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory)) + (bootstrap-version 6)) + (unless (file-exists-p bootstrap-file) + (with-current-buffer + (url-retrieve-synchronously + "https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el" + 'silent 'inhibit-cookies) + (goto-char (point-max)) + (eval-print-last-sexp))) + (load bootstrap-file nil 'nomessage)) + +;; GCMH - Do this at the beginning so we can maybe start up a bit +;; faster +(straight-use-package 'gcmh) +(gcmh-mode 1) + +;; use-package +(straight-use-package 'use-package) + +;; Packages +;; Major modes +(straight-use-package 'markdown-mode) +(straight-use-package 'rust-mode) +(straight-use-package 'haskell-mode) +(straight-use-package 'fish-mode) +(straight-use-package 'yaml-mode) +(straight-use-package 'cmake-mode) + +(define-minor-mode remove-trailing-whitespace-mode + "Minor mode to remove trailing whitespace on every save" + (add-hook 'before-save-hook 'delete-trailing-whitespace)) + +(add-hook 'prog-mode-hook 'remove-trailing-whitespace-mode) + +;; Other stuff +(straight-use-package 'better-defaults) +(straight-use-package 'delight) +(straight-use-package 'doom-themes) +(straight-use-package 'undo-tree) +(straight-use-package 'multiple-cursors) +(straight-use-package 'which-key) +(straight-use-package 'rainbow-delimiters) +(straight-use-package 'hl-todo) +(straight-use-package 'orderless) +(straight-use-package 'vertico) +(straight-use-package 'consult) +(straight-use-package 'marginalia) +(straight-use-package 'embark) +(straight-use-package 'embark-consult) +(straight-use-package 'company) +(straight-use-package 'lsp-mode) +(straight-use-package 'speed-type) +(straight-use-package 'magit) +(straight-use-package 'restart-emacs) +;; (straight-use-package 'mingus) +(straight-use-package 'ace-window) +;; (straight-use-package 'projectile) +;; (straight-use-package 'osm) +(straight-use-package 'editorconfig) +(straight-use-package 'exec-path-from-shell) +(straight-use-package 'pyvenv) +(straight-use-package 'ellama) +(straight-use-package 'proof-general) + +;; Emacs Configuration +(setq inhibit-splash-screen t) +(setq scroll-step 1) +(recentf-mode 1) +(global-auto-revert-mode 1) +(put 'narrow-to-region 'disabled nil) +(global-unset-key (kbd "C-z")) +(setq mac-command-modifier 'meta + mac-option-modifier nil) +;; (set-face-attribute 'default nil :height 140) + +(setq use-package-compute-statistics t) + +(use-package display-line-numbers-mode + :hook (prog-mode text-mode conf-mode)) + +(use-package hl-line-mode + :hook (prog-mode text-mode conf-mode)) + +(use-package gcmh + :delight) + +(use-package exec-path-from-shell + :config + (when (memq window-system '(mac ns)) + (exec-path-from-shell-initialize))) + +(use-package undo-tree + :config + (global-undo-tree-mode) + :custom + (undo-tree-auto-save-history nil) + :delight) + +(use-package which-key + :config + (which-key-mode) + :delight) + +(use-package doom-themes + :config + (load-theme 'doom-one t)) + +(use-package better-defaults) + +(use-package multiple-cursors + :bind (("C-x C-l" . mc/edit-lines) + ("C-x C-n" . mc/mark-next-like-this) + ("C-x C-p" . mc/mark-previous-like-this))) + +(use-package rainbow-delimiters-mode + :hook prog-mode) + +(use-package hl-todo-mode + :hook prog-mode) + +(use-package orderless + :custom (completion-styles '(orderless))) + +(use-package vertico + :init + (ido-mode 0) + (vertico-mode)) + +(use-package consult + :bind (("C-c i" . consult-imenu) + ("C-x b" . consult-buffer))) + +(use-package marginalia + :init + (marginalia-mode 1)) + +(use-package company + :config + (global-company-mode) + :bind (("C-." . company-complete))) + +(use-package ace-window + :custom + (aw-keys '(?h ?i ?e ?a ?t ?r ?n ?s)) + :bind (("C-x o" . ace-window))) + +(use-package editorconfig + :config + (editorconfig-mode 1) + :delight) + +(use-package embark + :bind (("C-M-x" . embark-act))) + +(electric-indent-mode -1) +(remove-hook 'before-save-hook 'delete-trailing-whitespace)