This commit is contained in:
Jeffrey Serio 2024-04-01 16:37:50 -05:00
parent c8eceb6841
commit 406b019fec
4 changed files with 112 additions and 52 deletions

122
config.nu
View File

@ -7,6 +7,11 @@ def 'is-installed' [ app: string ] {
((which $app | length) > 0) ((which $app | length) > 0)
} }
# Global vars and consts
let hostn = (sys | get host.hostname)
const MODDIR = ($nu.default-config-dir | path join "modules")
# #
# MODULES # MODULES
# #
@ -20,13 +25,39 @@ use ~/.config/nushell/modules/ultimate-extractor.nu extract
# ssh # ssh
use ~/.config/nushell/modules/ssh.nu use ~/.config/nushell/modules/ssh.nu
# Source distro-specific modules
const DEBIAN_CONF = ($MODDIR | path join "debian.nu")
const REDHAT_CONF = ($MODDIR | path join "redhat.nu")
const DISTRO_CONFIG = if ("/etc/debian_version" | path exists) {
$DEBIAN_CONF
} else if ("/etc/redhat-release" | path exists) {
$REDHAT_CONF
} else {
$nu.env-path
}
source $DISTRO_CONFIG
# #
# ALIASES / CUSTOM COMMANDS # ALIASES / CUSTOM COMMANDS
# #
# Custom commands for Doom Emacs
def doomdoc [] { ~/.config/emacs/bin/doom doctor }
def dsync [] { ~/.config/emacs/bin/doom sync }
def dclean [] { ~/.config/emacs/bin/doom clean }
def dcomp [] { ~/.config/emacs/bin/doom compile }
def dpurge [] { ~/.config/emacs/bin/doom purge }
def denv [] { ~/.config/emacs/bin/doom env }
def dupgrade [] { ~/.config/emacs/bin/doom upgrade }
# weather # weather
export alias weather = get_weather export alias weath = get_weather
# firewalld aliases
export alias fw = sudo firewall-cmd
export alias fwp = sudo firewall-cmd --permanent
export alias fwr = sudo firewall-cmd --reload
export alias fwrp = sudo firewall-cmd --runtime-to-permanent
# Git aliases # Git aliases
export alias ga = git add export alias ga = git add
@ -47,54 +78,30 @@ export alias ll = ls -l
export alias lal = ls -al export alias lal = ls -al
export alias lse = ^ls -lZ export alias lse = ^ls -lZ
# Doom Emacs # Copy trimmed GPG fingerprint to clipboard
def doomdoc [] { ~/.config/emacs/bin/doom doctor } def gpgfpr [] {
def dsync [] { ~/.config/emacs/bin/doom sync } gpg -K --with-colons
def dclean [] { ~/.config/emacs/bin/doom clean } | jc --gpg
def dcomp [] { ~/.config/emacs/bin/doom compile } | from json
def dpurge [] { ~/.config/emacs/bin/doom purge } | get 1.user_id
def denv [] { ~/.config/emacs/bin/doom env } | xclip -sel clipboard
def dupgrade [] { ~/.config/emacs/bin/doom upgrade } }
# firewalld
export alias fw = sudo firewall-cmd
export alias fwp = sudo firewall-cmd --permanent
export alias fwr = sudo firewall-cmd --reload
export alias fwrp = sudo firewall-cmd --runtime-to-permanent
# Execute bash on host (atomic desktop)
export alias hostexec = distrobox-host-exec bash
# APT
export alias acs = sudo apt-cache search
export alias acp = sudo apt-cache policy
export alias afs = sudo apt-file search
export alias afu = sudo apt-file update
export alias aac = sudo apt autoclean
export alias agc = sudo apt clean
export alias agi = sudo apt install
export alias agli = sudo apt list --installed
export alias agp = sudo apt purge
export alias agr = sudo apt remove
export alias agu = sudo apt update
export alias agud = sudo apt update and sudo apt dist-upgrade
export alias agar = sudo apt autoremove
# DNF
export alias dnfc = sudo dnf clean all
export alias dnfi = sudo dnf install
export alias dnfu = sudo dnf update
export alias dnfr = sudo dnf remove
export alias dnfs = sudo dnf search
# Copy SSH public key to clipboard # Copy SSH public key to clipboard
def pubkey [] { open --raw ~/.ssh/id_ed25519.pub | str trim | xclip -selection clipboard } def pubkey [] {
open --raw ~/.ssh/id_ed25519.pub
| str trim
| xclip -selection clipboard
}
# Get public ip info # Get public ip info
def pubip [] { curl --silent ipinfo.io | from json } def pubip [] { curl --silent ipinfo.io | from json }
# Get Mullvad info # Get Mullvad info
def amimullvad [] { curl -sSL https://am.i.mullvad.net/json | from json } def amimullvad [] {
curl -sSL https://am.i.mullvad.net/json
| from json
}
# Uptime info # Uptime info
def upt [] { jc uptime | from json } def upt [] { jc uptime | from json }
@ -103,16 +110,28 @@ def upt [] { jc uptime | from json }
def dfj [] { jc df | from json } def dfj [] { jc df | from json }
# /etc/fstab info # /etc/fstab info
def etc-fstab [] { open --raw /etc/fstab | jc --fstab | from json } def etc-fstab [] {
open --raw /etc/fstab
| jc --fstab
| from json
}
# memory free info # memory free info
def memfree [] { jc free | from json } def memfree [] { jc free | from json }
# /etc/group # /etc/group
def etc-group [] { open --raw /etc/group | jc --group | from json } def etc-group [] {
open --raw /etc/group
| jc --group
| from json
}
# /etc/passwd # /etc/passwd
def etc-passwd [] { open --raw /etc/passwd | jc --passwd | from json } def etc-passwd [] {
open --raw /etc/passwd
| jc --passwd
| from json
}
# Network connections # Network connections
def netcons [] { jc lsof -i | from json } def netcons [] { jc lsof -i | from json }
@ -121,7 +140,11 @@ def netcons [] { jc lsof -i | from json }
def tulp [] { jc ss -tulp | from json } def tulp [] { jc ss -tulp | from json }
# Open ports # Open ports
def openports [] { sudo jc lsof -i | from json | find "LISTEN" } def openports [] {
sudo jc lsof -i
| from json
| find "LISTEN"
}
# List sockets in use # List sockets in use
def lsock [] { sudo jc lsof -nP | from json } def lsock [] { sudo jc lsof -nP | from json }
@ -142,7 +165,10 @@ def --env mkd [path] { mkdir $path; cd $path }
def pids [cmd] { ps | where name == "$cmd" } def pids [cmd] { ps | where name == "$cmd" }
# Get time in specific time zone # Get time in specific time zone
def whattimein [string] { date now | date to-timezone $string } def whattimein [string] {
date now
| date to-timezone $string
}
# cd to home and clear screen # cd to home and clear screen
def --env rsrc [] { cd $env.HOME; clear } def --env rsrc [] { cd $env.HOME; clear }
@ -198,7 +224,7 @@ def yaml2json [filename: path] {
} }
# Download a file with httpie # Download a file with httpie
def htdl [url: string] { def httpie [url: string] {
^http -d $url ^http -d $url
} }

