diff --git a/flake.lock b/flake.lock index 32f67f0..b400f0a 100644 --- a/flake.lock +++ b/flake.lock @@ -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" } }, diff --git a/flake.nix b/flake.nix index 84629bf..d5d4fd3 100644 --- a/flake.nix +++ b/flake.nix @@ -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 = [ diff --git a/home/home.nix b/home/home.nix index 69634cb..f98417a 100644 --- a/home/home.nix +++ b/home/home.nix @@ -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 diff --git a/home/programs/firefox/default.nix b/home/programs/firefox/default.nix index 2caec08..cd99a87 100644 --- a/home/programs/firefox/default.nix +++ b/home/programs/firefox/default.nix @@ -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 diff --git a/home/programs/nvim/default.nix b/home/programs/nvim/default.nix index f7e1c2c..405c611 100644 --- a/home/programs/nvim/default.nix +++ b/home/programs/nvim/default.nix @@ -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; diff --git a/home/programs/nvim/plugins/mini-animate.lua b/home/programs/nvim/plugins/mini-animate.lua new file mode 100644 index 0000000..eb02152 --- /dev/null +++ b/home/programs/nvim/plugins/mini-animate.lua @@ -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, + -- }, +-- }) diff --git a/home/programs/nvim/plugins/neovide.lua b/home/programs/nvim/plugins/neovide.lua new file mode 100644 index 0000000..e69de29 diff --git a/home/programs/nvim/plugins/smear.lua b/home/programs/nvim/plugins/smear.lua new file mode 100644 index 0000000..655f39b --- /dev/null +++ b/home/programs/nvim/plugins/smear.lua @@ -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, +}) diff --git a/home/programs/nvim/plugins/vimtex.lua b/home/programs/nvim/plugins/vimtex.lua index b7b0d66..ef5811b 100644 --- a/home/programs/nvim/plugins/vimtex.lua +++ b/home/programs/nvim/plugins/vimtex.lua @@ -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", { diff --git a/home/programs/sxhkd/sxhkdrc b/home/programs/sxhkd/sxhkdrc index 1353ebb..8c1a5d9 100644 --- a/home/programs/sxhkd/sxhkdrc +++ b/home/programs/sxhkd/sxhkdrc @@ -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} diff --git a/home/scripts/dns/dnsblock-norestart.sh b/home/scripts/dns/dnsblock-norestart.sh index ad73e91..5d374c2 100755 --- a/home/scripts/dns/dnsblock-norestart.sh +++ b/home/scripts/dns/dnsblock-norestart.sh @@ -14,6 +14,9 @@ if [[ $OP == on ]]; then tee "$FILE" >/dev/null </dev/null <" + # 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." diff --git a/system/services/printing.nix b/system/services/printing.nix new file mode 100644 index 0000000..2a4dd8a --- /dev/null +++ b/system/services/printing.nix @@ -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"; + } + ]; + }; +} diff --git a/system/services/services.nix b/system/services/services.nix index d103904..545329d 100644 --- a/system/services/services.nix +++ b/system/services/services.nix @@ -9,5 +9,6 @@ ./syncthing/default.nix # ./resolved/default.nix (not enabled, in favor of dnsmasq) ./dnsmasq/default.nix + ./printing.nix ]; } diff --git a/system/users/default.nix b/system/users/default.nix index 79b6bf3..ce9ac86 100644 --- a/system/users/default.nix +++ b/system/users/default.nix @@ -73,6 +73,7 @@ in { polybar sxhkd bspwm + yq # linuxKernel.packages.linux_zen.rtl8812au # librewolf ];