Compare commits
68 Commits
a903234837
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d50f9e34b4 | ||
|
|
ab8dd6c5af | ||
|
|
89b0c103bf | ||
|
|
7aead0fdca | ||
|
|
c1f5cb4462 | ||
|
|
1456872a5d | ||
|
|
646422cf4c | ||
|
|
a3d669d039 | ||
|
|
4d5673f96b | ||
|
|
8ab23d4292 | ||
|
|
45619db650 | ||
|
|
fee45bf0e6 | ||
|
|
b4dd9407d4 | ||
|
|
94595a0833 | ||
|
|
4f945e2c56 | ||
|
|
6e1624b26c | ||
|
|
8281843816 | ||
|
|
bcbf53f51a | ||
|
|
f070129636 | ||
|
|
e0d337d56e | ||
|
|
ad8b141bfc | ||
|
|
5f1438f056 | ||
|
|
b540cfd946 | ||
|
|
f36f414f51 | ||
|
|
b8459f1967 | ||
|
|
ff9fe3ef3f | ||
|
|
340109e73b | ||
|
|
325f31cb2a | ||
|
|
0db84f7146 | ||
|
|
3c9907db9a | ||
|
|
05e7664925 | ||
|
|
6e3ff222ad | ||
|
|
2973862f44 | ||
|
|
ef788ec9d1 | ||
|
|
60be488679 | ||
|
|
76f380b38a | ||
|
|
8706141dee | ||
|
|
8746d38eef | ||
|
|
72d16c4e37 | ||
|
|
a4bfdf4748 | ||
|
|
f667cc4c14 | ||
|
|
ffa9bc9e3f | ||
|
|
5e9db649cb | ||
|
|
f641bbb679 | ||
|
|
85248a2fba | ||
|
|
018313e48b | ||
|
|
09cce4e9fd | ||
|
|
15beb5de79 | ||
|
|
9253338555 | ||
|
|
e0a8ac3e07 | ||
|
|
741e2ab222 | ||
|
|
e6b920dee2 | ||
|
|
8b4eeae6b0 | ||
|
|
1d6d7c9d07 | ||
|
|
46836579f2 | ||
|
|
e2f68e690d | ||
|
|
3e3e8034d4 | ||
|
|
6bf4a7deff | ||
|
|
7f8a668cef | ||
|
|
8125fe2bd2 | ||
|
|
575ced3c41 | ||
|
|
f9417ef89c | ||
|
|
62e7f73319 | ||
|
|
6816dc833f | ||
|
|
e74223ae07 | ||
|
|
c9ba9713a2 | ||
|
|
f83754fb8d | ||
|
|
143e43818a |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,3 +2,4 @@
|
|||||||
**/.*~undo-tree~
|
**/.*~undo-tree~
|
||||||
**/.DS_Store
|
**/.DS_Store
|
||||||
/result
|
/result
|
||||||
|
/home/result
|
||||||
|
|||||||
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
[submodule "bash-scripts"]
|
||||||
|
path = bash-scripts
|
||||||
|
url = gitea@git.randomctf.com:random936/bash-scripts.git
|
||||||
59
README.org
59
README.org
@@ -1,9 +1,58 @@
|
|||||||
|
|
||||||
* Dotfiles Repo
|
* NixOS Setup for Omen Laptop
|
||||||
|
|
||||||
|
Installing the base configuration:
|
||||||
|
|
||||||
To install these dotfiles, you can use gnu stow. Running the following command will automatically create symlinks for every file in this repo.
|
|
||||||
#+begin_src bash
|
#+begin_src bash
|
||||||
git clone https://github.com/Random936/dotfiles
|
nix-shell -p vim git
|
||||||
cd dotfiles/
|
git clone https://git.randomctf.com/random936/dotfiles
|
||||||
stow .
|
sudo nixos-rebuild switch --flake .#randomctf
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
Install home manager and related packages:
|
||||||
|
#+begin_src bash
|
||||||
|
sudo ./install-homemanager.sh 25.05
|
||||||
|
home-manager switch --extra-experimental-features "nix-command flakes" --flake .#random
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
** Rbw (Rust Bitwarden) Setup
|
||||||
|
|
||||||
|
Before continuing, you will need to login on the [[https://bitwarden.com][Bitwarden]] website to retrieve your API key. This can be found under: Settings > Security > Keys > View API Key.
|
||||||
|
|
||||||
|
#+begin_src bash
|
||||||
|
# Enter the values it asks for from the Bitwarden view API key window.
|
||||||
|
rbw register
|
||||||
|
rbw login
|
||||||
|
rbw unlock
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
** Mail Setup
|
||||||
|
|
||||||
|
Setting up ~pass~:
|
||||||
|
#+begin_src bash
|
||||||
|
gpg --full-generate-key
|
||||||
|
# Copy the value from the output above and use it in the command below.
|
||||||
|
pass init <GPG_ID>
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
Setting up ~protonmail-bridge~:
|
||||||
|
|
||||||
|
#+begin_src bash
|
||||||
|
systemctl stop --user protonmail-bridge.service
|
||||||
|
protonmail-bridge --cli
|
||||||
|
cert export ~/.config/protonmail/bridge-v3/
|
||||||
|
login # This might take a while.
|
||||||
|
info # To get login info. SMTP needs to be added to authinfo.
|
||||||
|
exit
|
||||||
|
systemctl start --user protonmail-bridge.service
|
||||||
|
|
||||||
|
# Add passwords for protonmail bridge.
|
||||||
|
pass add "protonmail-bridge" <PASS>
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
Setting up ~mu4e~:
|
||||||
|
#+begin_src bash
|
||||||
|
mu init --maildir=~/.mail --my-address=<email_address>
|
||||||
|
mbsync -a
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
|||||||
1
bash-scripts
Submodule
1
bash-scripts
Submodule
Submodule bash-scripts added at 9190f0dd6a
@@ -13,30 +13,13 @@
|
|||||||
|
|
||||||
users.users.mindforge = import ./user.nix;
|
users.users.mindforge = import ./user.nix;
|
||||||
|
|
||||||
# Setup drivers for NVIDIA GPU
|
|
||||||
services.xserver = {
|
|
||||||
enable = false;
|
|
||||||
videoDrivers = [ "nvidia" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware = {
|
|
||||||
nvidia = {
|
|
||||||
open = false;
|
|
||||||
modesetting.enable = true;
|
|
||||||
powerManagement.enable = false;
|
|
||||||
powerManagement.finegrained = false;
|
|
||||||
nvidiaSettings = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
graphics = {
|
|
||||||
enable = true;
|
|
||||||
enable32Bit = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.ollama = {
|
services.ollama = {
|
||||||
enable = true;
|
enable = true;
|
||||||
acceleration = "cuda";
|
host = "0.0.0.0";
|
||||||
|
openFirewall = true;
|
||||||
|
environmentVariables = {
|
||||||
|
OLLAMA_CONTEXT_LENGTH = "8192";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# NGINX Reverse Proxy Setup
|
# NGINX Reverse Proxy Setup
|
||||||
@@ -51,8 +34,19 @@
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
locations."/".extraConfig = ''
|
locations."/".extraConfig = ''
|
||||||
proxy_buffering off;
|
|
||||||
proxy_pass http://localhost:8080/;
|
proxy_pass http://localhost:8080/;
|
||||||
|
|
||||||
|
# Add WebSocket support (Necessary for version 0.5.0 and up)
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
|
||||||
|
proxy_buffering off;
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ vars:
|
|||||||
TEREDO_PORTS: 3544
|
TEREDO_PORTS: 3544
|
||||||
SIP_PORTS: "[5060, 5061]"
|
SIP_PORTS: "[5060, 5061]"
|
||||||
|
|
||||||
default-log-dir: /home/logging/logs
|
default-log-dir: /mnt/logs/suricata
|
||||||
classification-file: /etc/suricata/classification.config
|
classification-file: /etc/suricata/classification.config
|
||||||
reference-config-file: /etc/suricata/reference.config
|
reference-config-file: /etc/suricata/reference.config
|
||||||
default-rule-path: /etc/suricata/rules
|
default-rule-path: /etc/suricata/rules
|
||||||
@@ -58,12 +58,14 @@ outputs:
|
|||||||
- eve-log:
|
- eve-log:
|
||||||
enabled: yes
|
enabled: yes
|
||||||
filetype: regular
|
filetype: regular
|
||||||
filename: eve.json
|
filename: eve-%Y-%m-%d.json
|
||||||
|
rotate-interval: day
|
||||||
types:
|
types:
|
||||||
- alert:
|
- alert:
|
||||||
tagged-packets: yes
|
tagged-packets: yes
|
||||||
- http:
|
- http:
|
||||||
extended: yes
|
extended: yes
|
||||||
|
dump-all-headers: both
|
||||||
- http2
|
- http2
|
||||||
- dns:
|
- dns:
|
||||||
enabled: yes
|
enabled: yes
|
||||||
@@ -94,7 +96,7 @@ outputs:
|
|||||||
- smtp
|
- smtp
|
||||||
|
|
||||||
- pcap-log:
|
- pcap-log:
|
||||||
enabled: yes
|
enabled: no
|
||||||
filename: log.pcap
|
filename: log.pcap
|
||||||
limit: 1gb
|
limit: 1gb
|
||||||
max-files: 200
|
max-files: 200
|
||||||
|
|||||||
@@ -1,80 +0,0 @@
|
|||||||
{ config, pkgs, lib, ... }: {
|
|
||||||
nix.settings.experimental-features = ["nix-command" "flakes"];
|
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
git
|
|
||||||
];
|
|
||||||
|
|
||||||
homebrew = {
|
|
||||||
enable = true;
|
|
||||||
onActivation.cleanup = "zap";
|
|
||||||
taps = [
|
|
||||||
"nikitabobko/tap"
|
|
||||||
"FelixKratz/formulae"
|
|
||||||
];
|
|
||||||
brews = [
|
|
||||||
"wireguard-tools"
|
|
||||||
"pinentry-mac"
|
|
||||||
"sketchybar"
|
|
||||||
"coreutils"
|
|
||||||
"watch"
|
|
||||||
"rbw"
|
|
||||||
];
|
|
||||||
casks = [
|
|
||||||
"font-hack-nerd-font"
|
|
||||||
"scroll-reverser"
|
|
||||||
"brave-browser"
|
|
||||||
"instantview"
|
|
||||||
"proton-mail"
|
|
||||||
"flameshot"
|
|
||||||
"aerospace"
|
|
||||||
"bitwarden"
|
|
||||||
"tailscale"
|
|
||||||
"wireshark"
|
|
||||||
"ghostty"
|
|
||||||
"discord"
|
|
||||||
"barrier"
|
|
||||||
"zoom"
|
|
||||||
"plex"
|
|
||||||
"vlc"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Auto upgrade nix package and the daemon service.
|
|
||||||
nix.package = pkgs.nix;
|
|
||||||
|
|
||||||
# Extra activation scripts
|
|
||||||
system.activationScripts.extraActivation.text = ''
|
|
||||||
softwareupdate --install-rosetta --agree-to-license
|
|
||||||
'';
|
|
||||||
|
|
||||||
# Keyboard and Mouse
|
|
||||||
system.keyboard = {
|
|
||||||
enableKeyMapping = true;
|
|
||||||
remapCapsLockToEscape = true;
|
|
||||||
swapLeftCommandAndLeftAlt = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# MacOS Changes
|
|
||||||
system = {
|
|
||||||
startup.chime = false;
|
|
||||||
defaults = {
|
|
||||||
dock.autohide = true;
|
|
||||||
NSGlobalDomain = {
|
|
||||||
"com.apple.mouse.tapBehavior" = 1;
|
|
||||||
_HIHideMenuBar = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Create /etc/zshrc that loads the nix-darwin environment.
|
|
||||||
programs.zsh.enable = true;
|
|
||||||
|
|
||||||
users.users.jadenmaxwell = {
|
|
||||||
name = "jadenmaxwell";
|
|
||||||
home = "/Users/jadenmaxwell";
|
|
||||||
};
|
|
||||||
|
|
||||||
system.stateVersion = 5;
|
|
||||||
}
|
|
||||||
@@ -27,11 +27,10 @@
|
|||||||
# Setup i3 window manager
|
# Setup i3 window manager
|
||||||
windowManager.i3 = {
|
windowManager.i3 = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.i3-gaps;
|
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
rofi
|
rofi
|
||||||
polybar
|
|
||||||
alacritty
|
alacritty
|
||||||
|
polybarFull
|
||||||
i3lock-fancy
|
i3lock-fancy
|
||||||
xautolock
|
xautolock
|
||||||
autorandr
|
autorandr
|
||||||
@@ -58,13 +57,6 @@
|
|||||||
enable32Bit = true;
|
enable32Bit = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Install picom for transparency.
|
|
||||||
services.picom = {
|
|
||||||
enable = true;
|
|
||||||
backend = "glx";
|
|
||||||
vSync = "opengl-swc";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Install Thunar
|
# Install Thunar
|
||||||
programs.thunar.enable = true;
|
programs.thunar.enable = true;
|
||||||
services.gvfs.enable = true;
|
services.gvfs.enable = true;
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{ lib, config, pkgs, inputs, ... }: {
|
{ lib, config, pkgs, inputs, ... }: {
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
|
./logging/prometheus.nix
|
||||||
|
./logging/suricata.nix
|
||||||
../hardware/logging.nix
|
../hardware/logging.nix
|
||||||
./headless.nix
|
./headless.nix
|
||||||
(import ./networking.nix {
|
(import ./networking.nix {
|
||||||
@@ -9,210 +11,47 @@
|
|||||||
open_ports = [ 3000 9001 9003 ];
|
open_ports = [ 3000 9001 9003 ];
|
||||||
inherit lib;
|
inherit lib;
|
||||||
})
|
})
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
networking.firewall.enable = false;
|
networking.firewall.enable = false;
|
||||||
|
|
||||||
users.users.logging = import ./user.nix;
|
users.users.logging = import ./user.nix;
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
suricata
|
|
||||||
];
|
|
||||||
|
|
||||||
services.grafana = {
|
services.grafana = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings.server = {
|
settings.server = {
|
||||||
http_addr = "0.0.0.0";
|
http_addr = "127.0.0.1";
|
||||||
http_port = 3000;
|
http_port = 3000;
|
||||||
domain = "logging.randomctf.local";
|
domain = "grafana.randomctf.local";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.nginx = {
|
||||||
|
|
||||||
services.prometheus.exporters.blackbox = {
|
|
||||||
enable = true;
|
|
||||||
port = 9003;
|
|
||||||
configFile = assets/blackbox.yml;
|
|
||||||
};
|
|
||||||
|
|
||||||
services.prometheus = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
port = 9001;
|
virtualHosts = {
|
||||||
globalConfig.scrape_interval = "10s";
|
# Grafana
|
||||||
scrapeConfigs = let
|
"grafana.randomctf.local" = {
|
||||||
node_port = toString config.services.prometheus.exporters.node.port;
|
extraConfig = ''
|
||||||
blackbox_relabel = [
|
access_log /var/log/nginx/access.grafana.log;
|
||||||
{
|
'';
|
||||||
source_labels = [ "__address__" ];
|
|
||||||
target_label = "__param_target";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
target_label = "__address__";
|
|
||||||
replacement = "127.0.0.1:9003";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
in [
|
|
||||||
{
|
|
||||||
job_name = "node";
|
|
||||||
static_configs = [
|
|
||||||
{
|
|
||||||
targets = [ "127.0.0.1:${node_port}" ];
|
|
||||||
labels.instance = "r330-logging";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
targets = [ "192.168.100.40:${node_port}" ];
|
|
||||||
labels.instance = "r330-media";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
targets = [ "192.168.100.42:${node_port}" ];
|
|
||||||
labels.instance = "sampledb-dev";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
targets = [ "192.168.100.45:${node_port}" ];
|
|
||||||
labels.instance = "mindforge";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
targets = [ "192.168.100.1:9100" ];
|
|
||||||
labels.instance = "GL-MT6000";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
job_name = "blackbox_icmp";
|
|
||||||
metrics_path = "/probe";
|
|
||||||
params = { module = ["icmp"]; };
|
|
||||||
static_configs = [
|
|
||||||
{
|
|
||||||
targets = [ "127.0.0.1" ];
|
|
||||||
labels.instance = "r330-media";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
targets = [ "192.168.100.1" ];
|
|
||||||
labels.instance = "GL-MT6000";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
targets = [ "192.168.100.11" ];
|
|
||||||
labels.instance = "r330-idrac";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
targets = [ "192.168.100.12" ];
|
|
||||||
labels.instance = "r730xd-idrac";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
targets = [ "192.168.100.20" ];
|
|
||||||
labels.instance = "ideapad";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
targets = [ "192.168.100.21" ];
|
|
||||||
labels.instance = "r330-proxmox";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
targets = [ "192.168.100.22" ];
|
|
||||||
labels.instance = "r730xd-proxmox";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
targets = [ "192.168.100.40" ];
|
|
||||||
labels.instance = "r330-media";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
targets = [ "192.168.100.42" ];
|
|
||||||
labels.instance = "sampledb-dev";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
targets = [ "192.168.100.42" ];
|
|
||||||
labels.instance = "sampledb-dev";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
targets = [ "192.168.100.45" ];
|
|
||||||
labels.instance = "mindforge";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
targets = [ "1.1.1.1" ];
|
|
||||||
labels.instance = "Cloudflare";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
targets = [ "8.8.8.8" ];
|
|
||||||
labels.instance = "Google";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
relabel_configs = blackbox_relabel;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
job_name = "blackbox_http_2xx";
|
|
||||||
metrics_path = "/probe";
|
|
||||||
params = { module = ["http_2xx"]; };
|
|
||||||
static_configs = [
|
|
||||||
{
|
|
||||||
targets = [ "http://192.168.100.40:6011" ];
|
|
||||||
labels.instance = "Qbittorrent";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
targets = [ "http://192.168.100.40:7878" ];
|
|
||||||
labels.instance = "Radarr";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
targets = [ "http://192.168.100.40:8989" ];
|
|
||||||
labels.instance = "Sonarr";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
targets = [ "http://192.168.100.40:9696" ];
|
|
||||||
labels.instance = "Prowlarr";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
targets = [ "https://randomctf.com" ];
|
|
||||||
labels.instance = "RandomCTF.com";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
targets = [ "https://git.randomctf.com" ];
|
|
||||||
labels.instance = "Gitea";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
targets = [ "https://nextcloud.randomctf.com" ];
|
|
||||||
labels.instance = "Nextcloud";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
relabel_configs = blackbox_relabel;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
job_name = "blackbox_http_2xx_no_verify";
|
|
||||||
metrics_path = "/probe";
|
|
||||||
params = { module = ["http_2xx_tls_no_verify"]; };
|
|
||||||
static_configs = [
|
|
||||||
{
|
|
||||||
targets = [ "https://192.168.100.40:5006" ];
|
|
||||||
labels.instance = "Actual";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
relabel_configs = blackbox_relabel;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.services.suricata = {
|
locations."/".extraConfig = ''
|
||||||
description = "Suricata IDS/IPS";
|
proxy_set_header Host grafana.randomctf.local;
|
||||||
wantedBy = ["multi-user.target"];
|
proxy_pass http://localhost:3000/;
|
||||||
serviceConfig = {
|
'';
|
||||||
type = "simple";
|
};
|
||||||
User = "logging";
|
|
||||||
ExecStart = "${pkgs.suricata}/bin/suricata -c /etc/suricata.yaml -i enp6s19";
|
# Prometheus
|
||||||
Restart = "on-failure";
|
"prometheus.randomctf.local" = {
|
||||||
CapabilityBoundingSet = "CAP_NET_RAW CAP_NET_ADMIN";
|
extraConfig = ''
|
||||||
AmbientCapabilities = "CAP_NET_RAW CAP_NET_ADMIN";
|
access_log /var/log/nginx/access.prometheus.log;
|
||||||
|
'';
|
||||||
|
|
||||||
|
locations."/".extraConfig = ''
|
||||||
|
proxy_pass http://localhost:9090/;
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.etc."suricata.yaml".source = ./assets/suricata.yaml;
|
|
||||||
|
|
||||||
environment.etc."suricata/classification.config".text = ''
|
|
||||||
'';
|
|
||||||
|
|
||||||
environment.etc."suricata/reference.config".text = ''
|
|
||||||
'';
|
|
||||||
|
|
||||||
environment.etc."suricata/threshold.config".text = ''
|
|
||||||
'';
|
|
||||||
|
|
||||||
environment.etc."suricata/rules/suricata.rules".text = ''
|
|
||||||
'';
|
|
||||||
}
|
}
|
||||||
|
|||||||
156
config/logging/prometheus.nix
Normal file
156
config/logging/prometheus.nix
Normal file
@@ -0,0 +1,156 @@
|
|||||||
|
{ lib, config, pkgs, inputs, ... }: {
|
||||||
|
services.prometheus.exporters.blackbox = {
|
||||||
|
enable = true;
|
||||||
|
port = 9003;
|
||||||
|
configFile = ../assets/blackbox.yml;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.prometheus = {
|
||||||
|
enable = true;
|
||||||
|
port = 9090;
|
||||||
|
globalConfig.scrape_interval = "10s";
|
||||||
|
scrapeConfigs = let
|
||||||
|
node_port = toString config.services.prometheus.exporters.node.port;
|
||||||
|
blackbox_relabel = [
|
||||||
|
{
|
||||||
|
source_labels = [ "__address__" ];
|
||||||
|
target_label = "__param_target";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
target_label = "__address__";
|
||||||
|
replacement = "127.0.0.1:9003";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
in [
|
||||||
|
{
|
||||||
|
job_name = "node";
|
||||||
|
static_configs = [
|
||||||
|
{
|
||||||
|
targets = [ "127.0.0.1:${node_port}" ];
|
||||||
|
labels.instance = "r330-logging";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
targets = [ "192.168.100.40:${node_port}" ];
|
||||||
|
labels.instance = "r330-media";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
targets = [ "192.168.100.42:${node_port}" ];
|
||||||
|
labels.instance = "sampledb-dev";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
targets = [ "192.168.100.45:${node_port}" ];
|
||||||
|
labels.instance = "mindforge";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
targets = [ "192.168.100.1:9100" ];
|
||||||
|
labels.instance = "GL-MT6000";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
job_name = "blackbox_icmp";
|
||||||
|
metrics_path = "/probe";
|
||||||
|
params = { module = ["icmp"]; };
|
||||||
|
static_configs = [
|
||||||
|
{
|
||||||
|
targets = [ "127.0.0.1" ];
|
||||||
|
labels.instance = "r330-media";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
targets = [ "192.168.100.1" ];
|
||||||
|
labels.instance = "GL-MT6000";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
targets = [ "192.168.100.11" ];
|
||||||
|
labels.instance = "r330-idrac";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
targets = [ "192.168.100.12" ];
|
||||||
|
labels.instance = "r730xd-idrac";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
targets = [ "192.168.100.21" ];
|
||||||
|
labels.instance = "r330-proxmox";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
targets = [ "192.168.100.22" ];
|
||||||
|
labels.instance = "r730xd-proxmox";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
targets = [ "192.168.100.40" ];
|
||||||
|
labels.instance = "r330-media";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
targets = [ "192.168.100.42" ];
|
||||||
|
labels.instance = "sampledb-dev";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
targets = [ "192.168.100.42" ];
|
||||||
|
labels.instance = "sampledb-dev";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
targets = [ "192.168.100.45" ];
|
||||||
|
labels.instance = "mindforge";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
targets = [ "1.1.1.1" ];
|
||||||
|
labels.instance = "Cloudflare";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
targets = [ "8.8.8.8" ];
|
||||||
|
labels.instance = "Google";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
relabel_configs = blackbox_relabel;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
job_name = "blackbox_http_2xx";
|
||||||
|
metrics_path = "/probe";
|
||||||
|
params = { module = ["http_2xx"]; };
|
||||||
|
static_configs = [
|
||||||
|
{
|
||||||
|
targets = [ "http://192.168.100.40:6011" ];
|
||||||
|
labels.instance = "Qbittorrent";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
targets = [ "http://192.168.100.40:7878" ];
|
||||||
|
labels.instance = "Radarr";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
targets = [ "http://192.168.100.40:8989" ];
|
||||||
|
labels.instance = "Sonarr";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
targets = [ "http://192.168.100.40:9696" ];
|
||||||
|
labels.instance = "Prowlarr";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
targets = [ "https://randomctf.com" ];
|
||||||
|
labels.instance = "RandomCTF.com";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
targets = [ "https://git.randomctf.com" ];
|
||||||
|
labels.instance = "Gitea";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
targets = [ "https://nextcloud.randomctf.com" ];
|
||||||
|
labels.instance = "Nextcloud";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
relabel_configs = blackbox_relabel;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
job_name = "blackbox_http_2xx_no_verify";
|
||||||
|
metrics_path = "/probe";
|
||||||
|
params = { module = ["http_2xx_tls_no_verify"]; };
|
||||||
|
static_configs = [
|
||||||
|
{
|
||||||
|
targets = [ "https://192.168.100.40:5006" ];
|
||||||
|
labels.instance = "Actual";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
relabel_configs = blackbox_relabel;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
34
config/logging/suricata.nix
Normal file
34
config/logging/suricata.nix
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
{ lib, config, pkgs, inputs, ... }: {
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
suricata
|
||||||
|
];
|
||||||
|
|
||||||
|
systemd.services.suricata = {
|
||||||
|
description = "Suricata IDS/IPS";
|
||||||
|
wantedBy = ["multi-user.target"];
|
||||||
|
serviceConfig = {
|
||||||
|
type = "simple";
|
||||||
|
User = "logging";
|
||||||
|
ExecStartPre = "/run/current-system/sw/bin/ip link set enp6s19 up";
|
||||||
|
ExecStart = "${pkgs.suricata}/bin/suricata -c /etc/suricata.yaml -i enp6s19";
|
||||||
|
Restart = "on-failure";
|
||||||
|
CapabilityBoundingSet = "CAP_NET_RAW CAP_NET_ADMIN";
|
||||||
|
AmbientCapabilities = "CAP_NET_RAW CAP_NET_ADMIN";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.etc."suricata.yaml".source = ../assets/suricata.yaml;
|
||||||
|
|
||||||
|
environment.etc."suricata/classification.config".text = ''
|
||||||
|
'';
|
||||||
|
|
||||||
|
environment.etc."suricata/reference.config".text = ''
|
||||||
|
'';
|
||||||
|
|
||||||
|
environment.etc."suricata/threshold.config".text = ''
|
||||||
|
'';
|
||||||
|
|
||||||
|
environment.etc."suricata/rules/suricata.rules".text = ''
|
||||||
|
'';
|
||||||
|
}
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
# Nextcloud Setup
|
# Nextcloud Setup
|
||||||
services.nextcloud = {
|
services.nextcloud = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.nextcloud30;
|
package = pkgs.nextcloud32;
|
||||||
configureRedis = true;
|
configureRedis = true;
|
||||||
database.createLocally = true;
|
database.createLocally = true;
|
||||||
autoUpdateApps.enable = true;
|
autoUpdateApps.enable = true;
|
||||||
@@ -66,6 +66,13 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.cron = {
|
||||||
|
enable = true;
|
||||||
|
systemCronJobs = [
|
||||||
|
"*/10 * * * * nextcloud nextcloud-occ preview:pre-generate"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
# Gitea
|
# Gitea
|
||||||
services.gitea = {
|
services.gitea = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -102,6 +109,7 @@
|
|||||||
services.nginx = {
|
services.nginx = {
|
||||||
enable = true;
|
enable = true;
|
||||||
virtualHosts = {
|
virtualHosts = {
|
||||||
|
|
||||||
# Landing Page (randomctf.com)
|
# Landing Page (randomctf.com)
|
||||||
"randomctf.com" = {
|
"randomctf.com" = {
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
@@ -126,24 +134,48 @@
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
locations."/".extraConfig = ''
|
locations."/".extraConfig = ''
|
||||||
|
allow 192.168.0.0/16;
|
||||||
|
allow 10.0.0.0/8;
|
||||||
|
allow 172.16.0.0/12;
|
||||||
|
allow 127.0.0.1;
|
||||||
|
deny all;
|
||||||
|
|
||||||
proxy_buffering off;
|
proxy_buffering off;
|
||||||
proxy_pass http://localhost:8096/;
|
proxy_pass http://localhost:8096/;
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Kiwix
|
||||||
|
"kiwix.randomctf.com" = {
|
||||||
|
extraConfig = ''
|
||||||
|
access_log /var/log/nginx/access.kiwix.log;
|
||||||
|
'';
|
||||||
|
|
||||||
|
locations."/".extraConfig = ''
|
||||||
|
allow 192.168.0.0/16;
|
||||||
|
allow 10.0.0.0/8;
|
||||||
|
allow 172.16.0.0/12;
|
||||||
|
allow 127.0.0.1;
|
||||||
|
deny all;
|
||||||
|
|
||||||
|
proxy_buffering off;
|
||||||
|
proxy_pass http://localhost:8080/;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
# Gitea
|
# Gitea
|
||||||
"git.randomctf.com" = {
|
"git.randomctf.com" = {
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
|
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
access_log /var/log/nginx/access.git.log;
|
access_log /var/log/nginx/access.git.log;
|
||||||
'';
|
'';
|
||||||
|
|
||||||
locations."/".extraConfig = ''
|
locations."/".extraConfig = ''
|
||||||
proxy_buffering off;
|
proxy_buffering off;
|
||||||
proxy_pass http://localhost:3300/;
|
proxy_pass http://localhost:3300/;
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -52,18 +52,74 @@
|
|||||||
# Ignore laptop lid closing when connected to power.
|
# Ignore laptop lid closing when connected to power.
|
||||||
services.logind.lidSwitchExternalPower = "ignore";
|
services.logind.lidSwitchExternalPower = "ignore";
|
||||||
|
|
||||||
# Enable VMWare Workstation
|
|
||||||
virtualisation.vmware.host.enable = true;
|
|
||||||
|
|
||||||
# Enable bluetooth
|
# Enable bluetooth
|
||||||
hardware.bluetooth.enable = true;
|
hardware.bluetooth.enable = true;
|
||||||
services.blueman.enable = true;
|
services.blueman.enable = true;
|
||||||
|
|
||||||
|
# System Packages
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
pinentry-gtk2
|
||||||
|
protonmail-bridge
|
||||||
|
pass
|
||||||
|
|
||||||
|
# For RTL-SDR
|
||||||
|
libusb1
|
||||||
|
rtl-sdr
|
||||||
|
gqrx
|
||||||
|
];
|
||||||
|
|
||||||
|
# For RTL-SDR
|
||||||
|
hardware.rtl-sdr.enable = true;
|
||||||
|
|
||||||
# Setup Pinentry
|
# Setup Pinentry
|
||||||
environment.systemPackages = with pkgs; [ pinentry-gtk2 ];
|
|
||||||
programs.gnupg.agent = {
|
programs.gnupg.agent = {
|
||||||
enable = true;
|
enable = true;
|
||||||
pinentryPackage = pkgs.pinentry-gtk2;
|
pinentryPackage = pkgs.pinentry-gtk2;
|
||||||
enableSSHSupport = true;
|
enableSSHSupport = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Setup protonmail bridge
|
||||||
|
systemd.user.services.protonmail-bridge = {
|
||||||
|
description = "Protonmail Bridge";
|
||||||
|
after = [ "network.target" ];
|
||||||
|
wantedBy = [ "default.target" ];
|
||||||
|
path = with pkgs; [
|
||||||
|
pass
|
||||||
|
gnupg
|
||||||
|
pinentry-gtk2
|
||||||
|
];
|
||||||
|
serviceConfig = {
|
||||||
|
Restart = "always";
|
||||||
|
ExecStart = "${pkgs.protonmail-bridge}/bin/protonmail-bridge --noninteractive";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Setup environment for binaries that require FHS compliance.
|
||||||
|
programs.nix-ld = {
|
||||||
|
enable = true;
|
||||||
|
libraries = with pkgs; [
|
||||||
|
stdenv.cc.cc.lib
|
||||||
|
libglvnd
|
||||||
|
mesa
|
||||||
|
fontconfig
|
||||||
|
freetype
|
||||||
|
libxkbcommon
|
||||||
|
zlib
|
||||||
|
dbus
|
||||||
|
python3
|
||||||
|
xorg.libX11
|
||||||
|
xorg.libXext
|
||||||
|
xorg.libXrender
|
||||||
|
xorg.libXrandr
|
||||||
|
xorg.libXcursor
|
||||||
|
xorg.libXi
|
||||||
|
xorg.libxcb
|
||||||
|
xorg.xcbutilwm
|
||||||
|
xorg.xcbutil
|
||||||
|
xorg.xcbutilimage
|
||||||
|
xorg.xcbutilkeysyms
|
||||||
|
xorg.xcbutilrenderutil
|
||||||
|
xorg.xcbutilcursor
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
# General setup
|
# General setup
|
||||||
time.timeZone = "America/Los_Angeles";
|
time.timeZone = "America/New_York";
|
||||||
i18n.defaultLocale = "en_US.UTF-8";
|
i18n.defaultLocale = "en_US.UTF-8";
|
||||||
i18n.extraLocaleSettings = {
|
i18n.extraLocaleSettings = {
|
||||||
LC_ADDRESS = "en_US.UTF-8";
|
LC_ADDRESS = "en_US.UTF-8";
|
||||||
|
|||||||
@@ -4,5 +4,5 @@
|
|||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
useDefaultShell = true;
|
useDefaultShell = true;
|
||||||
description = "random";
|
description = "random";
|
||||||
extraGroups = [ "networkmanager" "wheel" "docker" ];
|
extraGroups = [ "networkmanager" "wheel" "docker" "dialout" "plugdev" ];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ tell application "Ghostty"
|
|||||||
end tell
|
end tell
|
||||||
EOF'''
|
EOF'''
|
||||||
cmd-shift-e = 'exec-and-forget /etc/profiles/per-user/*/bin/emacs'
|
cmd-shift-e = 'exec-and-forget /etc/profiles/per-user/*/bin/emacs'
|
||||||
cmd-shift-f = 'exec-and-forget open -n -a "Brave"'
|
cmd-shift-f = 'exec-and-forget open -n -a "Firefox"'
|
||||||
cmd-shift-d = 'exec-and-forget open -n -a "Discord"'
|
cmd-shift-d = 'exec-and-forget open -n -a "Discord"'
|
||||||
|
|
||||||
# i3 wraps focus by default
|
# i3 wraps focus by default
|
||||||
|
|||||||
@@ -15,15 +15,14 @@ floating_modifier $mod
|
|||||||
|
|
||||||
# Application hot keys
|
# Application hot keys
|
||||||
bindsym $mod+Return exec "alacritty"
|
bindsym $mod+Return exec "alacritty"
|
||||||
bindsym $mod+Shift+f exec "brave"
|
bindsym $mod+Shift+b exec "blueman-manager"
|
||||||
|
bindsym $mod+Shift+d exec "vesktop"
|
||||||
bindsym $mod+Shift+e exec "emacsclient -c"
|
bindsym $mod+Shift+e exec "emacsclient -c"
|
||||||
bindsym $mod+Shift+d exec "discord"
|
bindsym $mod+Shift+f exec "brave"
|
||||||
bindsym $mod+Shift+t exec "thunar"
|
|
||||||
bindsym $mod+Shift+s exec "flameshot gui"
|
|
||||||
bindsym $mod+Shift+m exec "proton-mail"
|
bindsym $mod+Shift+m exec "proton-mail"
|
||||||
bindsym $mod+Shift+p exec "rofi-rbw"
|
bindsym $mod+Shift+p exec "rofi-rbw"
|
||||||
|
bindsym $mod+Shift+s exec "flameshot gui"
|
||||||
# Lock screen with i3lock-fancy
|
bindsym $mod+Shift+t exec "thunar"
|
||||||
bindsym $mod+Shift+x exec "i3lock-fancy"
|
bindsym $mod+Shift+x exec "i3lock-fancy"
|
||||||
|
|
||||||
# kill focused window
|
# kill focused window
|
||||||
@@ -45,6 +44,10 @@ bindsym $mod+Shift+k move up
|
|||||||
bindsym $mod+Shift+j move down
|
bindsym $mod+Shift+j move down
|
||||||
bindsym $mod+Shift+l move right
|
bindsym $mod+Shift+l move right
|
||||||
|
|
||||||
|
# move entire workspace
|
||||||
|
bindsym $mod+Shift+period move workspace to output right
|
||||||
|
bindsym $mod+Shift+comma move workspace to output left
|
||||||
|
|
||||||
# split in horizontal orientation
|
# split in horizontal orientation
|
||||||
bindsym $mod+semicolon split h
|
bindsym $mod+semicolon split h
|
||||||
|
|
||||||
@@ -156,9 +159,8 @@ client.focused_inactive #333333 #222222 #888888 #292d2e #eeeeee
|
|||||||
client.unfocused #333333 #222222 #888888 #292d2e #eeeeee
|
client.unfocused #333333 #222222 #888888 #292d2e #eeeeee
|
||||||
|
|
||||||
# Auto lock the screen after X minutes
|
# Auto lock the screen after X minutes
|
||||||
exec "xautolock -detectsleep -time 3 -locker i3lock-fancy"
|
#exec "xautolock -detectsleep -time 30 -locker i3lock-fancy"
|
||||||
|
|
||||||
# Startup Applications
|
# Startup Applications
|
||||||
exec_always --no-startup-id "killall polybar; polybar" # status bar
|
|
||||||
exec --no-startup-id "$HOME/.screenlayout/launch.sh &" # setup screen layout and wallpapers
|
exec --no-startup-id "$HOME/.screenlayout/launch.sh &" # setup screen layout and wallpapers
|
||||||
exec --no-startup-id "$HOME/.scripts/autostart_desktop.sh &" # run autostart desktop apps
|
exec --no-startup-id "$HOME/.scripts/autostart_desktop.sh &" # run autostart desktop apps
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ disabled = #707880
|
|||||||
width = 100%
|
width = 100%
|
||||||
height = 24pt
|
height = 24pt
|
||||||
radius = 6
|
radius = 6
|
||||||
|
monitor = ${env:MONITOR:}
|
||||||
|
|
||||||
; dpi = 96
|
; dpi = 96
|
||||||
|
|
||||||
|
|||||||
@@ -438,7 +438,7 @@ When installing Vertico, the documentation mentions a few other packages that ad
|
|||||||
:after vertico
|
:after vertico
|
||||||
:config
|
:config
|
||||||
(jm/leader-keys
|
(jm/leader-keys
|
||||||
"pg" 'consult-grep
|
"pg" 'consult-git-grep
|
||||||
"pf" 'consult-find))
|
"pf" 'consult-find))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
|||||||
@@ -48,9 +48,10 @@ Shortcut to goto todays org-roam dailies document.
|
|||||||
|
|
||||||
(defun jm/org-roam-capture-today ()
|
(defun jm/org-roam-capture-today ()
|
||||||
(interactive)
|
(interactive)
|
||||||
(jm/org-roam-goto-day 0 t))
|
(jm/org-roam-goto-day 0 t "t")
|
||||||
|
(delete-other-windows))
|
||||||
|
|
||||||
(defun jm/org-roam-goto-day (days &optional force-capture)
|
(defun jm/org-roam-goto-day (days &optional force-capture keys)
|
||||||
(let* ((base-time
|
(let* ((base-time
|
||||||
(if (and (jm/dailies-file-p) (not (eq days 0)))
|
(if (and (jm/dailies-file-p) (not (eq days 0)))
|
||||||
(date-to-time (file-name-base (buffer-file-name)))
|
(date-to-time (file-name-base (buffer-file-name)))
|
||||||
@@ -61,7 +62,7 @@ Shortcut to goto todays org-roam dailies document.
|
|||||||
(jm/org-roam-refresh-agenda-list)
|
(jm/org-roam-refresh-agenda-list)
|
||||||
(if (and (file-exists-p full-path) (not force-capture))
|
(if (and (file-exists-p full-path) (not force-capture))
|
||||||
(find-file full-path)
|
(find-file full-path)
|
||||||
(org-roam-dailies--capture rel-time))))
|
(org-roam-dailies--capture rel-time nil keys))))
|
||||||
|
|
||||||
(jm/leader-keys
|
(jm/leader-keys
|
||||||
"oy" '((lambda () (interactive) (jm/org-roam-goto-day -1)) :which-key "Open/create yesterday's daily notes file")
|
"oy" '((lambda () (interactive) (jm/org-roam-goto-day -1)) :which-key "Open/create yesterday's daily notes file")
|
||||||
|
|||||||
@@ -80,8 +80,10 @@ This will include any language server packages and configuration.
|
|||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package web-mode
|
(use-package web-mode
|
||||||
:defer t
|
:defer t
|
||||||
:mode "\\.html\\'"
|
:mode ("\\.html\\'" "\\.svelte\\'")
|
||||||
:hook (web-mode . lsp-deferred))
|
:hook (web-mode . lsp-deferred)
|
||||||
|
:init
|
||||||
|
(setq web-mode-engines-alist '(("svelte" . "\\.svelte\\'"))))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** JavaScript/Typescript
|
** JavaScript/Typescript
|
||||||
@@ -245,3 +247,4 @@ Nix is the language used by NixOS and the Nix package manager.
|
|||||||
:mode "\\.nix\\'"
|
:mode "\\.nix\\'"
|
||||||
:hook (nix-mode . lsp-deferred))
|
:hook (nix-mode . lsp-deferred))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
function load_script() {
|
function load_script() {
|
||||||
if [ -f "$1" ]; then
|
if [ -f "$1" ]; then
|
||||||
$1
|
bash "$1" &
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -10,3 +10,4 @@ function load_script() {
|
|||||||
load_script "$HOME/.screenlayout/wallpapers.sh"
|
load_script "$HOME/.screenlayout/wallpapers.sh"
|
||||||
load_script "$HOME/.screenlayout/layout.sh"
|
load_script "$HOME/.screenlayout/layout.sh"
|
||||||
load_script "$HOME/.screenlayout/wallpapers.sh"
|
load_script "$HOME/.screenlayout/wallpapers.sh"
|
||||||
|
load_script "$HOME/.screenlayout/polybar.sh"
|
||||||
|
|||||||
9
dotfiles/.screenlayout/polybar.sh
Executable file
9
dotfiles/.screenlayout/polybar.sh
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
if which xrandr; then
|
||||||
|
for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do
|
||||||
|
MONITOR=$m polybar --reload example &
|
||||||
|
done
|
||||||
|
else
|
||||||
|
polybar --reload example &
|
||||||
|
fi
|
||||||
76
flake.lock
generated
76
flake.lock
generated
@@ -1,53 +1,73 @@
|
|||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"home-manager": {
|
"home": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1739381933,
|
"lastModified": 1764536451,
|
||||||
"narHash": "sha256-4gvobxITgcrNGfwsVG5a46QzQCX89btIYw23p0ilbcc=",
|
"narHash": "sha256-BgtcUkBfItu9/yU14IgUaj4rYOanTOUZjUfBP20/ZB4=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "15b59d4191b993ebdfcb1f61b834fced217882ba",
|
"rev": "3fdd076e08049a9c7a83149b270440d9787d2df5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "master",
|
"ref": "release-25.11",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nix-darwin": {
|
"home-unstable": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nix-unstable"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1764304195,
|
||||||
|
"narHash": "sha256-bO7FN/bF6gG7TlZpKAZjO3VvfsLaPFkefeUfJJ7F/7w=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "86ff0ef506c209bb397849706e85cc3a913cb577",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-index-database": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1742013980,
|
"lastModified": 1763870992,
|
||||||
"narHash": "sha256-34YbfwABU5nb0F5eaaJE3ujldaNDhmyxw7CWqhXJV08=",
|
"narHash": "sha256-NPyc76Wxmv/vAsXJ8F+/8fXECHYcv2YGSqdiSHp/F/A=",
|
||||||
"owner": "LnL7",
|
"owner": "nix-community",
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-index-database",
|
||||||
"rev": "9175b4bb5f127fb7b5784b14f7e01abff24c378f",
|
"rev": "d7423982c7a26586aa237d130b14c8b302c7a367",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "LnL7",
|
"owner": "nix-community",
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-index-database",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nix-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1739214665,
|
"lastModified": 1764242076,
|
||||||
"narHash": "sha256-26L8VAu3/1YRxS8MHgBOyOM8xALdo6N0I04PgorE7UM=",
|
"narHash": "sha256-sKoIWfnijJ0+9e4wRvIgm/HgE27bzwQxcEmo2J/gNpI=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "64e75cd44acf21c7933d61d7721e812eac1b5a0a",
|
"rev": "2fad6eac6077f03fe109c4d4eb171cf96791faa4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -57,10 +77,28 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1764604385,
|
||||||
|
"narHash": "sha256-ssKbRa5FLDX/Kc0dQFUWFRt35UfdNDQD6GxvamdhGQY=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "93488aad5d24df9131cbc0a25aa533dc866af473",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "release-25.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"home-manager": "home-manager",
|
"home": "home",
|
||||||
"nix-darwin": "nix-darwin",
|
"home-unstable": "home-unstable",
|
||||||
|
"nix-index-database": "nix-index-database",
|
||||||
|
"nix-unstable": "nix-unstable",
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
194
flake.nix
194
flake.nix
@@ -2,131 +2,91 @@
|
|||||||
description = "Configuration flake for RandomCTF";
|
description = "Configuration flake for RandomCTF";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/release-25.11";
|
||||||
home-manager = {
|
home = {
|
||||||
url = "github:nix-community/home-manager/master";
|
url = "github:nix-community/home-manager/release-25.11";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
nix-darwin = {
|
nix-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
url = "github:LnL7/nix-darwin";
|
home-unstable = {
|
||||||
|
url = "github:nix-community/home-manager";
|
||||||
|
inputs.nixpkgs.follows = "nix-unstable";
|
||||||
|
};
|
||||||
|
|
||||||
|
nix-index-database = {
|
||||||
|
url = "github:nix-community/nix-index-database";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, nixpkgs, nix-darwin, home-manager, ... } @ inputs: {
|
outputs = { self, nixpkgs, home, nix-unstable, home-unstable, nix-index-database, ... } @ inputs:
|
||||||
|
let
|
||||||
|
mkNixosConfig = hostname: modules: nixpkgs.lib.nixosSystem {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
specialArgs = { inherit inputs; };
|
||||||
|
inherit modules;
|
||||||
|
};
|
||||||
|
|
||||||
# Nixos Configurations
|
mkHomeConfig = username: modules: home.lib.homeManagerConfiguration {
|
||||||
|
pkgs = import nixpkgs {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
};
|
||||||
|
|
||||||
nixosConfigurations.randomctf = nixpkgs.lib.nixosSystem {
|
extraSpecialArgs = {
|
||||||
system = "x86_64-linux";
|
inherit inputs;
|
||||||
specialArgs = { inherit inputs; };
|
user = username;
|
||||||
modules = [
|
};
|
||||||
./config/shared.nix
|
|
||||||
./config/omen.nix
|
inherit modules;
|
||||||
];
|
};
|
||||||
|
|
||||||
|
mkNixosUnstableConfig = hostname: modules: nix-unstable.lib.nixosSystem {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
specialArgs = { inherit inputs; };
|
||||||
|
inherit modules;
|
||||||
|
};
|
||||||
|
|
||||||
|
mkHomeUnstableConfig = username: modules: home-unstable.lib.homeManagerConfiguration {
|
||||||
|
pkgs = import nix-unstable {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
};
|
||||||
|
|
||||||
|
extraSpecialArgs = {
|
||||||
|
inherit inputs;
|
||||||
|
user = username;
|
||||||
|
};
|
||||||
|
|
||||||
|
inherit modules;
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
|
||||||
|
# Nixos Configurations
|
||||||
|
nixosConfigurations = {
|
||||||
|
randomctf = mkNixosUnstableConfig "randomctf" [ ./config/shared.nix ./config/omen.nix ];
|
||||||
|
r330-media = mkNixosConfig "r330-media" [ ./config/media.nix ];
|
||||||
|
sampledb-dev = mkNixosConfig "sampledb-dev" [ ./config/sampledb.nix ];
|
||||||
|
r330-logging = mkNixosConfig "r330-logging" [ ./config/logging.nix ];
|
||||||
|
mindforge = mkNixosConfig "mindforge" [ ./config/ai.nix ];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Home-Manager Configurations
|
||||||
|
homeConfigurations = {
|
||||||
|
random = mkHomeUnstableConfig "random" [
|
||||||
|
./home/headful-nixos.nix
|
||||||
|
./home/modules/development.nix
|
||||||
|
./home/modules/gui-apps.nix
|
||||||
|
./home/modules/hacking.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
sampledb = mkHomeConfig "sampledb" [
|
||||||
|
./home/headless-nixos.nix
|
||||||
|
./home/modules/development.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
media = mkHomeConfig "media" [ ./home/headless-nixos.nix ];
|
||||||
|
logging = mkHomeConfig "logging" [ ./home/headless-nixos.nix ];
|
||||||
|
mindforge = mkHomeConfig "mindforge" [ ./home/headless-nixos.nix ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
nixosConfigurations."r330-media" = nixpkgs.lib.nixosSystem {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
specialArgs = { inherit inputs; };
|
|
||||||
modules = [
|
|
||||||
./config/media.nix
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
nixosConfigurations."sampledb-dev" = nixpkgs.lib.nixosSystem {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
specialArgs = { inherit inputs; };
|
|
||||||
modules = [
|
|
||||||
./config/sampledb.nix
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
nixosConfigurations."r330-logging" = nixpkgs.lib.nixosSystem {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
specialArgs = { inherit inputs; };
|
|
||||||
modules = [
|
|
||||||
./config/logging.nix
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
nixosConfigurations."mindforge" = nixpkgs.lib.nixosSystem {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
specialArgs = { inherit inputs; };
|
|
||||||
modules = [
|
|
||||||
./config/ai.nix
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
# Home-Manager Configurations
|
|
||||||
|
|
||||||
homeConfigurations.random = home-manager.lib.homeManagerConfiguration {
|
|
||||||
pkgs = nixpkgs.legacyPackages."x86_64-linux";
|
|
||||||
extraSpecialArgs.user = "random";
|
|
||||||
modules = [
|
|
||||||
./home/headful-nixos.nix
|
|
||||||
./home/modules/development.nix
|
|
||||||
./home/modules/gui-apps.nix
|
|
||||||
./home/modules/hacking.nix
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
homeConfigurations.media = home-manager.lib.homeManagerConfiguration {
|
|
||||||
pkgs = nixpkgs.legacyPackages."x86_64-linux";
|
|
||||||
extraSpecialArgs.user = "media";
|
|
||||||
modules = [
|
|
||||||
./home/headless-nixos.nix
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
homeConfigurations.sampledb = home-manager.lib.homeManagerConfiguration {
|
|
||||||
pkgs = nixpkgs.legacyPackages."x86_64-linux";
|
|
||||||
extraSpecialArgs.user = "sampledb";
|
|
||||||
modules = [
|
|
||||||
./home/headless-nixos.nix
|
|
||||||
./home/modules/development.nix
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
homeConfigurations.logging = home-manager.lib.homeManagerConfiguration {
|
|
||||||
pkgs = nixpkgs.legacyPackages."x86_64-linux";
|
|
||||||
extraSpecialArgs.user = "logging";
|
|
||||||
modules = [
|
|
||||||
./home/headless-nixos.nix
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
homeConfigurations.mindforge = home-manager.lib.homeManagerConfiguration {
|
|
||||||
pkgs = nixpkgs.legacyPackages."x86_64-linux";
|
|
||||||
extraSpecialArgs.user = "mindforge";
|
|
||||||
modules = [
|
|
||||||
./home/headless-nixos.nix
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
# Darwin Configuration
|
|
||||||
|
|
||||||
darwinConfigurations."Jadens-MacBook-Air" = nix-darwin.lib.darwinSystem {
|
|
||||||
system = "aarch64-darwin";
|
|
||||||
specialArgs = { inherit inputs; };
|
|
||||||
modules = [
|
|
||||||
./config/darwin.nix
|
|
||||||
home-manager.darwinModules.home-manager {
|
|
||||||
home-manager.useGlobalPkgs = true;
|
|
||||||
home-manager.useUserPackages = true;
|
|
||||||
home-manager.users.jadenmaxwell = import ./home/darwin.nix;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
homeConfigurations.jadenmaxwell = home-manager.lib.homeManagerConfiguration {
|
|
||||||
pkgs = nixpkgs.legacyPackages."aarch64-darwin";
|
|
||||||
modules = [
|
|
||||||
./home/darwin.nix
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,16 +14,21 @@
|
|||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" =
|
||||||
{ device = "/dev/disk/by-uuid/d8ec7c7e-ce95-432c-932d-663dc261c623";
|
{ device = "/dev/disk/by-uuid/466b1e73-407e-48de-a2b8-f35f96bef1fd";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/boot" =
|
fileSystems."/boot" =
|
||||||
{ device = "/dev/disk/by-uuid/1842-1672";
|
{ device = "/dev/disk/by-uuid/0079-63AB";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
options = [ "fmask=0022" "dmask=0022" ];
|
options = [ "fmask=0022" "dmask=0022" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
fileSystems."/mnt/logs" = {
|
||||||
|
device = "/dev/disk/by-uuid/8e8ee0ad-8d74-486f-b33a-ed1294cb3a63";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
swapDevices = [ ];
|
swapDevices = [ ];
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
|
|||||||
@@ -19,12 +19,12 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/mnt/media" =
|
fileSystems."/mnt/media" =
|
||||||
{ device = "/dev/disk/by-uuid/b579c911-e74c-4f03-b918-a4e5a6b764ab";
|
{ device = "/dev/disk/by-uuid/e9df1e21-553e-43e2-bceb-8a5e274a95b7";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/mnt/files" =
|
fileSystems."/mnt/files" =
|
||||||
{ device = "/dev/disk/by-uuid/f3a62e58-9556-47d7-b78b-3211f269f4ce";
|
{ device = "/dev/disk/by-uuid/efc25f40-0cad-404b-8113-526ad5a30539";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -19,16 +19,16 @@
|
|||||||
options snd-hda-intel model=dell-headset-multi
|
options snd-hda-intel model=dell-headset-multi
|
||||||
'';
|
'';
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" = {
|
||||||
{ device = "/dev/disk/by-uuid/f4f207c5-08d5-4848-920c-76e99280b04c";
|
device = "/dev/disk/by-partlabel/root";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/boot" =
|
fileSystems."/boot" = {
|
||||||
{ device = "/dev/disk/by-uuid/7F2D-4654";
|
device = "/dev/disk/by-partlabel/EFI";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
options = [ "fmask=0022" "dmask=0022" ];
|
options = [ "fmask=0022" "dmask=0022" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [ ];
|
swapDevices = [ ];
|
||||||
|
|
||||||
|
|||||||
@@ -13,16 +13,26 @@
|
|||||||
boot.kernelModules = [ ];
|
boot.kernelModules = [ ];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" = {
|
||||||
{ device = "/dev/disk/by-uuid/8d1d0298-307f-4d9a-84f8-0434fafa0c55";
|
device = "/dev/disk/by-uuid/8d1d0298-307f-4d9a-84f8-0434fafa0c55";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/boot" =
|
fileSystems."/sampledb" = {
|
||||||
{ device = "/dev/disk/by-uuid/4821-12F7";
|
device = "/dev/disk/by-uuid/7d70bfdb-510f-4f30-969f-d4ac59175719";
|
||||||
fsType = "vfat";
|
fsType = "ext4";
|
||||||
options = [ "fmask=0022" "dmask=0022" ];
|
};
|
||||||
};
|
|
||||||
|
fileSystems."/mnt/archive" = {
|
||||||
|
device = "/dev/disk/by-uuid/66103455-9fcd-4b5b-9735-37b85a51019d";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" = {
|
||||||
|
device = "/dev/disk/by-uuid/4821-12F7";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [ "fmask=0022" "dmask=0022" ];
|
||||||
|
};
|
||||||
|
|
||||||
swapDevices = [ ];
|
swapDevices = [ ];
|
||||||
|
|
||||||
|
|||||||
@@ -1,31 +0,0 @@
|
|||||||
{ pkgs, ... }: {
|
|
||||||
home = {
|
|
||||||
username = "jadenmaxwell";
|
|
||||||
homeDirectory = "/Users/jadenmaxwell";
|
|
||||||
};
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
gnupg
|
|
||||||
vesktop
|
|
||||||
];
|
|
||||||
|
|
||||||
imports = [
|
|
||||||
./shared.nix
|
|
||||||
./modules/utils.nix
|
|
||||||
./modules/development.nix
|
|
||||||
./modules/sketchybar.nix
|
|
||||||
./modules/aerospace.nix
|
|
||||||
./modules/neovim.nix
|
|
||||||
./modules/emacs.nix
|
|
||||||
./modules/zsh.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.ssh.extraConfig = ''
|
|
||||||
Host 192.168.100.*
|
|
||||||
SetEnv TERM=xterm-256color
|
|
||||||
'';
|
|
||||||
|
|
||||||
home.file = {
|
|
||||||
".config/ghostty/config".source = ../dotfiles/.config/ghostty/config;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -8,7 +8,6 @@
|
|||||||
imports = [
|
imports = [
|
||||||
./shared.nix
|
./shared.nix
|
||||||
./modules/utils.nix
|
./modules/utils.nix
|
||||||
./modules/linux-only-utils.nix
|
|
||||||
./modules/networking.nix
|
./modules/networking.nix
|
||||||
./modules/neovim.nix
|
./modules/neovim.nix
|
||||||
./modules/emacs.nix
|
./modules/emacs.nix
|
||||||
@@ -30,6 +29,7 @@
|
|||||||
".scripts/autostart_desktop.sh".source = ../dotfiles/.scripts/autostart_desktop.sh;
|
".scripts/autostart_desktop.sh".source = ../dotfiles/.scripts/autostart_desktop.sh;
|
||||||
".screenlayout/launch.sh".source = ../dotfiles/.screenlayout/launch.sh;
|
".screenlayout/launch.sh".source = ../dotfiles/.screenlayout/launch.sh;
|
||||||
".screenlayout/wallpapers.sh".source = ../dotfiles/.screenlayout/wallpapers.sh;
|
".screenlayout/wallpapers.sh".source = ../dotfiles/.screenlayout/wallpapers.sh;
|
||||||
|
".screenlayout/polybar.sh".source = ../dotfiles/.screenlayout/polybar.sh;
|
||||||
".config/i3/config".source = ../dotfiles/.config/i3/config;
|
".config/i3/config".source = ../dotfiles/.config/i3/config;
|
||||||
".config/rofi/config.rasi".source = ../dotfiles/.config/rofi/config.rasi;
|
".config/rofi/config.rasi".source = ../dotfiles/.config/rofi/config.rasi;
|
||||||
".config/polybar/config.ini".source = ../dotfiles/.config/polybar/config.ini;
|
".config/polybar/config.ini".source = ../dotfiles/.config/polybar/config.ini;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs, user, ... }: {
|
{ user, ... }: {
|
||||||
|
|
||||||
home = {
|
home = {
|
||||||
username = "${user}";
|
username = "${user}";
|
||||||
@@ -8,7 +8,6 @@
|
|||||||
imports = [
|
imports = [
|
||||||
./shared.nix
|
./shared.nix
|
||||||
./modules/utils.nix
|
./modules/utils.nix
|
||||||
./modules/linux-only-utils.nix
|
|
||||||
./modules/networking.nix
|
./modules/networking.nix
|
||||||
./modules/neovim.nix
|
./modules/neovim.nix
|
||||||
./modules/tmux.nix
|
./modules/tmux.nix
|
||||||
|
|||||||
@@ -1,10 +1,24 @@
|
|||||||
{ pkgs, ... }: {
|
{ home, pkgs, ... }: {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
# C/C++
|
||||||
clang
|
clang
|
||||||
clang-tools
|
|
||||||
cargo
|
|
||||||
python3
|
|
||||||
gnumake
|
gnumake
|
||||||
|
clang-tools
|
||||||
|
|
||||||
|
# Rust
|
||||||
|
rustc
|
||||||
|
cargo
|
||||||
|
cargo-edit
|
||||||
|
cargo-flamegraph
|
||||||
|
rust-analyzer
|
||||||
|
|
||||||
|
# Other
|
||||||
|
python3
|
||||||
ansible
|
ansible
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# To prevent sysroot errors in rust-analyzer
|
||||||
|
home.sessionVariables = {
|
||||||
|
RUST_SRC_PATH = "${pkgs.rust.packages.stable.rustPlatform.rustLibSrc}";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,24 +1,25 @@
|
|||||||
{ pkgs, ... }: {
|
{ pkgs, ... }: {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# Build deps
|
# Build deps
|
||||||
|
nodejs
|
||||||
cmake
|
cmake
|
||||||
libtool
|
libtool
|
||||||
|
|
||||||
# Additional packages for functionality
|
# Additional packages for functionality
|
||||||
isync
|
|
||||||
ispell
|
|
||||||
texliveFull
|
|
||||||
mu
|
mu
|
||||||
zip
|
zip
|
||||||
unzip
|
unzip
|
||||||
|
isync
|
||||||
|
ispell
|
||||||
|
ledger
|
||||||
|
texliveFull
|
||||||
|
|
||||||
# Fonts
|
# Fonts
|
||||||
maple-mono
|
maple-mono.truetype
|
||||||
|
|
||||||
# LSP Servers
|
# LSP Servers
|
||||||
nil
|
nil
|
||||||
ccls
|
ccls
|
||||||
rust-analyzer
|
|
||||||
yaml-language-server
|
yaml-language-server
|
||||||
python3Packages.python-lsp-server
|
python3Packages.python-lsp-server
|
||||||
nodePackages.typescript-language-server
|
nodePackages.typescript-language-server
|
||||||
@@ -28,7 +29,7 @@
|
|||||||
programs = {
|
programs = {
|
||||||
emacs = {
|
emacs = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.emacs29;
|
package = pkgs.emacs30;
|
||||||
extraPackages = epkgs: with epkgs; [
|
extraPackages = epkgs: with epkgs; [
|
||||||
mu4e
|
mu4e
|
||||||
vterm
|
vterm
|
||||||
@@ -37,15 +38,4 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
home.file = {
|
|
||||||
".emacs".source = ../../dotfiles/.emacs;
|
|
||||||
".emacs.d/config.org".source = ../../dotfiles/.emacs.d/config.org;
|
|
||||||
".emacs.d/terminal.org".source = ../../dotfiles/.emacs.d/terminal.org;
|
|
||||||
".emacs.d/functions.org".source = ../../dotfiles/.emacs.d/functions.org;
|
|
||||||
".emacs.d/email.org".source = ../../dotfiles/.emacs.d/email.org;
|
|
||||||
".emacs.d/org.org".source = ../../dotfiles/.emacs.d/org.org;
|
|
||||||
".emacs.d/lsp.org".source = ../../dotfiles/.emacs.d/lsp.org;
|
|
||||||
".mbsyncrc".source = ../../dotfiles/.mbsyncrc;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,10 +4,8 @@
|
|||||||
vlc
|
vlc
|
||||||
dconf
|
dconf
|
||||||
brave
|
brave
|
||||||
okular
|
|
||||||
vesktop
|
vesktop
|
||||||
zoom-us
|
zoom-us
|
||||||
discord
|
|
||||||
twinkle
|
twinkle
|
||||||
audacity
|
audacity
|
||||||
flameshot
|
flameshot
|
||||||
@@ -17,6 +15,7 @@
|
|||||||
virt-viewer
|
virt-viewer
|
||||||
nextcloud-client
|
nextcloud-client
|
||||||
protonmail-desktop
|
protonmail-desktop
|
||||||
|
kdePackages.okular
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.obs-studio = {
|
programs.obs-studio = {
|
||||||
@@ -46,7 +45,7 @@
|
|||||||
xdg.mimeApps = {
|
xdg.mimeApps = {
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultApplications = {
|
defaultApplications = {
|
||||||
"text/html" = "brave-browser.desktop";
|
"text/html" = "brave.desktop";
|
||||||
"x-scheme-handler/http" = "brave-browser.desktop";
|
"x-scheme-handler/http" = "brave-browser.desktop";
|
||||||
"x-scheme-handler/https" = "brave-browser.desktop";
|
"x-scheme-handler/https" = "brave-browser.desktop";
|
||||||
"x-scheme-handler/about" = "brave-browser.desktop";
|
"x-scheme-handler/about" = "brave-browser.desktop";
|
||||||
|
|||||||
@@ -1,41 +1,51 @@
|
|||||||
{ lib, config, pkgs, ... }: {
|
{ lib, config, pkgs, ... }: {
|
||||||
# Hacking specific packages.
|
# Hacking specific packages.
|
||||||
home.packages = (with pkgs; [
|
home.packages = with pkgs; [
|
||||||
gdb
|
# Utilities
|
||||||
yara
|
imhex
|
||||||
|
rlwrap
|
||||||
|
openssl
|
||||||
|
inetutils
|
||||||
|
|
||||||
|
# Enumeration
|
||||||
nmap
|
nmap
|
||||||
#john
|
|
||||||
ffuf
|
ffuf
|
||||||
amass
|
amass
|
||||||
nikto
|
|
||||||
samba
|
|
||||||
nuclei
|
|
||||||
rlwrap
|
|
||||||
sqlmap
|
|
||||||
wpscan
|
|
||||||
ghidra
|
|
||||||
pwndbg
|
|
||||||
strace
|
|
||||||
strace
|
|
||||||
openssl
|
|
||||||
remmina
|
|
||||||
pwntools
|
|
||||||
openldap
|
|
||||||
rustscan
|
rustscan
|
||||||
inetutils
|
|
||||||
thc-hydra
|
thc-hydra
|
||||||
exploitdb
|
|
||||||
responder
|
|
||||||
burpsuite
|
burpsuite
|
||||||
|
feroxbuster
|
||||||
|
|
||||||
|
# Vulnerability Scanning
|
||||||
|
nikto
|
||||||
|
nuclei
|
||||||
|
wpscan
|
||||||
|
sqlmap
|
||||||
|
exploitdb
|
||||||
|
|
||||||
|
# Windows Exploitation
|
||||||
|
samba
|
||||||
|
remmina
|
||||||
|
openldap
|
||||||
|
responder
|
||||||
evil-winrm
|
evil-winrm
|
||||||
cifs-utils
|
cifs-utils
|
||||||
feroxbuster
|
|
||||||
|
# Reverse Engineering
|
||||||
|
gdb
|
||||||
|
yara
|
||||||
|
strace
|
||||||
|
ghidra
|
||||||
|
exiftool
|
||||||
|
pwntools
|
||||||
|
flare-floss
|
||||||
|
|
||||||
|
# Wordlists
|
||||||
(wordlists.override {
|
(wordlists.override {
|
||||||
lists = with pkgs; [
|
lists = with pkgs; [
|
||||||
rockyou
|
rockyou
|
||||||
seclists
|
seclists
|
||||||
];
|
];
|
||||||
})
|
})
|
||||||
]);
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
{ pkgs, ... }: {
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
ncdu
|
|
||||||
nvtopPackages.full
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
{ pkgs, lib, config, ... }: let
|
{ pkgs, lib, config, ... }: let
|
||||||
mypkgs = import ../../packages/all-packages.nix { inherit pkgs lib config; };
|
mypkgs = import ../../packages/all-packages.nix { inherit pkgs lib config; };
|
||||||
in {
|
in {
|
||||||
home.packages = with pkgs; [ tmux ];
|
home.packages = with pkgs; [ tmux ];
|
||||||
home.file = {
|
home.file = {
|
||||||
".tmux/plugins/tpm".source = "${mypkgs.tpm}";
|
".tmux/plugins/tpm".source = "${mypkgs.tpm}";
|
||||||
".tmux.conf".source = ../../dotfiles/.tmux.conf;
|
".tmux.conf".source = ../../dotfiles/.tmux.conf;
|
||||||
|
|||||||
@@ -1,31 +1,43 @@
|
|||||||
{ pkgs, ... }: {
|
{ pkgs, inputs, ... }: {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# Nix specific utilities
|
# Nix specific utilities
|
||||||
manix
|
manix
|
||||||
direnv
|
direnv
|
||||||
rippkgs
|
rippkgs
|
||||||
nix-tree
|
nix-tree
|
||||||
|
nix-init
|
||||||
|
patchelf
|
||||||
|
|
||||||
# Utilities
|
# Utilities
|
||||||
jq
|
jq
|
||||||
|
yq
|
||||||
bc
|
bc
|
||||||
|
duf
|
||||||
|
cava
|
||||||
|
ncdu
|
||||||
file
|
file
|
||||||
|
dysk
|
||||||
wget
|
wget
|
||||||
curl
|
curl
|
||||||
btop
|
btop
|
||||||
|
dive
|
||||||
|
dust
|
||||||
|
timer
|
||||||
p7zip
|
p7zip
|
||||||
yt-dlp
|
yt-dlp
|
||||||
ffmpeg
|
ffmpeg
|
||||||
sshpass
|
sshpass
|
||||||
|
httrack
|
||||||
ripgrep
|
ripgrep
|
||||||
openvpn
|
openvpn
|
||||||
|
xclicker
|
||||||
pciutils
|
pciutils
|
||||||
fastfetch
|
fastfetch
|
||||||
age
|
nvtopPackages.full
|
||||||
ouch
|
|
||||||
cryfs
|
# Encryption Tools
|
||||||
dive
|
#age
|
||||||
dust
|
#cryfs
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.direnv = {
|
programs.direnv = {
|
||||||
@@ -33,4 +45,8 @@
|
|||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
nix-direnv.enable = true;
|
nix-direnv.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Install comma
|
||||||
|
imports = [ inputs.nix-index-database.homeModules.nix-index ];
|
||||||
|
programs.nix-index-database.comma.enable = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,8 @@
|
|||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
settings = {
|
settings = {
|
||||||
enter_accept = false;
|
enter_accept = false;
|
||||||
|
filter_mode = "host";
|
||||||
|
filter_mode_shell_up_key_binding = "session";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
zsh = {
|
zsh = {
|
||||||
@@ -30,8 +32,12 @@
|
|||||||
shellAliases = {
|
shellAliases = {
|
||||||
cd = "z";
|
cd = "z";
|
||||||
ls = "eza";
|
ls = "eza";
|
||||||
|
mvi = "mv -t ~/Nextcloud/INBOX";
|
||||||
|
sdb = "sdb-client";
|
||||||
open = "xdg-open";
|
open = "xdg-open";
|
||||||
|
reload = "source ~/.zshrc";
|
||||||
histogram = "awkuniq -c | sort -nr";
|
histogram = "awkuniq -c | sort -nr";
|
||||||
|
start-day = "emacsclient -c -n -e '(jm/org-roam-capture-today)'";
|
||||||
json-less = "jq -C . | less -R";
|
json-less = "jq -C . | less -R";
|
||||||
csv2json = "python -c 'import csv, json, sys; print(json.dumps([dict(r) for r in csv.DictReader(sys.stdin)]))'";
|
csv2json = "python -c 'import csv, json, sys; print(json.dumps([dict(r) for r in csv.DictReader(sys.stdin)]))'";
|
||||||
|
|
||||||
@@ -47,17 +53,12 @@
|
|||||||
mindforge = "ssh mindforge@mindforge.randomctf.local";
|
mindforge = "ssh mindforge@mindforge.randomctf.local";
|
||||||
|
|
||||||
# Nix Specific aliases
|
# Nix Specific aliases
|
||||||
update-darwin = "darwin-rebuild switch --flake ~/dotfiles";
|
|
||||||
update-config = "sudo nixos-rebuild switch --flake ~/dotfiles";
|
update-config = "sudo nixos-rebuild switch --flake ~/dotfiles";
|
||||||
update-home = "home-manager switch --flake ~/dotfiles";
|
update-home = "home-manager switch --flake ~/dotfiles";
|
||||||
update-all = "update-config && update-home";
|
update-all = "update-config && update-home";
|
||||||
};
|
};
|
||||||
|
|
||||||
initExtraBeforeCompInit = ''
|
initContent = ''
|
||||||
[[ $TERM == "dumb" ]] && unsetopt zle && PS1='$ ' && return
|
|
||||||
'';
|
|
||||||
|
|
||||||
initExtra = ''
|
|
||||||
export PATH=$PATH:~/.cargo/bin
|
export PATH=$PATH:~/.cargo/bin
|
||||||
function .. { cd .. }
|
function .. { cd .. }
|
||||||
function ... { cd ../.. }
|
function ... { cd ../.. }
|
||||||
@@ -66,13 +67,11 @@
|
|||||||
function ...... { cd ../../../../../.. }
|
function ...... { cd ../../../../../.. }
|
||||||
function ....... { cd ../../../../../../.. }
|
function ....... { cd ../../../../../../.. }
|
||||||
|
|
||||||
if [[ "$(uname)" == "Darwin" ]]; then
|
|
||||||
source <(/opt/homebrew/bin/brew shellenv)
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -n "$SSH_CONNECTION" && "$TERM" == "ghostty" ]]; then
|
if [[ -n "$SSH_CONNECTION" && "$TERM" == "ghostty" ]]; then
|
||||||
export TERM="xterm-256color"
|
export TERM="xterm-256color"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
source ~/dotfiles/bash-scripts/aliases.sh
|
||||||
'';
|
'';
|
||||||
|
|
||||||
plugins = [
|
plugins = [
|
||||||
|
|||||||
@@ -1,16 +1,22 @@
|
|||||||
{ lib, config, pkgs, ... }: {
|
{ options, ... }: {
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
fonts.fontconfig.enable = true;
|
fonts.fontconfig.enable = true;
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
home-manager.enable = true;
|
home-manager.enable = true;
|
||||||
git = {
|
git = if builtins.hasAttr "settings" options.programs.git then {
|
||||||
|
enable = true;
|
||||||
|
settings.user = {
|
||||||
|
name = "Random936";
|
||||||
|
email = "randomdude936@gmail.com";
|
||||||
|
};
|
||||||
|
} else {
|
||||||
enable = true;
|
enable = true;
|
||||||
userName = "Random936";
|
userName = "Random936";
|
||||||
userEmail = "randomdude936@gmail.com";
|
userEmail = "randomdude936@gmail.com";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
home.stateVersion = "24.05";
|
home.stateVersion = "25.05";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
{ pkgs, lib, config, ... }: rec {
|
{ pkgs, lib, config, ... }: rec {
|
||||||
tpm = pkgs.callPackage ./tpm {};
|
tpm = pkgs.callPackage ./tpm {};
|
||||||
|
binaryninja = pkgs.callPackage ./binaryninja {};
|
||||||
}
|
}
|
||||||
|
|||||||
99
packages/binaryninja/default.nix
Normal file
99
packages/binaryninja/default.nix
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
{
|
||||||
|
autoPatchelfHook,
|
||||||
|
copyDesktopItems,
|
||||||
|
dbus,
|
||||||
|
fetchurl,
|
||||||
|
fontconfig,
|
||||||
|
freetype,
|
||||||
|
lib,
|
||||||
|
libGLU,
|
||||||
|
libxkbcommon,
|
||||||
|
makeDesktopItem,
|
||||||
|
stdenv,
|
||||||
|
unzip,
|
||||||
|
wayland,
|
||||||
|
xcbutilimage,
|
||||||
|
xcbutilkeysyms,
|
||||||
|
xcbutilrenderutil,
|
||||||
|
xcbutilwm,
|
||||||
|
openssl,
|
||||||
|
qt6,
|
||||||
|
}:
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "binaryninja";
|
||||||
|
version = "5.1.8104";
|
||||||
|
|
||||||
|
src = ./binaryninja_linux_stable_personal.zip;
|
||||||
|
|
||||||
|
icon = fetchurl {
|
||||||
|
url = "https://raw.githubusercontent.com/Vector35/binaryninja-api/448f40be71dffa86a6581c3696627ccc1bdf74f2/docs/img/logo.png";
|
||||||
|
hash = "sha256-TzGAAefTknnOBj70IHe64D6VwRKqIDpL4+o9kTw0Mn4=";
|
||||||
|
};
|
||||||
|
|
||||||
|
desktopItems = [
|
||||||
|
(makeDesktopItem {
|
||||||
|
name = "com.vector35.binaryninja";
|
||||||
|
desktopName = "Binary Ninja Personal";
|
||||||
|
comment = "A Reverse Engineering Platform";
|
||||||
|
exec = "binaryninja";
|
||||||
|
icon = "binaryninja";
|
||||||
|
mimeTypes = [
|
||||||
|
"application/x-binaryninja"
|
||||||
|
"x-scheme-handler/binaryninja"
|
||||||
|
];
|
||||||
|
categories = [ "Utility" ];
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
unzip
|
||||||
|
autoPatchelfHook
|
||||||
|
copyDesktopItems
|
||||||
|
qt6.wrapQtAppsHook
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
dbus
|
||||||
|
fontconfig
|
||||||
|
freetype
|
||||||
|
libGLU
|
||||||
|
libxkbcommon
|
||||||
|
stdenv.cc.cc.lib
|
||||||
|
wayland
|
||||||
|
xcbutilimage
|
||||||
|
xcbutilkeysyms
|
||||||
|
xcbutilrenderutil
|
||||||
|
xcbutilwm
|
||||||
|
openssl
|
||||||
|
qt6.qtbase
|
||||||
|
qt6.qtdeclarative
|
||||||
|
qt6.qtshadertools
|
||||||
|
qt6.qtsvg
|
||||||
|
];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
mkdir -p $out/
|
||||||
|
cp -R . $out/
|
||||||
|
|
||||||
|
mkdir $out/bin
|
||||||
|
ln -s $out/binaryninja $out/bin/binaryninja
|
||||||
|
|
||||||
|
install -Dm644 ${icon} $out/share/icons/hicolor/256x256/apps/binaryninja.png
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
changelog = "https://binary.ninja/changelog/#${lib.replaceStrings [ "." ] [ "-" ] version}";
|
||||||
|
description = "Interactive decompiler, disassembler, debugger";
|
||||||
|
homepage = "https://binary.ninja/";
|
||||||
|
license = {
|
||||||
|
fullName = "Binary Ninja Personal Software License";
|
||||||
|
url = "https://docs.binary.ninja/about/license.html#non-commercial-student-license-named";
|
||||||
|
free = false;
|
||||||
|
};
|
||||||
|
mainProgram = "binaryninja";
|
||||||
|
platforms = [ "x86_64-linux" ];
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user