Compare commits

..

33 Commits

Author SHA1 Message Date
48feb223f1 Pin eshell-p10k version 2025-10-23 11:22:51 -07:00
9dfd55ada4 Move org-agenda-mode-map to separate use-package statement 2025-10-23 10:59:08 -07:00
2b0ca519c6 Better org save behavior 2025-10-20 15:03:32 -07:00
2973596913 Stricter training wheels for command-as-meta 2025-10-20 15:03:09 -07:00
7344512c3a Fix yas bash snippets 2025-10-12 13:48:06 -07:00
c534cc12bb Add Emacs reset script 2025-10-12 13:24:12 -07:00
7209b28ab8 Fix elpaca error 2025-10-12 13:23:43 -07:00
61f1b88d27 Make Elpaca stop whining 2025-10-12 13:07:55 -07:00
6b3b3200ba Wider default Emacs frame 2025-10-12 13:07:40 -07:00
0cdb39c77b Save org buffers when TODO stage changes 2025-10-12 13:02:45 -07:00
8a8cacdeba Flake update 2025-10-05 17:05:48 -07:00
ca58e6726c New version of ,nixup that works to bootstrap 2025-10-05 17:05:23 -07:00
71d134f1ea Remove nushell configuration 2025-10-05 13:02:19 -07:00
9b874e216f Move fish from module directory to module file 2025-10-05 13:01:53 -07:00
c85cc3e30c Org-agenda 2025-10-05 13:00:03 -07:00
8a4cb11fe2 Emacs: Swap Command Key behavior on Mac 2025-10-05 13:00:03 -07:00
d723fdc625 Replace Tide with Starship 2025-10-05 13:00:03 -07:00
3a67bbb607 Flake update
Replaced ncdu with ncdu_1 because of Zig incompatibility with older MacOS
2025-10-05 13:00:03 -07:00
1800015afa Enable narrow-to-region 2025-10-03 11:46:04 -07:00
192a6f721e Add svelte/typescript support 2025-10-03 11:45:59 -07:00
f43323b8f1 Remove AIDER 2025-10-01 14:55:27 -07:00
c390cfaf10 Disable Hyperbole 2025-10-01 14:50:24 -07:00
29c549d541 Org Agenda 2025-10-01 14:49:20 -07:00
3859972b60 Improve outline navigation behavior 2025-06-28 01:22:59 -07:00
cd54ba5eb9 Add LSP config for basedpyright 2025-06-25 22:31:12 -07:00
40bfd1cdf6 Rollback devenv config 2025-06-25 22:30:54 -07:00
51ccb26c4b Re-sourcing of fish config 2025-06-25 14:53:24 -07:00
dd5f1f9e6b Only enable Aider if gemini API key file exists 2025-06-25 14:22:03 -07:00
e928c69376 Devenv config 2025-06-24 21:02:49 -07:00
bc6aa384a7 Fix matching for eshell popup in popper config 2025-06-24 19:42:50 -07:00
6ec43a8375 Eshell C-d to exit 2025-06-21 22:10:48 -07:00
8c6fccb87d More eshell window management tweaks 2025-06-21 21:50:02 -07:00
60b8734695 Just support 2025-06-21 21:49:48 -07:00
15 changed files with 375 additions and 262 deletions

4
.justfile Normal file
View File

@@ -0,0 +1,4 @@
# Run home-manager switch to update Nix environment
nixup:
cd "{{justfile_directory()}}`/nix" && home-manager switch --flake ".#std"

View File

@@ -3,7 +3,9 @@
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
pushd $SCRIPT_DIR/../nix &> /dev/null
if which home-manager &> /dev/null; then
home-manager switch --flake ".#std"
if which doom; then
doom env
else
nix run home-manager/master -- switch --flake ".#std"
fi

1
emacs/.gitignore vendored
View File

