diff --git a/.local/bin/qalctex b/.local/bin/qalctex new file mode 100755 index 0000000..e349e28 --- /dev/null +++ b/.local/bin/qalctex @@ -0,0 +1,91 @@ +#!/bin/python + +import subprocess +import re + +# Dictionary for symbol conversion to LaTeX format +latex_symbols = { + "Ω": r"\Omega", + "ohm": r"\Omega", + "A": r"\text{A}", + "V": r"\text{V}", + "*": r"\cdot", + "N*m": r"\text{N} \cdot \text{m}", + "in*lb": r"\text{in} \cdot \text{lb}", + "||": r"\|", +} + + +def run_qalc(expression): + # Run qalc with the provided expression + result = subprocess.run(["qalc", expression], stdout=subprocess.PIPE, text=True) + output = result.stdout + return output + + +def format_expression_for_latex(expression): + # Replace the units and special characters in the input expression using the dictionary + for symbol, latex_symbol in latex_symbols.items(): + expression = expression.replace(symbol, latex_symbol) + + return expression + + +def format_result_for_latex(output): + # Get the last line of qalc output (the answer) + output = output.strip().split("\n")[-1] + + # Check if the result is approximate (contains "≈") + approx_match = "≈" in output + + # Extract the value and unit from the result + match = re.search(r"(≈|=)\s*([-\d\.]+)\s*(.*)", output) + if match: + _, value, unit = match.groups() + # Replace the units and special characters using the dictionary + unit = unit.strip() + for symbol, latex_symbol in latex_symbols.items(): + unit = unit.replace(symbol, latex_symbol) + + # Use = or \approx in LaTeX based on whether the result is approximate + equal_symbol = r"\approx" if approx_match else "=" + + # Only add \, if there's a unit + if unit: + latex_result = f"{equal_symbol} {value.strip()} \\, {unit}" + else: + latex_result = f"{equal_symbol} {value.strip()}" + + return latex_result + return output # Fallback to returning the raw qalc output if no match + + +def copy_to_clipboard(text): + # Use wl-copy to send the text to the clipboard + subprocess.run(["wl-copy"], input=text, text=True) + + +def main(): + # Input the qalc expression + expression = input("Enter qalc expression: ") + + # Run qalc and get the result + qalc_output = run_qalc(expression) + + # Format the input expression for LaTeX + latex_expression = format_expression_for_latex(expression) + + # Format the output result for LaTeX + latex_result = format_result_for_latex(qalc_output) + + # Combine both input expression and result for final LaTeX output + final_latex_output = f"${latex_expression} {latex_result}$" + + # Print and copy to clipboard + print(f"Final LaTeX output:\n{final_latex_output}") + copy_to_clipboard(final_latex_output) + print("LaTeX result copied to clipboard!") + + +if __name__ == "__main__": + main() diff --git a/.ssh/config b/.ssh/config index 5d8e7a9..4d3a44f 100644 --- a/.ssh/config +++ b/.ssh/config @@ -12,6 +12,10 @@ host edge HostName 10.85.5.52 User joe +host bitwarden + HostName 10.85.3.83 + User joe + host frigate IdentityFile ~/.ssh/hydroxonium HostName 10.85.3.22 @@ -123,6 +127,12 @@ Host stdocker1 HostName 10.20.30.225 IdentityFile ~/.ssh/stdocker +# Little mini-pc in the IOT room +Host pioremote + # This is actually a zerotier ip + HostName 10.144.0.15 + IdentityFile ~/.ssh/silvertech/silvertech + # Work laptop Host workLaptop HostName 10.144.236.234 diff --git a/.zshrc b/.zshrc index 3909862..1a76186 100644 --- a/.zshrc +++ b/.zshrc @@ -5,6 +5,7 @@ fortune -a # Add my bins to path path+=("$HOME/.local/bin") +path+=("$HOME/Pictures/Furry/Scripts") export PATH # Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.