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" "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": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1751274312, "lastModified": 1751274312,
@@ -210,6 +226,7 @@
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_2",
"nixpkgs-clisp": "nixpkgs-clisp", "nixpkgs-clisp": "nixpkgs-clisp",
"nixpkgs-signal": "nixpkgs-signal",
"verus-flake": "verus-flake" "verus-flake": "verus-flake"
} }
}, },

View File

@@ -17,6 +17,10 @@
nixpkgs-clisp.url = "github:NixOS/nixpkgs/da320e5472f021b96a883f71fc525ca0e4815273"; 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"; verus-flake.url = "github:JakeGinesin/verus-flake";
}; };
outputs = { outputs = {
@@ -26,6 +30,7 @@
agenix, agenix,
emacs-overlay, emacs-overlay,
nixpkgs-clisp, nixpkgs-clisp,
nixpkgs-signal,
verus-flake, verus-flake,
} @ inputs: let } @ inputs: let
system = "x86_64-linux"; system = "x86_64-linux";
@@ -43,6 +48,7 @@
emacs-overlay.overlay emacs-overlay.overlay
(final: _prev: { (final: _prev: {
clisp = nixpkgs-clisp.legacyPackages.${system}.clisp; clisp = nixpkgs-clisp.legacyPackages.${system}.clisp;
signal-desktop = nixpkgs-signal.legacyPackages.${system}.signal-desktop;
}) })
]; ];
environment.systemPackages = [ environment.systemPackages = [

View File

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

View File

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

View File

@@ -31,6 +31,8 @@
black black
nodejs_22 nodejs_22
latexrun latexrun
tectonic
texpresso
# gh # gh
]; ];
@@ -39,6 +41,18 @@
vim-airline-themes vim-airline-themes
plenary-nvim plenary-nvim
nvim-web-devicons 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; plugin = telescope-nvim;
config = toLuaFile ./plugins/telescope.lua; 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_viewer = 'zathura'
vim.g.vimtex_view_general_options = '--unique file:@pdf#src:@line@tex' vim.g.vimtex_view_general_options = '--unique file:@pdf#src:@line@tex'
-- Set the TeX flavor and quickfix mode. -- Set the TeX flavor and quickfix mode.
vim.g.tex_flavor = 'latex' vim.g.tex_flavor = 'latex'
vim.g.vimtex_quickfix_mode = 0 vim.g.vimtex_quickfix_mode = 0
vim.g.vimtex_quickfix_enabled = 0 vim.g.vimtex_quickfix_enabled = 0
-- Compiler backend. -- 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). -- Set the local leader (default is "\"; here we change it to comma).
vim.g.maplocalleader = ',' vim.g.maplocalleader = ','
-- Configure warnings to ignore. -- Configure warnings to ignore.
vim.g.Tex_IgnoredWarnings = [[ -- vim.g.Tex_IgnoredWarnings = [[
Package hyperref Warning -- Package hyperref Warning
Token not allowed in a PDF string (Unicode) -- Token not allowed in a PDF string (Unicode)
removing math shift -- removing math shift
removing superscript -- removing superscript
Underfull -- Underfull
Overfull -- Overfull
specifier changed to -- specifier changed to
You have requested -- You have requested
Missing number, treated as zero. -- Missing number, treated as zero.
There were undefined references -- There were undefined references
Citation %.%# undefined -- Citation %.%# undefined
Double space found. -- Double space found.
]] -- ]]
vim.g.Tex_IgnoreLevel = 8 -- vim.g.Tex_IgnoreLevel = 8
-- Delete extra compilation files when a TeX buffer is deleted. -- Delete extra compilation files when a TeX buffer is deleted.
vim.api.nvim_create_autocmd("BufDelete", { 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 # search for current semester area, then open terminal wherever it is
super + {ctrl} + {c} 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} 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 # sh /home/synchronous/.scripts/vimwiki/open_todo.sh
super + {p} super + {p}

View File

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

View File

@@ -10,6 +10,8 @@ if [[ $OP == on ]]; then
sudo tee "$FILE" >/dev/null <<EOF sudo tee "$FILE" >/dev/null <<EOF
address=/${DOMAIN}/0.0.0.0 address=/${DOMAIN}/0.0.0.0
address=/${DOMAIN}/:: address=/${DOMAIN}/::
address=/www.${DOMAIN}/0.0.0.0
address=/www.${DOMAIN}/::
EOF EOF
else else
sudo rm -f "$FILE" 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 ./syncthing/default.nix
# ./resolved/default.nix (not enabled, in favor of dnsmasq) # ./resolved/default.nix (not enabled, in favor of dnsmasq)
./dnsmasq/default.nix ./dnsmasq/default.nix
./printing.nix
]; ];
} }

View File

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