Merge branch 'master' of github.com:JakeGinesin/nix-dots

This commit is contained in:
2025-10-18 00:44:28 -04:00
18 changed files with 345 additions and 162 deletions

17
flake.lock generated
View File

@@ -155,6 +155,22 @@
"type": "github"
}
},
"nixpkgs-signal": {
"locked": {
"lastModified": 1760284886,
"narHash": "sha256-TK9Kr0BYBQ/1P5kAsnNQhmWWKgmZXwUQr4ZMjCzWf2c=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "cf3f5c4def3c7b5f1fc012b3d839575dbe552d43",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "cf3f5c4def3c7b5f1fc012b3d839575dbe552d43",
"type": "github"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1751274312,
@@ -210,6 +226,7 @@
"home-manager": "home-manager_2",
"nixpkgs": "nixpkgs_2",
"nixpkgs-clisp": "nixpkgs-clisp",
"nixpkgs-signal": "nixpkgs-signal",
"verus-flake": "verus-flake"
}
},

View File

@@ -17,6 +17,10 @@
nixpkgs-clisp.url = "github:NixOS/nixpkgs/da320e5472f021b96a883f71fc525ca0e4815273";
# pin only signal versions jake likes. recall, you must back up .config/Signal when changing this
# this ver includes triple ratchet
nixpkgs-signal.url = "github:NixOS/nixpkgs/cf3f5c4def3c7b5f1fc012b3d839575dbe552d43";
verus-flake.url = "github:JakeGinesin/verus-flake";
};
outputs = {
@@ -26,6 +30,7 @@
agenix,
emacs-overlay,
nixpkgs-clisp,
nixpkgs-signal,
verus-flake,
} @ inputs: let
system = "x86_64-linux";
@@ -43,6 +48,7 @@
emacs-overlay.overlay
(final: _prev: {
clisp = nixpkgs-clisp.legacyPackages.${system}.clisp;
signal-desktop = nixpkgs-signal.legacyPackages.${system}.signal-desktop;
})
];
environment.systemPackages = [

View File

@@ -119,6 +119,7 @@ in {
sage
yq
semgrep
tectonic
# texlive.combined.scheme-full
# security
@@ -142,6 +143,7 @@ in {
postman
nuclei
subfinder
hcxtools
]
++ (
with lib; let

View File

@@ -77,150 +77,153 @@ in {
display: none !important
}
'';
bookmarks = [
{
name = "Bar";
toolbar = true;
bookmarks = [
{
name = "nixos";
bookmarks = [
{
name = "noogle";
url = "https://noogle.dev/";
}
{
name = "home manager options";
url = "https://home-manager-options.extranix.com/";
}
{
name = "nixpkgs";
url = "https://search.nixos.org/packages";
}
{
name = "dots";
url = "https://github.com/JakeGinesin/nix-dots";
}
{
name = "nix options";
url = "https://search.nixos.org/options";
}
{
name = "old packages";
url = "https://lazamar.co.uk/nix-versions/";
}
];
}
{
name = "cmu";
bookmarks = [
{
name = "computing facilities";
url = "https://computing.cs.cmu.edu/landing/student";
}
{
name = "csd phd resources";
url = "https://www.cs.cmu.edu/~csd-grad/";
}
{
name = "general phd resources";
url = "https://csd.cmu.edu/academics/doctoral-resources";
}
# {
# name = "cmu orders";
# url = "https://rams.srv.cs.cmu.edu/ords/";
# }
{
name = "cmu sio";
url = "https://s3.andrew.cmu.edu/sio";
}
{
name = "husker";
url = "https://www.husker.nu";
}
{
name = "mit library experts";
url = "https://libraries.mit.edu/experts/";
}
{
name = "cmu canvas";
url = "https://canvas.cmu.edu/";
}
{
name = "cmu email";
url = "https://email.cmu.edu";
}
{
name = "grfp";
url = "https://www.research.gov/grfp/Login.do"; # your tax dollars fund my phd loser. pay big sam up.
}
{
name = "cmueats";
url = "https://cmueats.com/";
}
{
name = "cmucourses";
url = "https://cmucourses.com/";
}
];
}
{
name = "solvers";
bookmarks = [
{
name = "GPT";
url = "https://chatgpt.com"; # sam altman is a horrible person and i cannot wait for the day i can ditch this shit
}
{
name = "claude";
url = "https://claude.ai";
}
{
name = "gemini";
url = "https://gemini.google.com";
}
];
}
{
name = "verus";
bookmarks = [
{
name = "verus playground";
url = "https://play.verus-lang.org/?version=stable&mode=basic&edition=2021";
}
{
name = "verus docs";
url = "https://verus-lang.github.io/verus/guide/verus_macro_intro.html";
}
{
name = "verus zulip";
url = "https://verus-lang.zulipchat.com/#feed";
}
{
name = "vstd docs";
url = "https://verus-lang.github.io/verus/verusdoc/vstd/index.html";
}
{
name = "core docs";
url = "https://doc.rust-lang.org/1.88.0/core/index.html";
}
{
name = "verus github";
url = "https://github.com/verus-lang/verus";
}
];
}
{
name = "cal";
url = "https://calendar.google.com/";
}
{
name = "performance";
url = "about:processes";
}
];
}
];
bookmarks = {
force = true;
settings = [
{
name = "Bar";
toolbar = true;
bookmarks = [
{
name = "nixos";
bookmarks = [
{
name = "noogle";
url = "https://noogle.dev/";
}
{
name = "home manager options";
url = "https://home-manager-options.extranix.com/";
}
{
name = "nixpkgs";
url = "https://search.nixos.org/packages";
}
{
name = "dots";
url = "https://github.com/JakeGinesin/nix-dots";
}
{
name = "nix options";
url = "https://search.nixos.org/options";
}
{
name = "old packages";
url = "https://lazamar.co.uk/nix-versions/";
}
];
}
{
name = "cmu";
bookmarks = [
{
name = "computing facilities";
url = "https://computing.cs.cmu.edu/landing/student";
}
{
name = "csd phd resources";
url = "https://www.cs.cmu.edu/~csd-grad/";
}
{
name = "general phd resources";
url = "https://csd.cmu.edu/academics/doctoral-resources";
}
# {
# name = "cmu orders";
# url = "https://rams.srv.cs.cmu.edu/ords/";
# }
{
name = "cmu sio";
url = "https://s3.andrew.cmu.edu/sio";
}
{
name = "husker";
url = "https://www.husker.nu";
}
{
name = "mit library experts";
url = "https://libraries.mit.edu/experts/";
}
{
name = "cmu canvas";
url = "https://canvas.cmu.edu/";
}
{
name = "cmu email";
url = "https://email.cmu.edu";
}
{
name = "grfp";
url = "https://www.research.gov/grfp/Login.do"; # your tax dollars fund my phd loser. pay big sam up.
}
{
name = "cmueats";
url = "https://cmueats.com/";
}
{
name = "cmucourses";
url = "https://cmucourses.com/";
}
];
}
{
name = "solvers";
bookmarks = [
{
name = "GPT";
url = "https://chatgpt.com"; # sam altman is a horrible person and i cannot wait for the day i can ditch this shit
}
{
name = "claude";
url = "https://claude.ai";
}
{
name = "gemini";
url = "https://gemini.google.com";
}
];
}
{
name = "verus";
bookmarks = [
{
name = "verus playground";
url = "https://play.verus-lang.org/?version=stable&mode=basic&edition=2021";
}
{
name = "verus docs";
url = "https://verus-lang.github.io/verus/guide/verus_macro_intro.html";
}
{
name = "verus zulip";
url = "https://verus-lang.zulipchat.com/#feed";
}
{
name = "vstd docs";
url = "https://verus-lang.github.io/verus/verusdoc/vstd/index.html";
}
{
name = "core docs";
url = "https://doc.rust-lang.org/1.88.0/core/index.html";
}
{
name = "verus github";
url = "https://github.com/verus-lang/verus";
}
];
}
{
name = "cal";
url = "https://calendar.google.com/";
}
{
name = "performance";
url = "about:processes";
}
];
}
];
};
settings = {
### This is all aesthetic stuff
# for tiling window managers expands to the size of the window

View File

@@ -31,6 +31,8 @@
black
nodejs_22
latexrun
tectonic
texpresso
# gh
];
@@ -39,6 +41,18 @@
vim-airline-themes
plenary-nvim
nvim-web-devicons
{
plugin = smear-cursor-nvim;
config = toLuaFile ./plugins/smear.lua;
}
# {
# plugin = neovide;
# config = toLuaFile ./plugins/neovide.lua;
# }
# { worthless plugin don't use
# plugin = mini-animate;
# config = toLuaFile ./plugins/mini-animate.lua;
# }
{
plugin = telescope-nvim;
config = toLuaFile ./plugins/telescope.lua;

View File

@@ -0,0 +1,19 @@
-- require('mini.animate').setup()
-- require('mini.animate').setup({
-- cursor = {
-- enable = true,
-- },
-- scroll = {
-- enable = false,
-- },
-- resize = {
-- enable = false,
-- },
-- open = {
-- enable = false,
-- },
-- close = {
-- enable = false,
-- },
-- })

View File

View File

@@ -0,0 +1,10 @@
require('smear_cursor').setup({
scroll_buffer_space = false,
smear_between_buffers = false,
smear_between_neighbor_lines = false,
stiffness = 0.5,
trailing_stiffness = 0.5,
matrix_pixel_threshold = 0.5,
damping = 0.95,
smear_insert_mode = false,
})

View File

@@ -7,33 +7,45 @@ vim.g.vimtex_view_method = 'zathura'
vim.g.vimtex_view_general_viewer = 'zathura'
vim.g.vimtex_view_general_options = '--unique file:@pdf#src:@line@tex'
-- Set the TeX flavor and quickfix mode.
vim.g.tex_flavor = 'latex'
vim.g.vimtex_quickfix_mode = 0
vim.g.vimtex_quickfix_enabled = 0
-- Compiler backend.
vim.g.vimtex_compiler_method = 'latexmk'
-- vim.g.vimtex_compiler_method = 'latexmk'
vim.g.vimtex_quickfix_autoclose_after_keystrokes = 3
vim.g.vimtex_compiler_method = "tectonic"
vim.g.vimtex_compiler_tectonic = {
options = {
"--keep-intermediates", -- faster compile times
"--keep-logs",
"--synctex",
"-Z shell-escape",
-- "-Z deterministic-mode", -- breaks synctex
},
}
-- Set the local leader (default is "\"; here we change it to comma).
vim.g.maplocalleader = ','
-- Configure warnings to ignore.
vim.g.Tex_IgnoredWarnings = [[
Package hyperref Warning
Token not allowed in a PDF string (Unicode)
removing math shift
removing superscript
Underfull
Overfull
specifier changed to
You have requested
Missing number, treated as zero.
There were undefined references
Citation %.%# undefined
Double space found.
]]
vim.g.Tex_IgnoreLevel = 8
-- vim.g.Tex_IgnoredWarnings = [[
-- Package hyperref Warning
-- Token not allowed in a PDF string (Unicode)
-- removing math shift
-- removing superscript
-- Underfull
-- Overfull
-- specifier changed to
-- You have requested
-- Missing number, treated as zero.
-- There were undefined references
-- Citation %.%# undefined
-- Double space found.
-- ]]
-- vim.g.Tex_IgnoreLevel = 8
-- Delete extra compilation files when a TeX buffer is deleted.
vim.api.nvim_create_autocmd("BufDelete", {

View File

@@ -209,10 +209,12 @@ super + {ctrl} + {k}
# search for current semester area, then open terminal wherever it is
super + {ctrl} + {c}
find /home/synchronous/current-semester -follow -maxdepth 1 | cut -c36- | sed '/^[[:space:]]*$/d' | rofi -dmenu | read csem && alacritty --working-directory "/home/synchronous/current-semester/$csem";
cs-browser
# find /home/synchronous/current-semester -follow -maxdepth 1 | cut -c36- | sed '/^[[:space:]]*$/d' | rofi -dmenu | read csem && alacritty --working-directory "/home/synchronous/current-semester/$csem";
super + {alt} + {c}
find /home/synchronous/current-semester -follow -maxdepth 1 | cut -c36- | sed '/^[[:space:]]*$/d' | rofi -dmenu | read rsem; yq ".url" "/home/synchronous/current-semester/$rsem/info.yaml" | xargs firefox
cs-firefox
# find /home/synchronous/current-semester -follow -maxdepth 1 | cut -c36- | sed '/^[[:space:]]*$/d' | rofi -dmenu | read rsem; yq ".url" "/home/synchronous/current-semester/$rsem/info.yaml" | xargs firefox
# sh /home/synchronous/.scripts/vimwiki/open_todo.sh
super + {p}

View File

@@ -14,6 +14,9 @@ if [[ $OP == on ]]; then
tee "$FILE" >/dev/null <<EOF
address=/${DOMAIN}/0.0.0.0
address=/${DOMAIN}/::
address=/www.${DOMAIN}/0.0.0.0
address=/www.${DOMAIN}/::
EOF
else
rm -f "$FILE"

View File

@@ -10,6 +10,8 @@ if [[ $OP == on ]]; then
sudo tee "$FILE" >/dev/null <<EOF
address=/${DOMAIN}/0.0.0.0
address=/${DOMAIN}/::
address=/www.${DOMAIN}/0.0.0.0
address=/www.${DOMAIN}/::
EOF
else
sudo rm -f "$FILE"

View File

@@ -0,0 +1 @@
find /home/synchronous/current-semester -follow -maxdepth 1 | cut -c36- | sed '/^[[:space:]]*$/d' | rofi -dmenu | read csem && alacritty --working-directory "/home/synchronous/current-semester/$csem";

View File

@@ -0,0 +1,8 @@
rsem=$(find /home/synchronous/current-semester -follow -maxdepth 1 | cut -c36- | sed '/^[[:space:]]*$/d' | rofi -dmenu)
# Exit if nothing selected
[ -z "$rsem" ] && exit 0
# Get URL and open if it exists
url=$(yq -r ".url" "/home/synchronous/current-semester/$rsem/info.yaml")
[ -n "$url" ] && firefox "$url"

View File

@@ -0,0 +1,59 @@
#!/bin/bash
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root."
exit 1
fi
echo """
██╗ ██╗██████╗ ██████╗ █████╗ ██████╗
██║ ██║██╔══██╗██╔════╝██╔══██╗██╔══██╗
██║ █╗ ██║██████╔╝██║ ███████║██████╔╝
██║███╗██║██╔═══╝ ██║ ██╔══██║██╔═══╝
╚███╔███╔╝██║ ╚██████╗██║ ██║██║
╚══╝╚══╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝
"""
# if [ -z "$1" ]; then
# echo "Usage: sudo $0 <interface>"
# exit 1
# fi
INTERFACE=${1:-wlan0}
MON_INTERFACE="${INTERFACE}mon"
CAPTURE_PREFIX="caps"
HASH_FILE="hash.hc22000"
trap 'echo -e "\nStopping monitor mode on ${MON_INTERFACE}..."; airmon-ng stop ${MON_INTERFACE} > /dev/null 2>&1;' EXIT
echo "Starting monitor mode on ${INTERFACE}..."
airmon-ng start ${INTERFACE} > /dev/null 2>&1
echo -e "\nCapturing handshakes... Press Ctrl+C when you're done.\n"
airodump-ng --write ${CAPTURE_PREFIX} ${MON_INTERFACE}
echo -e "\nLooking for the latest capture file..."
LATEST_CAP=$(ls -t ${CAPTURE_PREFIX}*.cap 2>/dev/null | head -n 1)
if [ -z "${LATEST_CAP}" ]; then
echo "Error: No .cap file found. Exiting."
exit 1
fi
echo "Converting ${LATEST_CAP} to hash format..."
hcxpcapngtool -o ${HASH_FILE} ${LATEST_CAP}
echo -e "\nConversion complete. Hash saved to ${HASH_FILE}."
echo "You can now run hashcat, e.g.: hashcat -m 22000 ${HASH_FILE} /path/to/wordlist.txt"
read -p "Remove capture files (caps-*)? [y/N] " confirm
if [[ "${confirm,,}" == "y" ]]; then
echo "Cleaning up files..."
rm -f caps-*
echo "Files removed."
else
echo "Keeping capture files."
fi
echo "Script finished."

View File

@@ -0,0 +1,23 @@
{
config,
pkgs,
...
}: let
printer = "SCS-public";
in {
services.printing.drivers = with pkgs; [foomatic-db-ppds];
# print with lp
hardware.printers = {
ensureDefaultPrinter = printer;
# https://computing.cs.cmu.edu/desktop/printing-linux-private
ensurePrinters = [
{
name = printer;
deviceUri = "lpd://jginesin@scs-print.srv.cs.cmu.edu/${printer}";
model =
pkgs.foomatic-db-ppds.pname
+ "/KONICA_MINOLTA-bizhub_360-Postscript-KONICA_MINOLTA.ppd.gz";
}
];
};
}

View File

@@ -9,5 +9,6 @@
./syncthing/default.nix
# ./resolved/default.nix (not enabled, in favor of dnsmasq)
./dnsmasq/default.nix
./printing.nix
];
}

View File

@@ -73,6 +73,7 @@ in {
polybar
sxhkd
bspwm
yq
# linuxKernel.packages.linux_zen.rtl8812au
# librewolf
];