@@ -2,6 +2,7 @@
!.gitignore
!*.org
!*.el
!reset.sh
!.gitkeep
!snippets/
!snippets/**

View File

@@ -63,6 +63,9 @@
(use-package seq :ensure `(seq :build ,(+elpaca-seq-build-steps)))
(use-package transient :ensure t)
;; Required for magit, but Elpaca seems unable to find it by default
(use-package cond-let :ensure (:host github :repo "tarsius/cond-let"))
;;; OS-specific tweaks
(defconst ON-LINUX (eq system-type 'gnu/linux))
(defconst ON-MAC (eq system-type 'darwin))
@@ -107,8 +110,11 @@
("C-o 1" . delete-other-windows)
("C-o t" . tab-bar-new-tab)
("C-o ]" . tab-bar-switch-to-next-tab)
("M-)" . tab-bar-switch-to-next-tab)
("M-(" . tab-bar-switch-to-prev-tab)
("C-o [" . tab-bar-switch-to-prev-tab)
("C-o T" . tab-bar-close-tab)
("C-o T" . tab-bar-undo-close-tab)
("C-o w" . tab-bar-close-tab)
;; TODO C-/ for undo window state change
("C-o z" . my/zoom-window)
;; TODO other-window scrolling
@@ -132,7 +138,34 @@
;; Use right-option as regular option on Mac
(setq ns-alternate-modifier 'meta)
(setq ns-right-alternate-modifier 'none)
(setq ns-right-command-modifier 'meta)
(setq ns-command-modifier 'meta)
(setq ns-right-command-modifier 'super)
;;;;; Training wheels
(defun cmd-key-reminder (keybind emacs-alternative)
"Display a beep and reminder message for macOS muscle memory keys.
KEYBIND is the key combination pressed (e.g., 'Cmd-S').
EMACS-ALTERNATIVE is the Emacs equivalent (e.g., 'C-s')."
(beep)
(message "Muscle memory! Use %s instead of %s" emacs-alternative keybind))
;; Define reminders for common macOS shortcuts
(global-set-key (kbd "s-s") (lambda () (interactive)
(cmd-key-reminder "Cmd-S" "C-x C-s (save-buffer)")))
(global-set-key (kbd "s-z") (lambda () (interactive)
(cmd-key-reminder "Cmd-Z" "C-/ (undo)")))
(global-set-key (kbd "s-x") (lambda () (interactive)
(cmd-key-reminder "Cmd-X" "C-w (kill-region)")))
(global-set-key (kbd "s-c") (lambda () (interactive)
(cmd-key-reminder "Cmd-C" "M-w (copy-region-as-kill)")))
(global-set-key (kbd "s-v") (lambda () (interactive)
(cmd-key-reminder "Cmd-V" "C-y (yank)")))
(global-set-key (kbd "s-a") (lambda () (interactive)
(cmd-key-reminder "Cmd-A" "C-x h (mark-whole-buffer)")))
(global-set-key (kbd "s-0") (lambda () (interactive)
(cmd-key-reminder "Cmd-0" "C-x 0 (text-scale-adjust)")))
(global-set-key (kbd "s-t") (lambda () (interactive)
(cmd-key-reminder "Cmd-T" "C-o t (tab-bar-new-tab)")))
;;; Editing
;;;; MWIM
@@ -240,7 +273,12 @@
(use-package outli
:ensure (:host github :repo "jdtsmith/outli")
:bind (:map outli-mode-map
("C-c C-p" . (lambda () (interactive) (outline-back-to-heading))))
("C-c C-p" . (lambda () (interactive) (outline-back-to-heading)))
;; Stop outline navigation from capturing C-p and C-n, which makes it
;; difficult to navigate into a section
:map outline-navigation-repeat-map
("C-p" . nil)
("C-n" . nil))
:hook ((prog-mode . outli-mode)
(text-mode . outli-mode)))
@@ -437,7 +475,7 @@
(modify-all-frames-parameters '((alpha 99 99)
(top . 50)
(left . 100)
(width . 120)
(width . 190)
(height . 60)))
;;;; Fonts
@@ -512,7 +550,7 @@
"\\*Flycheck errors\\*"
help-mode
compilation-mode
"\\*eshell-popup\\*" eshell-mode))
"eshell-popup\\*$"))
(defun my/popper-window-height (window)
"Make eshell popups take half the frame height, otherwise defer to popper--fit-window-height"
@@ -655,6 +693,7 @@
;;;; Hyperbole
(use-package hyperbole
:if nil
:ensure (:repo "https://git.savannah.gnu.org/git/hyperbole.git" :tag "hyperbole-9.0.1")
:bind (("C-o h" . hyperbole)
("C-o w" . hycontrol-windows)
@@ -669,11 +708,26 @@
;;;; Emacs Server
(server-start)
;;;; Just
(use-package just-mode
:ensure t)
(use-package justl
:ensure t
:bind (("C-c j" . justl-exec-default-recipe)
("C-c J" . justl)))
;;;; Manually Enabled Commands
;; Enable narrow-to-region (C-x n n)
(put 'narrow-to-region 'disabled nil)
;;; Org-mode
(use-package org
:bind (("C-c o ," . my/org-clear-all)
("C-c o s" . org-screenshot)
("C-c SPC" . org-table-blank-field)
("C-o a" . org-agenda)
("C-o d" . my/org-agenda-today)
;; Unbind to make room for avy and mwim
:map org-mode-map
("C-j" . nil)
@@ -683,13 +737,30 @@
("C-c C-c" . org-edit-src-exit))
:hook ((org-mode . visual-line-mode))
:custom
(org-agenda-files '("~/Seafile/Notes/TODO.org"))
(org-special-ctrl-a/e 'reversed)
(org-hide-emphasis-markers t)
(org-use-speed-commands t)
(add-to-list 'org-speed-commands '("h" . org-fold-hide-sublevels))
(org-use-fast-todo-selection 'expert)
(org-todo-keywords '((sequence "TODO(t)" "BLOCKED(b)" "|" "DONE(d)")))
(org-image-actual-width '(800)))
(org-use-property-inheritance '("STYLE"))
(org-image-actual-width '(800))
(org-agenda-custom-commands
'(("d" "Today's agenda and unscheduled TODOs"
((agenda "" ((org-agenda-span 1)))
(todo "TODO" ((org-agenda-skip-function '(org-agenda-skip-entry-if 'scheduled 'deadline))))))))
:config
(defun my/org-agenda-today ()
"Show org agenda for today only."
(interactive)
(org-agenda nil "d"))
(add-hook 'org-after-todo-state-change-hook #'org-save-all-org-buffers))
(use-package org-agenda
:bind (:map org-agenda-mode-map
("C-x C-s" . org-save-all-org-buffers)))
(use-package org-bullets
:ensure t
@@ -813,6 +884,13 @@
(setq major-mode-remap-alist
'((python-mode . python-ts-mode)))
(use-package lsp-pyright
:ensure t
:custom (lsp-pyright-langserver-command "basedpyright")
:hook (python-ts-mode . (lambda ()
(require 'lsp-pyright)
(lsp))))
(setq lsp-pylsp-plugins-flake8-ignore '("D100" "D101" "D102"))
@@ -906,20 +984,16 @@
:ensure t
:hook emacs-lisp-mode))
;;;; PHP
;;;; Web
;;;;; PHP
(use-package php-mode
:ensure t)
;;;; Aider
(use-package aider
:ensure t
:config
(setq aider-args
'("--model" "gemini/gemini-2.5-flash-preview-05-20"))
(setenv "GEMINI_API_KEY"
(with-temp-buffer
(insert-file-contents "~/.gemini")
(buffer-string)))
(global-set-key (kbd "C-c a") 'aider-transient-menu))
;;;;; Svelte
(use-package svelte-mode
:ensure t)
(use-package typescript-mode
:ensure t)
;;; Eshell
;;;; Eshell
(require 'cl-lib)
@@ -929,8 +1003,57 @@
when (string-match regexp (buffer-name (window-buffer window)))
thereis window))
(defun my/split-largest-eshell-and-focus ()
"Find the largest eshell window in the current frame, split it
along its longest dimension, and create a new eshell in the
split. The new eshell uses the `default-directory` of the
buffer that was current when this command was invoked. Finally,
the new eshell window is selected."
(interactive)
(let* ((starting-dir default-directory)
(largest-eshell-window
(cl-loop with max-area = 0
with largest-win = nil
for win in (window-list)
when (with-current-buffer (window-buffer win)
(eq major-mode 'eshell-mode))
do (let ((area (* (window-total-width win) (window-total-height win))))
(when (> area max-area)
(setq max-area area)
(setq largest-win win)))
finally return largest-win))
(new-window
(with-selected-window largest-eshell-window
(if (> (window-total-width) (* 2 (window-total-height)))
(split-window-right)
(split-window-below)))))
(select-window new-window)
(let ((default-directory starting-dir))
(eshell t))))
(defun my/eshell-delete-char-or-exit ()
"In Eshell, exit if at an empty prompt, otherwise delete a character."
(interactive)
;; Check if the cursor is at the end of the buffer AND right after the prompt marker.
;; This is the condition for being on a clean, empty prompt.
(if (and (eobp)
(save-excursion
(let ((orig (point)))
(beginning-of-line)
(= (point) orig))))
(progn
(kill-this-buffer)
(when (not (one-window-p))
(delete-window)))
(delete-char 1)))
(use-package eshell
:bind (("M-`" . my/eshell-toggle))
:bind (("M-`" . my/eshell-toggle)
:map eshell-mode-map
("C-S-<return>" . my/split-largest-eshell-and-focus)
("C-d" . my/eshell-delete-char-or-exit))
:config
(setq eshell-destroy-buffer-when-process-dies t
eshell-scroll-to-bottom-on-input t
@@ -1002,7 +1125,7 @@ any directory proffered by `consult-dir'."
`(rxt-elisp-to-pcre (rx ,@rx-sexp))))
(use-package eshell-p10k
:ensure (:host github :repo "elken/eshell-p10k")
:ensure (:host github :repo "elken/eshell-p10k" :ref "fce701187de408e7b23884169ea597a49a2d3205")
:config
(eshell-p10k-def-segment time
""

12
emacs/reset.sh Executable file
View File

@@ -0,0 +1,12 @@
#!/usr/bin/env bash
# See https://stackoverflow.com/a/246128/3561275
SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )"
SOURCE="$(readlink "$SOURCE")"
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )"
pushd $DIR &>/dev/null && rm -rf eln-cache elpa elpaca elpaca.lock && popd &> /dev/null

View File

@@ -1,5 +1,5 @@
# -*- mode: snippet -*-
# name: bang
# name: shebang
# key: !
# --
#!/usr/bin/env bash

View File

@@ -1,6 +1,6 @@
# -*- mode: snippet -*-
# name: the currently executing/sourced script's directory
# key: script-dir
# name: current script's directory
# key: sdir
# --
# See https://stackoverflow.com/a/246128/3561275
SOURCE="\${BASH_SOURCE[0]}"

View File

@@ -0,0 +1 @@
sh-mode

View File

@@ -19,3 +19,10 @@ compile_commands.json
infer-out
.cache
.aider*
# Devenv
.devenv*
devenv.local.nix
# pre-commit
.pre-commit-config.yaml

18
nix/flake.lock generated
View File

@@ -7,11 +7,11 @@
]
},
"locked": {
"lastModified": 1740725613,
"narHash": "sha256-j6HoX1k4+alRX35/Z/K+kfqfWytNLcO+eBOnyoh42iw=",
"lastModified": 1744007427,
"narHash": "sha256-eccCwW7GQVSk/WOCxt5izY5VdVknheI3oAXa0Xg9k9U=",
"owner": "slotThe",
"repo": "emacs-lsp-booster-flake",
"rev": "007bdf3f48a28f611fdfe0b480534cc110637043",
"rev": "8229947cf6d2f565a9aa882b7946c643099e1ef0",
"type": "github"
},
"original": {
@@ -27,11 +27,11 @@
]
},
"locked": {
"lastModified": 1743136572,
"narHash": "sha256-uwaVrKgi6g1TUq56247j6QvvFtYHloCkjCrEpGBvV54=",
"lastModified": 1759702766,
"narHash": "sha256-011pCUbIq/fhCiZ20AzqJYNjLzQ1oYkzYEgzcUYVTBg=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "1efd2503172016a6742c87b47b43ca2c8145607d",
"rev": "5b45dcf4790bb94fec7e550d2915fc2540a3cdd6",
"type": "github"
},
"original": {
@@ -42,11 +42,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1743076231,
"narHash": "sha256-yQugdVfi316qUfqzN8JMaA2vixl+45GxNm4oUfXlbgw=",
"lastModified": 1759632233,
"narHash": "sha256-krgZxGAIIIKFJS+UB0l8do3sYUDWJc75M72tepmVMzE=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "6c5963357f3c1c840201eda129a99d455074db04",
"rev": "d7f52a7a640bc54c7bb414cca603835bf8dd4b10",
"type": "github"
},
"original": {

View File

@@ -21,17 +21,17 @@
duf
# Better top
htop
ncdu
# ncdu_1 because ncdu is incompatible with older MacOS versions due to some Zig bug
ncdu_1
ripgrep
nerd-fonts.fira-code
roboto-mono
aider-chat
sops
just
];
imports = [
./modules/fish
./modules/nushell
./modules/fish.nix
./modules/kitty
./modules/git.nix
./modules/direnv.nix

182
nix/modules/fish.nix Normal file
View File

@@ -0,0 +1,182 @@
{ config, lib, pkgs, ... }:
let tide_conf = builtins.readFile ./tide_config.fish; in
{
programs.zoxide.enableFishIntegration = true;
programs.kitty.shellIntegration.enableFishIntegration = true;
programs.fzf = {
enable = true;
enableFishIntegration = false;
};
programs.starship = {
enable = true;
enableFishIntegration = true;
settings = {
palettes.thoom = {
directory_bg = "#3465A4";
directory_fg = "#E4E4E4";
git_bg = "#4E9A06";
git_fg = "#000000";
prog_bg = "#212736";
prog_fg = "#769ff0";
duration_bg = "#C4A000";
duration_fg = "#000000";
user_bg = "#394260";
user_fg = "";
time_bg = "#D3D7CF";
time_fg = "#000000";
prompt_fg = "#00ff00";
prompt_bg = "none";
};
palette = "thoom";
format = lib.concatStrings [
"[](fg:directory_bg)"
"$directory"
"[](fg:directory_bg bg:git_bg)"
"$git_branch"
"$git_status"
"[](fg:git_bg bg:prog_bg)"
"$nodejs"
"$rust"
"[](fg:prog_bg)"
"$fill"
"[](fg:duration_bg bg:none)"
"$cmd_duration"
"[](bg:duration_bg fg:user_bg)"
"$username"
"$hostname"
"[](bg:user_bg fg:time_bg)"
"$time"
"[](fg:time_bg bg: none)"
"$line_break"
"$character"
];
directory = {
style = "fg:directory_fg bg:directory_bg";
format = "[ $path( $read_only) ]($style)";
truncation_length = 5;
truncation_symbol = "/";
substitutions = {
"Documents" = "󰈙";
"Downloads" = "󰇚";
};
};
git_branch = {
symbol = "";
style = "fg:git_fg bg:git_bg";
format = "[ $symbol $branch ]($style)";
};
git_status = {
style = "fg:git_fg bg:git_bg";
format = "[($all_status$ahead_behind )]($style)";
};
nodejs = {
symbol = "";
style = "bg:prog_bg fg:prog_fg";
format = "[ $symbol ($version) ]($style)";
};
rust = {
symbol = "";
style = "fg:prog_fg bg:prog_bg";
format = "[ $symbol ($version) ]($style)";
};
cmd_duration = {
min_time = 5000; # Show for commands taking > 5 seconds
style = "bg:duration_bg fg:duration_fg";
format = "[ took $duration ]($style)";
};
username = {
show_always = false;
style_user = "bg:user_bg";
style_root = "bg:user_bg";
format = "[ $user@]($style)";
disabled = false;
};
hostname = {
ssh_only = true;
style = "bg:user_bg";
format = "[$hostname ]($style)";
disabled = false;
};
time = {
disabled = false;
time_format = "%r";
style = "fg:time_fg bg:time_bg";
format = "[ $time ]($style)";
};
};
};
programs.fish = {
enable = true;
plugins = [
{
# https://github.com/lilyball/nix-env.fish
name = "nix-env";
src = pkgs.fetchFromGitHub {
owner = "lilyball";
repo = "nix-env.fish";
rev = "7b65bd228429e852c8fdfa07601159130a818cfa";
sha256 = "sha256-RG/0rfhgq6aEKNZ0XwIqOaZ6K5S4+/Y5EEMnIdtfPhk=";
};
}
{
# https://github.com/PatrickF1/fzf.fish
name = "fzf";
src = pkgs.fishPlugins.fzf-fish.src;
}
];
shellInit = ''
# Undo stupid home-manager behavior of refusing to let the init file be re-sourced
set -e __fish_home_manager_config_sourced
set --universal fish_greeting
set -g -x EDITOR "emacsclient -a \"emacs -nw\""
set -g -x ALTERNATE_EDITOR "vim"
set -g -x TERMINAL "kitty"
set -g -x LESS "--ignore-case --QUIET --RAW-CONTROL-CHARS"
set -g -x MANPAGER "sh -c 'col -bx | bat -l man -p'"
set -g -x MANROFFOPT "-c"
set -g -x BAT_THEME "ansi"
fish_add_path --path ~/.dotfiles/bin ~/.local/bin ~/bin
# If running under kitty, fake the term for ssh to avoid
# having to install terminfo on remote machine
function ssh --wraps ssh
if test $TERM = xterm-kitty
set --function --export TERM xterm-256color
end
command ssh $argv
end
if test -f $HOME/.cargo/env.fish
source "$HOME/.cargo/env.fish"
end
if test -f $HOME/.local.fish
source $HOME/.local.fish
end
'';
shellAliases = {
ec = "emacsclient -n --alternate-editor=\"emacs -nw\"";
src = "source $HOME/.config/fish/config.fish";
pubip = "curl icanhazip.com";
};
};
}

View File

@@ -1,82 +0,0 @@
{ config, lib, pkgs, ... }:
let tide_conf = builtins.readFile ./tide_config.fish; in
{
programs.zoxide.enableFishIntegration = true;
programs.kitty.shellIntegration.enableFishIntegration = true;
programs.fzf = {
enable = true;
enableFishIntegration = false;
};
programs.fish = {
enable = true;
plugins = [
{
# https://github.com/lilyball/nix-env.fish
name = "nix-env";
src = pkgs.fetchFromGitHub {
owner = "lilyball";
repo = "nix-env.fish";
rev = "7b65bd228429e852c8fdfa07601159130a818cfa";
sha256 = "sha256-RG/0rfhgq6aEKNZ0XwIqOaZ6K5S4+/Y5EEMnIdtfPhk=";
};
}
{
# https://github.com/IlanCosman/tide
name = "tide";
src = pkgs.fetchFromGitHub {
owner = "IlanCosman";
repo = "tide";
rev = "13fa55ef109009e04e6e5fabda0d0e662b4e6315";
sha256 = "sha256-+6LdcFLqDzUcCmBoKO4LDH5+5odqVqUb1NmEVNMEMjs=";
};
}
{
# https://github.com/PatrickF1/fzf.fish
name = "fzf";
src = pkgs.fishPlugins.fzf-fish.src;
}
];
shellInit = ''
set --universal fish_greeting
set -g -x EDITOR "vim"
set -g -x ALTERNATE_EDITOR "vim"
set -g -x TERMINAL "kitty"
set -g -x LESS "--ignore-case --QUIET --RAW-CONTROL-CHARS"
set -g -x MANPAGER "sh -c 'col -bx | bat -l man -p'"
set -g -x MANROFFOPT "-c"
set -g -x BAT_THEME "ansi"
fish_add_path --path ~/.dotfiles/bin ~/.local/bin ~/bin
# If running under kitty, fake the term for ssh to avoid
# having to install terminfo on remote machine
function ssh --wraps ssh
if test $TERM = xterm-kitty
set --function --export TERM xterm-256color
end
command ssh $argv
end
if test -f $HOME/.cargo/env.fish
source "$HOME/.cargo/env.fish"
end
if test -f $HOME/.local.fish
source $HOME/.local.fish
end
${builtins.readFile ./tide_config.fish}
'';
shellAliases = {
ec = "emacsclient -n --alternate-editor=emacs";
pubip = "curl icanhazip.com";
redesktop = "kquitapp5 plasmashell && kstart5 plasmashell";
pulsefix = "pulseaudio --kill; pulseaudio --start";
};
};
}

View File

@@ -1,123 +0,0 @@
set --universal tide_character_color 5FD700
set --universal tide_character_color_failure FF0000
set --universal tide_character_icon \u276f
set --universal tide_character_vi_icon_default \u276e
set --universal tide_character_vi_icon_replace \u25b6
set --universal tide_character_vi_icon_visual V
set --universal tide_cmd_duration_bg_color C4A000
set --universal tide_cmd_duration_color 000000
set --universal tide_cmd_duration_decimals 0
set --universal tide_cmd_duration_icon \x1d
set --universal tide_cmd_duration_threshold 3000
set --universal tide_context_always_display false
set --universal tide_context_bg_color 444444
set --universal tide_context_color_default D7AF87
set --universal tide_context_color_root D7AF00
set --universal tide_context_color_ssh D7AF87
set --universal tide_crystal_bg_color FFFFFF
set --universal tide_crystal_color 000000
set --universal tide_crystal_icon \u2b22
set --universal tide_docker_bg_color 2496ED
set --universal tide_docker_color 000000
set --universal tide_docker_default_contexts default\x1ecolima
set --universal tide_docker_icon \uf308
set --universal tide_git_bg_color 4E9A06
set --universal tide_git_bg_color_unstable C4A000
set --universal tide_git_bg_color_urgent CC0000
set --universal tide_git_color_branch 000000
set --universal tide_git_color_conflicted 000000
set --universal tide_git_color_dirty 000000
set --universal tide_git_color_operation 000000
set --universal tide_git_color_staged 000000
set --universal tide_git_color_stash 000000
set --universal tide_git_color_untracked 000000
set --universal tide_git_color_upstream 000000
set --universal tide_git_icon \x1d
set --universal tide_git_truncation_length 24
set --universal tide_go_bg_color 00ACD7
set --universal tide_go_color 000000
set --universal tide_go_icon \ue627
set --universal tide_java_bg_color ED8B00
set --universal tide_java_color 000000
set --universal tide_java_icon \ue256
set --universal tide_jobs_bg_color 444444
set --universal tide_jobs_color 4E9A06
set --universal tide_jobs_icon \uf013
set --universal tide_kubectl_bg_color 326CE5
set --universal tide_kubectl_color 000000
set --universal tide_kubectl_icon \u2388
set --universal tide_left_prompt_frame_enabled false
set --universal tide_left_prompt_items pwd\x1egit\x1enewline\x1echaracter
set --universal tide_left_prompt_prefix \ue0b6
set --universal tide_left_prompt_separator_diff_color \ue0b0
set --universal tide_left_prompt_separator_same_color \ue0b1
set --universal tide_left_prompt_suffix \ue0b0
set --universal tide_nix_shell_bg_color 7EBAE4
set --universal tide_nix_shell_color 000000
set --universal tide_nix_shell_icon \uf313
set --universal tide_node_bg_color 44883E
set --universal tide_node_color 000000
set --universal tide_node_icon \u2b22
set --universal tide_os_bg_color 333333
set --universal tide_os_color D6D6D6
set --universal tide_os_icon \uf179
set --universal tide_php_bg_color 617CBE
set --universal tide_php_color 000000
set --universal tide_php_icon \ue608
set --universal tide_private_mode_bg_color F1F3F4
set --universal tide_private_mode_color 000000
set --universal tide_private_mode_icon \ufaf8
set --universal tide_prompt_add_newline_before true
set --universal tide_prompt_color_frame_and_connection 6C6C6C
set --universal tide_prompt_color_separator_same_color 949494
set --universal tide_prompt_icon_connection \x20
set --universal tide_prompt_min_cols 34
set --universal tide_prompt_pad_items true
set --universal tide_pwd_bg_color 3465A4
set --universal tide_pwd_color_anchors E4E4E4
set --universal tide_pwd_color_dirs E4E4E4
set --universal tide_pwd_color_truncated_dirs BCBCBC
set --universal tide_pwd_icon \x1d
set --universal tide_pwd_icon_home \x1d
set --universal tide_pwd_icon_unwritable \uf023
set --universal tide_pwd_markers \x2ebzr\x1e\x2ecitc\x1e\x2egit\x1e\x2ehg\x1e\x2enode\x2dversion\x1e\x2epython\x2dversion\x1e\x2eruby\x2dversion\x1e\x2eshorten_folder_marker\x1e\x2esvn\x1e\x2eterraform\x1eCargo\x2etoml\x1ecomposer\x2ejson\x1eCVS\x1ego\x2emod\x1epackage\x2ejson
set --universal tide_right_prompt_frame_enabled false
set --universal tide_right_prompt_items status\x1ecmd_duration\x1econtext\x1ejobs\x1enode\x1evirtual_env\x1erustc\x1ejava\x1ephp\x1echruby\x1ego\x1ekubectl\x1etoolbox\x1eterraform\x1eaws\x1enix_shell\x1ecrystal\x1etime
set --universal tide_right_prompt_prefix \ue0b2
set --universal tide_right_prompt_separator_diff_color \ue0b2
set --universal tide_right_prompt_separator_same_color \ue0b3
set --universal tide_right_prompt_suffix \ue0b4
set --universal tide_rustc_bg_color F74C00
set --universal tide_rustc_color 000000
set --universal tide_rustc_icon \ue7a8
set --universal tide_shlvl_bg_color 808000
set --universal tide_shlvl_color 000000
set --universal tide_shlvl_icon \uf120
set --universal tide_shlvl_threshold 1
set --universal tide_status_bg_color 2E3436
set --universal tide_status_bg_color_failure CC0000
set --universal tide_status_color 4E9A06
set --universal tide_status_color_failure FFFF00
set --universal tide_status_icon \u2714
set --universal tide_status_icon_failure \u2718
set --universal tide_time_bg_color D3D7CF
set --universal tide_time_color 000000
set --universal tide_time_format \x25r
set --universal tide_toolbox_bg_color 613583
set --universal tide_toolbox_color 000000
set --universal tide_toolbox_icon \u2b22
set --universal tide_vi_mode_bg_color_default 949494
set --universal tide_vi_mode_bg_color_insert 87AFAF
set --universal tide_vi_mode_bg_color_replace 87AF87
set --universal tide_vi_mode_bg_color_visual FF8700
set --universal tide_vi_mode_color_default 000000
set --universal tide_vi_mode_color_insert 000000
set --universal tide_vi_mode_color_replace 000000
set --universal tide_vi_mode_color_visual 000000
set --universal tide_vi_mode_icon_default D
set --universal tide_vi_mode_icon_insert I
set --universal tide_vi_mode_icon_replace R
set --universal tide_vi_mode_icon_visual V
set --universal tide_virtual_env_bg_color 444444
set --universal tide_virtual_env_color 00AFAF
set --universal tide_virtual_env_icon \ue73c

View File

@@ -1,14 +0,0 @@
{ config, lib, pkgs, ... }:
{
programs.zoxide.enableNushellIntegration = true;
programs.direnv.enableNushellIntegration = true;
programs.nushell = {
enable = true;
shellAliases = {
ec = "emacsclient -n --alternate-editor=emacs";
pubip = "curl icanhazip.com";
};
};
}