22
env.nu
View File

@ -51,7 +51,7 @@ def is-container [] {
} }
def create_user_host [] { def create_user_host [] {
let user_host = (ansi red) + (whoami) + (ansi reset) + '@' + (ansi blue) + (sys | get host.hostname) + (ansi reset) let user_host = (ansi red) + (whoami) + (ansi reset) + '@' + (ansi "#89b4fa") + (sys | get host.hostname) + (ansi reset)
let container_segment = (ansi green_bold) + "⬢ " + (ansi reset) let container_segment = (ansi green_bold) + "⬢ " + (ansi reset)
let user_host_segment = (if (is-container) { ($container_segment + $user_host) | str join } else { $user_host }) let user_host_segment = (if (is-container) { ($container_segment + $user_host) | str join } else { $user_host })
@ -99,7 +99,21 @@ $env.NU_PLUGIN_DIRS = [
] ]
# Doom Emacs # Doom Emacs
$env.DOOMDIR = ($env.HOME | path join 'sync/doom') $env.DOOMDIR = ($env.HOME | path join "sync/doom")
# To add entries to PATH (on Windows you might use Path), you can use the following pattern: # Various paths
# $env.PATH = ($env.PATH | split row (char esep) | prepend '/some/path') $env.CARGO_HOME = ($env.HOME | path join ".cargo")
# PATH
use std "path add"
path add ($env.CARGO_HOME | path join "bin")
path add ($env.HOME | path join "go" "bin")
path add ($env.HOME | path join "bin")
path add ($env.HOME | path join ".local" "bin")
path add /usr/bin
path add /usr/sbin
path add /usr/local/bin
$env.PATH = ($env.PATH | uniq)
# LS_COLORS using vivid
$env.LS_COLORS = (vivid generate catppuccin-mocha | str trim)

14
modules/debian.nu Normal file
View File

@ -0,0 +1,14 @@
# Aliases for APT
export alias acs = sudo apt-cache search
export alias acp = sudo apt-cache policy
export alias afs = sudo apt-file search
export alias afu = sudo apt-file update
export alias aac = sudo apt autoclean
export alias agc = sudo apt clean
export alias agi = sudo apt install
export alias agli = sudo apt list --installed
export alias agp = sudo apt purge
export alias agr = sudo apt remove
export alias agu = sudo apt update
export alias agud = sudo apt update and sudo apt dist-upgrade
export alias agar = sudo apt autoremove

6
modules/redhat.nu Normal file
View File

@ -0,0 +1,6 @@
# Aliases for DNF
export alias dnfc = sudo dnf clean all
export alias dnfi = sudo dnf install
export alias dnfu = sudo dnf update
export alias dnfr = sudo dnf remove
export alias dnfs = sudo dnf search