Compare commits

...

50 Commits

Author SHA1 Message Date
2be1db1075 add prusa slicer 2025-12-09 19:07:24 +09:00
e6842b86f2 add helm 2025-12-08 20:17:13 +09:00
dc7c56b81d chore 2025-12-06 12:59:01 +09:00
053cbe7ee3 chore: woman 2025-12-06 12:57:31 +09:00
a1cfce2743 remove timer 2025-11-30 21:42:57 +09:00
ea8df341e6 add squashfs 2025-11-26 18:15:37 +09:00
1f73e1ff9d chore: add ssd alias 2025-11-19 15:20:46 +09:00
74501adfca fix: ssd 2025-11-19 15:19:43 +09:00
6ee7bfb78a mofify kube.nu 2025-11-18 10:01:32 +09:00
5fcfd51b4a add kernel 2025-11-14 14:07:00 +09:00
20e97efe95 modify partition 2025-11-14 00:41:18 +09:00
cc8299c5f5 add pv 2025-11-13 20:39:09 +09:00
1763871dda add rdp 2025-11-12 11:48:51 +09:00
3d0484222e add libllvm 2025-11-11 10:53:32 +09:00
bc9b620733 add lld 2025-11-11 05:53:38 +09:00
f028201829 modify ulimit 2025-11-10 23:41:30 +09:00
d45c47d157 add nix-ld 2025-11-09 06:05:12 +09:00
749ba8fc25 add ld.nix 2025-11-09 05:58:31 +09:00
70c865fd72 hyprland 2025-11-08 22:21:34 +09:00
256b849f2f add hyprland split 2025-11-08 21:14:06 +09:00
729d2d44f7 off ld 2025-11-07 17:38:05 +09:00
ace638529b fix: remove glibc 2025-11-07 12:49:21 +09:00
e71bb26d7d 넌 나의 하루를 앗아갔어. 죽어. 2025-11-07 04:00:12 +09:00
1b05b0cc6f add ncdu, dua 2025-11-06 19:27:12 +09:00
0d20030f58 add disk tools 2025-11-06 19:22:21 +09:00
61606f433b add u-ctags 2025-11-05 12:11:18 +09:00
513c6eae3c add pureref 2025-11-04 18:34:32 +09:00
d94c786424 add timer 2025-11-04 10:25:04 +09:00
87a00571f7 add kube.nu 2025-11-04 03:27:46 +09:00
258303b5b3 feat: add conan 2025-11-03 20:41:46 +09:00
f19b5b45b4 add mosquitto 2025-11-02 17:35:18 +09:00
c52c3a9f01 add dialout group 2025-11-02 10:47:45 +09:00
56d21fd8a2 dsfgdfg 2025-11-02 00:16:25 +09:00
2df69949cb restore env, add pnpm home for nush 2025-10-31 14:48:10 +09:00
c0a7615fc2 remove OPENSSL_PATH 2025-10-31 12:42:26 +09:00
c2db9db949 add adr-tools 2025-10-31 10:17:13 +09:00
9a76694af3 add just 2025-10-30 11:47:28 +09:00
a196e47fb7 add .local/bin to nu path 2025-10-29 13:56:54 +09:00
605c1b4ea3 add nushell 2025-10-29 10:33:42 +09:00
9d5ffed340 sdfg 2025-10-27 23:10:11 +09:00
726fce7949 add dev nvim 2025-10-23 11:06:37 +09:00
1927c2ca09 add blockbecnh 2025-10-22 09:03:18 +09:00
51764389c5 add printing service 2025-10-21 20:37:17 +09:00
33d9482892 feat: nfs 2025-10-17 09:16:05 +09:00
b652047222 feat: add server management 2025-10-17 09:10:07 +09:00
1707567e36 feat: add clc command 2025-10-15 20:06:14 +09:00
acdfe76b54 feat: add ZAP 2025-09-26 16:34:31 +09:00
c3c3649e21 feat: add personal tmp 2025-09-20 16:10:39 +09:00
678d9874ff feat: add lazygit alias to lg 2025-09-17 12:57:04 +09:00
d41f27f465 feat: add some tools 2025-09-10 23:22:57 +09:00
28 changed files with 1379 additions and 74 deletions

View File

@@ -6,21 +6,72 @@
let
myRizin = pkgs.rizin.passthru.withPlugins
(plugins: [ plugins.jsdec plugins.rz-ghidra ]);
in
{
in {
imports = [
./hardware-configuration.nix
./services/virtual.nix
./services/x.nix
./services/timer.nix
./services/sound.nix
./programs/hyprland.nix
];
nixpkgs.config.allowUnfree = true;
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.grub.device = "/dev/nvme1n1p1";
services.nfs.server = {
enable = true;
exports = ''
/home/vagrant *(rw,sync,no_subtree_check,no_root_squash)
'';
};
services.resolved = {
enable = true;
dnssec = "true";
};
networking.nameservers = [ "1.1.1.1" "8.8.8.8" ];
boot.loader = {
systemd-boot.enable = false;
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot/efi";
};
grub = {
efiSupport = true;
device = "nodev";
extraConfig = ''
GRUB_DEFAULT=saved
GRUB_SAFEDEFAULT=false
'';
useOSProber = true;
};
};
security.sudo = {
enable = true;
extraRules = [{
commands = [{
command = "${pkgs.grub2}/bin/grub-reboot";
options = [ "NOPASSWD" ];
}];
groups = [ "wheel" ];
}];
};
security.pam.loginLimits = [
{
domain = "*";
type = "soft";
item = "nofile";
value = "32768";
}
{
domain = "*";
type = "hard";
item = "nofile";
value = "65537";
}
];
networking.hostName = "haskell"; # Define your hostname.
@@ -46,7 +97,7 @@ in
# useXkbConfig = true; # use xkb.options in tty.
# };
services.udev.packages = [ pkgs.libwacom ];
services.udev.packages = with pkgs; [ libwacom rtl-sdr platformio-core.udev ];
services.usbmuxd = {
enable = false;
@@ -61,16 +112,19 @@ in
# Define a user account. Don't forget to set a password with passwd.
users.users.allen = {
isNormalUser = true;
extraGroups = [ "wheel" "wireshark" ]; # Enable sudo for the user.
shell = pkgs.fish;
extraGroups =
[ "wheel" "wireshark" "podman" "dialout" ]; # Enable sudo for the user.
shell = pkgs.nushell;
home = "/home/allen";
packages = with pkgs; [ tree ];
};
users.groups.libvirtd.members = [ "allen" ];
users.groups.plugdev.members = [ "allen" ];
programs.firefox.enable = true;
programs.wireshark.enable = true;
services.printing.enable = true;
# List packages installed in system profile.
# You can use https://search.nixos.org/ to find more packages (and options).
@@ -93,19 +147,18 @@ in
libGL
openal
myRizin
libgit2
ntfs3g
inputs.helix.packages."${pkgs.system}".helix
];
nix.settings.experimental-features = [ "nix-command" "flakes" ];
environment.sessionVariables = {
LD_LIBRARY_PATH = lib.makeLibraryPath [
pkgs.libglvnd
pkgs.libGL
pkgs.glfw
pkgs.pulseaudio
pkgs.libgit2
];
programs.hyprland.enable = true;
environment.variables = {
LD_LIBRARY_PATH = lib.makeLibraryPath
(with pkgs; [ libglvnd libGL glfw pulseaudio libgit2 ]);
};
environment.variables.EDITOR = "vim";

516
flake.lock generated
View File

@@ -1,5 +1,76 @@
{
"nodes": {
"aquamarine": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1762356719,
"narHash": "sha256-qwd/xdoOya1m8FENle+4hWnydCtlXUWLAW/Auk6WL7s=",
"owner": "hyprwm",
"repo": "aquamarine",
"rev": "6d0b3567584691bf9d8fedb5d0093309e2f979c7",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "aquamarine",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1747046372,
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"hyprland",
"pre-commit-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"helix": {
"inputs": {
"nixpkgs": "nixpkgs",
@@ -41,6 +112,331 @@
"type": "github"
}
},
"hyprcursor": {
"inputs": {
"hyprlang": [
"hyprland",
"hyprlang"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1753964049,
"narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=",
"owner": "hyprwm",
"repo": "hyprcursor",
"rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprcursor",
"type": "github"
}
},
"hyprgraphics": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1762462052,
"narHash": "sha256-6roLYzcDf4V38RUMSqycsOwAnqfodL6BmhRkUtwIgdA=",
"owner": "hyprwm",
"repo": "hyprgraphics",
"rev": "ffc999d980c7b3bca85d3ebd0a9fbadf984a8162",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprgraphics",
"type": "github"
}
},
"hyprland": {
"inputs": {
"aquamarine": "aquamarine",
"hyprcursor": "hyprcursor",
"hyprgraphics": "hyprgraphics",
"hyprland-guiutils": "hyprland-guiutils",
"hyprland-protocols": "hyprland-protocols",
"hyprlang": "hyprlang",
"hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner_2",
"nixpkgs": "nixpkgs_2",
"pre-commit-hooks": "pre-commit-hooks",
"systems": "systems",
"xdph": "xdph"
},
"locked": {
"lastModified": 1762542520,
"narHash": "sha256-hMWWVGEoJRNDaAJxHoL1YL+IXGxdQooEw8lABELVopg=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "522edc87126a48f3ce4891747b6a92a22385b1e7",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "Hyprland",
"type": "github"
}
},
"hyprland-guiutils": {
"inputs": {
"aquamarine": [
"hyprland",
"aquamarine"
],
"hyprgraphics": [
"hyprland",
"hyprgraphics"
],
"hyprlang": [
"hyprland",
"hyprlang"
],
"hyprtoolkit": "hyprtoolkit",
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1762465111,
"narHash": "sha256-dS13YZdWjgGGLBjpT4FHB6xf8I/WiAU+mgNWXsZgDUs=",
"owner": "hyprwm",
"repo": "hyprland-guiutils",
"rev": "a415eba866a953f3096d661318f771aa0082eb98",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-guiutils",
"type": "github"
}
},
"hyprland-protocols": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1759610243,
"narHash": "sha256-+KEVnKBe8wz+a6dTLq8YDcF3UrhQElwsYJaVaHXJtoI=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "bd153e76f751f150a09328dbdeb5e4fab9d23622",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-protocols",
"type": "github"
}
},
"hyprlang": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1758927902,
"narHash": "sha256-LZgMds7M94+vuMql2bERQ6LiFFdhgsEFezE4Vn+Ys3A=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "4dafa28d4f79877d67a7d1a654cddccf8ebf15da",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprlang",
"type": "github"
}
},
"hyprtoolkit": {
"inputs": {
"aquamarine": [
"hyprland",
"hyprland-guiutils",
"aquamarine"
],
"hyprgraphics": [
"hyprland",
"hyprland-guiutils",
"hyprgraphics"
],
"hyprlang": [
"hyprland",
"hyprland-guiutils",
"hyprlang"
],
"hyprutils": [
"hyprland",
"hyprland-guiutils",
"hyprutils"
],
"hyprwayland-scanner": "hyprwayland-scanner",
"nixpkgs": [
"hyprland",
"hyprland-guiutils",
"nixpkgs"
],
"systems": [
"hyprland",
"hyprland-guiutils",
"systems"
]
},
"locked": {
"lastModified": 1762463729,
"narHash": "sha256-2fYkU/mdz8WKY3dkDPlE/j6hTxIwqultsx4gMMsMns0=",
"owner": "hyprwm",
"repo": "hyprtoolkit",
"rev": "88483bdee5329ec985f0c8f834c519cd18cfe532",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprtoolkit",
"type": "github"
}
},
"hyprutils": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1762387740,
"narHash": "sha256-gQ9zJ+pUI4o+Gh4Z6jhJll7jjCSwi8ZqJIhCE2oqwhQ=",
"owner": "hyprwm",
"repo": "hyprutils",
"rev": "926689ddb9c0a8787e58c02c765a62e32d63d1f7",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprutils",
"type": "github"
}
},
"hyprwayland-scanner": {
"inputs": {
"nixpkgs": [
"hyprland",
"hyprland-guiutils",
"hyprtoolkit",
"nixpkgs"
],
"systems": [
"hyprland",
"hyprland-guiutils",
"hyprtoolkit",
"systems"
]
},
"locked": {
"lastModified": 1755184602,
"narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"type": "github"
}
},
"hyprwayland-scanner_2": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1755184602,
"narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"type": "github"
}
},
"nix-filter": {
"locked": {
"lastModified": 1693833173,
"narHash": "sha256-hlMABKrGbEiJD5dwUSfnw1CQ3bG7KKwDV+Nx3bEZd7U=",
"owner": "numtide",
"repo": "nix-filter",
"rev": "ac030bd9ba98e318e1f4c4328d60766ade8ebe8b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "nix-filter",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1740560979,
@@ -58,6 +454,22 @@
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1762363567,
"narHash": "sha256-YRqMDEtSMbitIMj+JLpheSz0pwEr0Rmy5mC7myl17xs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "ae814fd3904b621d8ab97418f1d0f2eb0d3716f4",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1748889542,
"narHash": "sha256-Hb4iMhIbjX45GcrgOp3b8xnyli+ysRPqAgZ/LZgyT5k=",
@@ -73,11 +485,36 @@
"type": "github"
}
},
"pre-commit-hooks": {
"inputs": {
"flake-compat": "flake-compat",
"gitignore": "gitignore",
"nixpkgs": [
"hyprland",
"nixpkgs"
]
},
"locked": {
"lastModified": 1762441963,
"narHash": "sha256-j+rNQ119ffYUkYt2YYS6rnd6Jh/crMZmbqpkGLXaEt0=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "8e7576e79b88c16d7ee3bbd112c8d90070832885",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"root": {
"inputs": {
"helix": "helix",
"home-manager": "home-manager",
"nixpkgs": "nixpkgs_2"
"hyprland": "hyprland",
"nixpkgs": "nixpkgs_3",
"split-monitor-workspaces": "split-monitor-workspaces"
}
},
"rust-overlay": {
@@ -100,6 +537,83 @@
"repo": "rust-overlay",
"type": "github"
}
},
"split-monitor-workspaces": {
"inputs": {
"hyprland": [
"hyprland"
],
"nix-filter": "nix-filter"
},
"locked": {
"lastModified": 1759855608,
"narHash": "sha256-DO6OaOY8G4HFP7Rz6gRCG6K2PZ8NrXkDIF6NJGRVcbs=",
"owner": "Duckonaut",
"repo": "split-monitor-workspaces",
"rev": "10719e725ade06da410db52268f4b9cf8ea5f63c",
"type": "github"
},
"original": {
"owner": "Duckonaut",
"repo": "split-monitor-workspaces",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"xdph": {
"inputs": {
"hyprland-protocols": [
"hyprland",
"hyprland-protocols"
],
"hyprlang": [
"hyprland",
"hyprlang"
],
"hyprutils": [
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1761431178,
"narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "4b8801228ff958d028f588f0c2b911dbf32297f9",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"type": "github"
}
}
},
"root": "root",

View File

@@ -8,22 +8,40 @@
url = "github:nix-community/home-manager/release-25.05";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, home-manager, ... }@inputs: {
nixosConfigurations.haskell = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
./configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.allen = import ./home.nix;
}
];
hyprland.url = "github:hyprwm/Hyprland";
split-monitor-workspaces = {
url = "github:Duckonaut/split-monitor-workspaces";
inputs.hyprland.follows = "hyprland";
};
};
outputs =
{ self, nixpkgs, home-manager, split-monitor-workspaces, ... }@inputs:
let
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
config = { allowUnfree = true; };
};
in {
nixosConfigurations.haskell = nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = { inherit inputs; };
modules = [
./configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.allen = import ./home.nix {
inherit split-monitor-workspaces;
inherit pkgs;
inherit inputs;
};
}
];
};
};
}

View File

@@ -9,14 +9,20 @@
boot.initrd.availableKernelModules =
[ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "uas" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelParams = [ "intel_iommu=on" ];
boot.kernelParams =
[ "intel_iommu=on" "modprobe.blacklist=dvb_usb_rtl28xxu" ];
boot.kernelModules = [ "kvm-intel" "vfio_pci" ];
boot.extraModulePackages = [ ];
# 1050 passthrough
# boot.extraModprobeConfig = ''
# options vfio-pci ids=10de:1c81,10de:0fb9
# '';
boot.extraModprobeConfig = ""
# + "options vfio-pci ids=10de:1c81,10de:0fb9\n"
+ ''
options hid_apple fnmode=2
'';
# hid_apple -> remove AK68 keyboard F1-F12 not pressing issue
boot.kernel.sysctl = { "hid_apple.fnmode" = 2; };
fileSystems."/" = {
device = "/dev/disk/by-uuid/4e08142c-1b09-4265-a497-822e4a83d4c8";
@@ -24,6 +30,12 @@
options = [ "subvol=root" ];
};
fileSystems."/x" = {
device = "tmpfs";
fsType = "tmpfs";
options = [ "size=8G" "mode=1777" ];
};
fileSystems."/home" = {
device = "/dev/disk/by-uuid/4e08142c-1b09-4265-a497-822e4a83d4c8";
fsType = "btrfs";
@@ -36,16 +48,22 @@
options = [ "subvol=nix" ];
};
fileSystems."/boot" = {
fileSystems."/boot/efi" = {
device = "/dev/disk/by-uuid/E808-5876";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
fileSystems."/mnt/hdd1" = {
device = "/dev/disk/by-uuid/EC40940C4093DC20";
fsType = "ntfs-3g";
options = [ "rw" "uid=1000" "umask=0022" ];
# fileSystems."/mnt/hdd1" = {
# device = "/dev/disk/by-uuid/EC40940C4093DC20";
# fsType = "ntfs-3g";
# options = [ "rw" "uid=1000" "umask=0022" "noauto" ];
# };
fileSystems."/mnt/ssd1" = {
device = "/dev/disk/by-uuid/4e1710bb-2cc9-41c3-909c-34f24bd1f63e";
fsType = "btrfs";
options = [ "defaults" "ssd" "noatime" "noauto" ];
};
swapDevices = [ ];

View File

@@ -1,4 +1,4 @@
{ config, pkgs, ... }:
{ inputs, split-monitor-workspaces, pkgs, ... }:
{
imports = [
@@ -9,6 +9,7 @@
./modules/home/starship.nix
./modules/home/alacritty.nix
./modules/home/bash.nix
./modules/home/nushell.nix
];
home.username = "allen";
@@ -28,11 +29,32 @@
tools = import ./pkgs/tools.nix { inherit pkgs; };
util = import ./pkgs/util.nix { inherit pkgs; };
games = import ./pkgs/games.nix { inherit pkgs; };
unstable = import (builtins.fetchTarball {
url = "https://github.com/NixOS/nixpkgs/archive/nixos-unstable.tar.gz";
sha256 = "1ijgd8hy1ii0k0s48yhnzw09c7zdjnp1fq8wfj7jgajwmlfwy3xg";
}) { system = "x86_64-linux"; };
unstables = import ./pkgs/unstable.nix {
inherit pkgs;
inherit unstable;
};
in fonts ++ minecraft ++ misc ++ network ++ programming ++ tools ++ util
++ games;
++ games ++ unstables;
programs.direnv.enable = true;
programs.direnv.nix-direnv.enable = true;
wayland.windowManager.hyprland = {
enable = true;
xwayland.enable = true;
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
plugins = [
split-monitor-workspaces.packages.x86_64-linux.split-monitor-workspaces
];
extraConfig = ''
source = ~/.config/hypr/hyprland-custom.conf
'';
};
home.stateVersion = "25.05";
}

View File

@@ -12,6 +12,7 @@
};
scrolling.multiplier = 5;
selection.save_to_clipboard = true;
colors = { primary = { background = "#040404"; }; };
};
};
}

View File

@@ -1,20 +1,12 @@
{ pkgs, ... }: {
imports = [ ./fish/aliases.nix ./fish/config.nix ];
home.file.".config/fish/completions/flux.fish".source =
../../shell/completions/flux.fish;
home.file.".config/fish/kube.fish".source = ../../shell/kube.fish;
programs.fish = {
enable = true;
shellInit = ''
set -gx EDITOR nvim
set -gx PNPM_HOME $HOME/.local/share/pnpm
fish_add_path $PNPM_HOME
fish_add_path $HOME/.local/bin
set -gx OPENSSL_DIR ${pkgs.openssl.dev};
set -gx KUBECONFIG $HOME/.kube/config;
set -gx OPENSSL_LIB_DIR ${pkgs.openssl.out}/lib;
set -gx OPENSSL_INCLUDE_DIR ${pkgs.openssl.dev}/include;
set -gx PKG_CONFIG_PATH ${pkgs.openssl.dev}/lib/pkgconfig;
alias vi="nvim"
alias rb="sudo nixos-rebuild switch --flake ~/nixos-config#"
alias dry-rb="sudo nixos-rebuild dry-build --flake ~/nixos-config#"
'';
plugins = [
# Enable a plugin (here grc for colorized command output) from nixpkgs
{
@@ -34,3 +26,4 @@
];
};
}

View File

@@ -0,0 +1,15 @@
{
programs.fish.shellAliases = {
v = "nvim";
c = "clear";
rb = "sudo nixos-rebuild switch --flake ~/nixos-config#";
"boot-rb" = "sudo nixos-rebuild --install-bootloader boot --flake ~/nixos-config#";
clc = "cloc . --exclude-dir=target,node_modules,.venv --exclude-ext=yml,yaml,csv -v";
"dry-rb" = "sudo nixos-rebuild dry-build --flake ~/nixos-config#";
devim = "NVIM_APPNAME=nvim-dev nvim";
win = "grub-reboot 'Windows Boot Manager (on /dev/sda2)' && reboot";
qwer = "reboot";
zxcv = "shutdown now";
lg = "lazygit";
};
}

View File

@@ -0,0 +1 @@
{ config, ... }: { imports = [ ./env.nix ./functions.nix ]; }

13
modules/home/fish/env.nix Normal file
View File

@@ -0,0 +1,13 @@
{ config, ... }: {
home.sessionVariables = {
EDITOR = "nvim";
PNPM_HOME = "${config.home.homeDirectory}/.local/share/pnpm";
KUBECONFIG = "${config.home.homeDirectory}/.kube/config";
# OPENSSL_DIR = "${pkgs.openssl.dev}";
#OPENSSL_LIB_DIR = "${pkgs.openssl.out}/lib";
# OPENSSL_INCLUDE_DIR = "${pkgs.openssl.dev}/include";
# PKG_CONFIG_PATH = "${pkgs.openssl.dev}/lib/pkgconfig";
NIX_DEV_SHELL_DEFAULT_SHELL = "(which nu)";
};
}

View File

@@ -0,0 +1,20 @@
{
programs.fish.functions = {
mkcd = {
body = ''
if test (count $argv) -eq 0
echo "Usage: mkcd <directory>"
return 1
end
mkdir -p $argv[1]
and cd $argv[1]
'';
};
};
programs.fish.interactiveShellInit = ''
if test -f $HOME/.config/fish/kube.fish
source $HOME/.config/fish/kube.fish
end
'';
}

View File

@@ -10,6 +10,7 @@
credential.credentialStore = "store";
init.defaultBranch = "main";
core.editor = "nvim";
push.autoSetupRemote = true;
};
};
}

42
modules/home/nushell.nix Normal file
View File

@@ -0,0 +1,42 @@
{ config, ... }: {
imports = [ ./fish/env.nix ];
home.file.".config/nushell/nu".source = ../../shell/nu;
programs = {
nushell = {
enable = true;
shellAliases = { vi = "nvim"; };
environmentVariables =
let env = import ./fish/env.nix { inherit config; };
in env.home.sessionVariables;
extraConfig = ''
source ~/.config/nushell/nu/config.nu
let carapace_completer = {|spans|
carapace $spans.0 nushell ...$spans | from json
}
$env.config = {
show_banner: false,
completions: {
case_sensitive: false # case-sensitive completions
quick: true # set to false to prevent auto-selecting completions
partial: true # set to false to prevent partial filling of the prompt
algorithm: "fuzzy" # prefix or fuzzy
external: {
# set to false to prevent nushell looking into $env.PATH to find more suggestions
enable: true
# set to lower can improve completion performance at the cost of omitting some options
max_results: 100
completer: $carapace_completer # check 'carapace_completer'
}
}
}
$env.PATH = ($env.PATH |
split row (char esep) |
append /usr/bin/env | append $"($env.HOME)/.local/share/pnpm"
)
'';
};
carapace.enable = true;
carapace.enableNushellIntegration = true;
};
}

View File

@@ -18,6 +18,7 @@ with pkgs; [
zlib.dev
gdk-pixbuf
glib
#glibc
gtk3
icu
wayland
@@ -43,7 +44,6 @@ with pkgs; [
openssl
pango
pipewire
stdenv.cc.cc
systemd
vulkan-loader
xorg.libX11
@@ -64,4 +64,6 @@ with pkgs; [
zlib.dev
pkg-config
haskellPackages.zlib
stdenv.cc.cc
imagemagick
]

31
nixpkgs/blockbench-5.nix Normal file
View File

@@ -0,0 +1,31 @@
{ pkgs ? import <nixpkgs> { } }:
with pkgs;
stdenv.mkDerivation rec {
pname = "blockbench";
version = "5.0.2";
src = fetchurl {
url =
"https://github.com/JannisX11/blockbench/releases/download/v${version}/Blockbench_${version}.AppImage";
sha256 = "e4e1edc6df725c54a675e201f3366c4245f36b6f558bf9b68b0f66f00e360b58";
};
nativeBuildInputs = [ makeWrapper ];
unpackPhase = "true"; # AppImage, we wont unpack fully
installPhase = ''
mkdir -p $out/bin
cp ${src} $out/bin/blockbench
chmod +x $out/bin/blockbench
wrapProgram $out/bin/blockbench \
--prefix PATH : "${pkgs.nodejs}/bin" \
--set BLOCKBENCH_APPIMAGE "$out/bin/blockbench"
'';
meta = with lib; {
description = "Blockbench 3D model editor (low-poly / Minecraft style)";
homepage = "https://blockbench.net/";
license = licenses.gpl3;
};
}

View File

@@ -4,24 +4,32 @@
with pkgs; [
radare2
(python3.withPackages (python-pkgs: with python-pkgs; [ jupyter-client ]))
# (python3.withPackages (python-pkgs: with python-pkgs; [ jupyter-client ]))
# gdb
zap
lldb
clang-tools
tokio-console
iaito
deno
#iaito
clang
valgrind
ghidra-bin
protobuf
buf
uv
unityhub
gh
platformio
python313Packages.r2pipe
python312Packages.r2pipe
python312Packages.pip
(python313.withPackages(ps: with ps; [ jupyter-client pynvim wand ipykernel ]))
python313Packages.pip
nodejs
go
ninja
binwalk
dotnet-sdk_9
csharp-ls
gcc
cmake
gnumake
graalvmPackages.graalvm-ce
@@ -49,4 +57,7 @@ with pkgs; [
haskellPackages.zlib
bpf-linker
zlib.dev
conan
lld
libllvm
]

View File

@@ -6,6 +6,8 @@ with pkgs; [
zathura
google-chrome
speed-cloudflare-cli
ansible
vagrant
gqrx
libreoffice
act
@@ -26,6 +28,7 @@ with pkgs; [
win2xcur
waypaper
swww
sdrpp
rofi-wayland
hyprshot
vesktop
@@ -38,7 +41,6 @@ with pkgs; [
yt-dlp
stellarium
blender
blockbench
jetbrains.idea-ultimate
krita
barrier
@@ -48,4 +50,9 @@ with pkgs; [
texlive.combined.scheme-full
hugo
glow
blockbench
xmonad-with-packages
pureref
freerdp
prusa-slicer
]

6
pkgs/unstable.nix Normal file
View File

@@ -0,0 +1,6 @@
# things in the nixos unstable registry
{ pkgs, unstable, ... }:
with pkgs;
[ ]

View File

@@ -5,19 +5,35 @@
with pkgs; [
neofetch
nnn # terminal file manager
nushell
# archives
zip
tre-command
xz
rtl-sdr
hyprpicker
grub2
zlib
masscan
unzip
p7zip
fd
# k8s
kubectx
k9s
lens
fluxcd
kubescape
# utils
xclip
openssl
ffmpeg
reptyr
cloc
protocol
piper-tts
pavucontrol
ripgrep
@@ -55,6 +71,20 @@ with pkgs; [
bridge-utils
cudaPackages.cudatoolkit
airspy
airspyhf
pstree
gptfdisk
nix-search
just
adr-tools
xmobar
mosquitto
universal-ctags
smartmontools
partclone
ncdu
dua
pv
squashfsTools
kubernetes-helm
]

View File

@@ -1 +0,0 @@
{ inputs, pkgs, ... }: { programs.hyprland = { enable = true; }; }

18
services/timer.nix Normal file
View File

@@ -0,0 +1,18 @@
{ config, pkgs, ... }: {
# systemd.services.auto-shutdown = {
# description = "Automatic daily shutdown at 9:30 pm";
# serviceConfig = {
# Type = "oneshot";
# ExecStart = [ "${pkgs.systemd}/bin/systemctl poweroff" ];
# };
# };
# systemd.timers.auto-shutdown = {
# description = "Timer for daily shutdown at 9:30 pm";
# wantedBy = [ "timers.target" ];
# timerConfig = {
# OnCalendar = "21:40";
# Persistent = true;
# };
# };
}

View File

@@ -6,6 +6,7 @@
podman = {
enable = true;
dockerCompat = true;
dockerSocket.enable = true;
defaultNetwork.settings.dns_enabled = true;
};
libvirtd.enable = true;
@@ -13,11 +14,5 @@
};
programs.virt-manager.enable = true;
services.k3s = {
enable = true;
clusterInit = true;
extraFlags =
"--cluster-cidr=10.42.0.0/16,2a10:3781:25ac:2::/64 --service-cidr=10.43.0.0/16,2a10:3781:25ac:3::/112 --flannel-iface enp5s0";
};
virtualisation.virtualbox.host.enable = true;
}

View File

@@ -8,7 +8,16 @@
hardware.nvidia.open = false;
services.xserver.displayManager.gdm.enable = true;
# services.xserver.displayManager.sddm.enable = true;
services.xserver.desktopManager.gnome.enable = true;
services.xserver.xkb.layout = "us";
services.picom.enable = true;
services.xserver.windowManager.xmonad = {
enable = true;
enableContribAndExtras = true;
config = builtins.readFile ./xmonad.hs;
};
}

9
services/xmonad.hs Normal file
View File

@@ -0,0 +1,9 @@
import XMonad
main =
xmonad
def
{ terminal = "alacritty"
, modMask = mod4Mask
, borderWidth = 3
}

235
shell/completions/flux.fish Normal file
View File

@@ -0,0 +1,235 @@
# fish completion for flux -*- shell-script -*-
function __flux_debug
set -l file "$BASH_COMP_DEBUG_FILE"
if test -n "$file"
echo "$argv" >> $file
end
end
function __flux_perform_completion
__flux_debug "Starting __flux_perform_completion"
# Extract all args except the last one
set -l args (commandline -opc)
# Extract the last arg and escape it in case it is a space
set -l lastArg (string escape -- (commandline -ct))
__flux_debug "args: $args"
__flux_debug "last arg: $lastArg"
# Disable ActiveHelp which is not supported for fish shell
set -l requestComp "FLUX_ACTIVE_HELP=0 $args[1] __complete $args[2..-1] $lastArg"
__flux_debug "Calling $requestComp"
set -l results (eval $requestComp 2> /dev/null)
# Some programs may output extra empty lines after the directive.
# Let's ignore them or else it will break completion.
# Ref: https://github.com/spf13/cobra/issues/1279
for line in $results[-1..1]
if test (string trim -- $line) = ""
# Found an empty line, remove it
set results $results[1..-2]
else
# Found non-empty line, we have our proper output
break
end
end
set -l comps $results[1..-2]
set -l directiveLine $results[-1]
# For Fish, when completing a flag with an = (e.g., <program> -n=<TAB>)
# completions must be prefixed with the flag
set -l flagPrefix (string match -r -- '-.*=' "$lastArg")
__flux_debug "Comps: $comps"
__flux_debug "DirectiveLine: $directiveLine"
__flux_debug "flagPrefix: $flagPrefix"
for comp in $comps
printf "%s%s\n" "$flagPrefix" "$comp"
end
printf "%s\n" "$directiveLine"
end
# this function limits calls to __flux_perform_completion, by caching the result behind $__flux_perform_completion_once_result
function __flux_perform_completion_once
__flux_debug "Starting __flux_perform_completion_once"
if test -n "$__flux_perform_completion_once_result"
__flux_debug "Seems like a valid result already exists, skipping __flux_perform_completion"
return 0
end
set --global __flux_perform_completion_once_result (__flux_perform_completion)
if test -z "$__flux_perform_completion_once_result"
__flux_debug "No completions, probably due to a failure"
return 1
end
__flux_debug "Performed completions and set __flux_perform_completion_once_result"
return 0
end
# this function is used to clear the $__flux_perform_completion_once_result variable after completions are run
function __flux_clear_perform_completion_once_result
__flux_debug ""
__flux_debug "========= clearing previously set __flux_perform_completion_once_result variable =========="
set --erase __flux_perform_completion_once_result
__flux_debug "Successfully erased the variable __flux_perform_completion_once_result"
end
function __flux_requires_order_preservation
__flux_debug ""
__flux_debug "========= checking if order preservation is required =========="
__flux_perform_completion_once
if test -z "$__flux_perform_completion_once_result"
__flux_debug "Error determining if order preservation is required"
return 1
end
set -l directive (string sub --start 2 $__flux_perform_completion_once_result[-1])
__flux_debug "Directive is: $directive"
set -l shellCompDirectiveKeepOrder 32
set -l keeporder (math (math --scale 0 $directive / $shellCompDirectiveKeepOrder) % 2)
__flux_debug "Keeporder is: $keeporder"
if test $keeporder -ne 0
__flux_debug "This does require order preservation"
return 0
end
__flux_debug "This doesn't require order preservation"
return 1
end
# This function does two things:
# - Obtain the completions and store them in the global __flux_comp_results
# - Return false if file completion should be performed
function __flux_prepare_completions
__flux_debug ""
__flux_debug "========= starting completion logic =========="
# Start fresh
set --erase __flux_comp_results
__flux_perform_completion_once
__flux_debug "Completion results: $__flux_perform_completion_once_result"
if test -z "$__flux_perform_completion_once_result"
__flux_debug "No completion, probably due to a failure"
# Might as well do file completion, in case it helps
return 1
end
set -l directive (string sub --start 2 $__flux_perform_completion_once_result[-1])
set --global __flux_comp_results $__flux_perform_completion_once_result[1..-2]
__flux_debug "Completions are: $__flux_comp_results"
__flux_debug "Directive is: $directive"
set -l shellCompDirectiveError 1
set -l shellCompDirectiveNoSpace 2
set -l shellCompDirectiveNoFileComp 4
set -l shellCompDirectiveFilterFileExt 8
set -l shellCompDirectiveFilterDirs 16
if test -z "$directive"
set directive 0
end
set -l compErr (math (math --scale 0 $directive / $shellCompDirectiveError) % 2)
if test $compErr -eq 1
__flux_debug "Received error directive: aborting."
# Might as well do file completion, in case it helps
return 1
end
set -l filefilter (math (math --scale 0 $directive / $shellCompDirectiveFilterFileExt) % 2)
set -l dirfilter (math (math --scale 0 $directive / $shellCompDirectiveFilterDirs) % 2)
if test $filefilter -eq 1; or test $dirfilter -eq 1
__flux_debug "File extension filtering or directory filtering not supported"
# Do full file completion instead
return 1
end
set -l nospace (math (math --scale 0 $directive / $shellCompDirectiveNoSpace) % 2)
set -l nofiles (math (math --scale 0 $directive / $shellCompDirectiveNoFileComp) % 2)
__flux_debug "nospace: $nospace, nofiles: $nofiles"
# If we want to prevent a space, or if file completion is NOT disabled,
# we need to count the number of valid completions.
# To do so, we will filter on prefix as the completions we have received
# may not already be filtered so as to allow fish to match on different
# criteria than the prefix.
if test $nospace -ne 0; or test $nofiles -eq 0
set -l prefix (commandline -t | string escape --style=regex)
__flux_debug "prefix: $prefix"
set -l completions (string match -r -- "^$prefix.*" $__flux_comp_results)
set --global __flux_comp_results $completions
__flux_debug "Filtered completions are: $__flux_comp_results"
# Important not to quote the variable for count to work
set -l numComps (count $__flux_comp_results)
__flux_debug "numComps: $numComps"
if test $numComps -eq 1; and test $nospace -ne 0
# We must first split on \t to get rid of the descriptions to be
# able to check what the actual completion will be.
# We don't need descriptions anyway since there is only a single
# real completion which the shell will expand immediately.
set -l split (string split --max 1 \t $__flux_comp_results[1])
# Fish won't add a space if the completion ends with any
# of the following characters: @=/:.,
set -l lastChar (string sub -s -1 -- $split)
if not string match -r -q "[@=/:.,]" -- "$lastChar"
# In other cases, to support the "nospace" directive we trick the shell
# by outputting an extra, longer completion.
__flux_debug "Adding second completion to perform nospace directive"
set --global __flux_comp_results $split[1] $split[1].
__flux_debug "Completions are now: $__flux_comp_results"
end
end
if test $numComps -eq 0; and test $nofiles -eq 0
# To be consistent with bash and zsh, we only trigger file
# completion when there are no other completions
__flux_debug "Requesting file completion"
return 1
end
end
return 0
end
# Since Fish completions are only loaded once the user triggers them, we trigger them ourselves
# so we can properly delete any completions provided by another script.
# Only do this if the program can be found, or else fish may print some errors; besides,
# the existing completions will only be loaded if the program can be found.
if type -q "flux"
# The space after the program name is essential to trigger completion for the program
# and not completion of the program name itself.
# Also, we use '> /dev/null 2>&1' since '&>' is not supported in older versions of fish.
complete --do-complete "flux " > /dev/null 2>&1
end
# Remove any pre-existing completions for the program since we will be handling all of them.
complete -c flux -e
# this will get called after the two calls below and clear the $__flux_perform_completion_once_result global
complete -c flux -n '__flux_clear_perform_completion_once_result'
# The call to __flux_prepare_completions will setup __flux_comp_results
# which provides the program's completion choices.
# If this doesn't require order preservation, we don't use the -k flag
complete -c flux -n 'not __flux_requires_order_preservation && __flux_prepare_completions' -f -a '$__flux_comp_results'
# otherwise we use the -k flag
complete -k -c flux -n '__flux_requires_order_preservation && __flux_prepare_completions' -f -a '$__flux_comp_results'

119
shell/kube.fish Normal file
View File

@@ -0,0 +1,119 @@
alias kn="kubens"
# other
alias k='kubectl'
alias kl='kubectl logs'
alias kexec='kubectl exec -it'
alias kpf='kubectl port-forward'
alias kaci='kubectl auth can-i'
alias kat='kubectl attach'
alias kapir='kubectl api-resources'
alias kapiv='kubectl api-versions'
# get
alias kg='kubectl get'
alias kgns='kubectl get ns'
alias kgp='kubectl get pods'
alias kgs='kubectl get secrets'
alias kgd='kubectl get deploy'
alias kgrs='kubectl get rs'
alias kgss='kubectl get sts'
alias kgds='kubectl get ds'
alias kgcm='kubectl get configmap'
alias kgcj='kubectl get cronjob'
alias kgj='kubectl get job'
alias kgsvc='kubectl get svc -o wide'
alias kgn='kubectl get no -o wide'
alias kgr='kubectl get roles'
alias kgrb='kubectl get rolebindings'
alias kgcr='kubectl get clusterroles'
alias kgrb='kubectl get clusterrolebindings'
alias kgsa='kubectl get sa'
alias kgnp='kubectl get netpol'
# edit
alias ke='kubectl edit'
alias kens='kubectl edit ns'
alias kes='kubectl edit secrets'
alias ked='kubectl edit deploy'
alias kers='kubectl edit rs'
alias kess='kubectl edit sts'
alias keds='kubectl edit ds'
alias kesvc='kubectl edit svc'
alias kecm='kubectl edit cm'
alias kecj='kubectl edit cj'
alias ker='kubectl edit roles'
alias kecr='kubectl edit clusterroles'
alias kerb='kubectl edit clusterrolebindings'
alias kesa='kubectl edit sa'
alias kenp='kubectl edit netpol'
# describe
alias kd='kubectl describe'
alias kdns='kubectl describe ns'
alias kdp='kubectl describe pod'
alias kds='kubectl describe secrets'
alias kdd='kubectl describe deploy'
alias kdrs='kubectl describe rs'
alias kdss='kubectl describe sts'
alias kdds='kubectl describe ds'
alias kdsvc='kubectl describe svc'
alias kdcm='kubectl describe cm'
alias kdcj='kubectl describe cj'
alias kdj='kubectl describe job'
alias kdsa='kubectl describe sa'
alias kdr='kubectl describe roles'
alias kdrb='kubectl describe rolebindings'
alias kdcr='kubectl describe clusterroles'
alias kdcrb='kubectl describe clusterrolebindings'
alias kdnp='kubectl describe netpol'
# delete
alias kdel='kubectl delete'
alias kdelns='kubectl delete ns'
alias kdels='kubectl delete secrets'
alias kdelp='kubectl delete po'
alias kdeld='kubectl delete deployment'
alias kdelrs='kubectl delete rs'
alias kdelss='kubectl delete sts'
alias kdelds='kubectl delete ds'
alias kdelsvc='kubectl delete svc'
alias kdelcm='kubectl delete cm'
alias kdelcj='kubectl delete cj'
alias kdelj='kubectl delete job'
alias kdelr='kubectl delete roles'
alias kdelrb='kubectl delete rolebindings'
alias kdelcr='kubectl delete clusterroles'
alias kdelrb='kubectl delete clusterrolebindings'
alias kdelsa='kubectl delete sa'
alias kdelnp='kubectl delete netpol'
# mock
alias kmock='kubectl create mock -o yaml --dry-run=client'
alias kmockns='kubectl create ns mock -o yaml --dry-run=client'
alias kmockcm='kubectl create cm mock -o yaml --dry-run=client'
alias kmocksa='kubectl create sa mock -o yaml --dry-run=client'
# config
alias kcfg='kubectl config'
alias kcfgv='kubectl config view'
alias kcfgns='kubectl config set-context --current --namespace'
alias kcfgcurrent='kubectl config current-context'
alias kcfggc='kubectl config get-contexts'
alias kcfgsc='kubectl config set-context'
alias kcfguc='kubectl config use-context'
alias kcfgv='kubectl config view'
# Kubescape related
alias kssbom='kubectl -n kubescape get sbomspdxv2p3s'
alias kssbomf='kubectl -n kubescape get sbomspdxv2p3filtereds'
alias kssboms='kubectl -n kubescape get sbomsummaries'
alias ksvulns='kubectl -n kubescape get vulnerabilitymanifestsummaries'
alias ksvuln='kubectl -n kubescape get vulnerabilitymanifests'
# Kubescape related with labels
alias kssboml='kubectl -n kubescape get sbomspdxv2p3s --show-labels'
alias kssbomfl='kubectl -n kubescape get sbomspdxv2p3filtereds --show-labels'
alias kssbomsl='kubectl -n kubescape get sbomsummaries --show-labels'
alias ksvulnsl='kubectl -n kubescape get vulnerabilitymanifestsummaries --show-labels'
alias ksvulnl='kubectl -n kubescape get vulnerabilitymanifests --show-labels'

29
shell/nu/config.nu Normal file
View File

@@ -0,0 +1,29 @@
def line-count [row] {
open $row.path | lines | length
}
def add-line-count [row] {
$row | merge { line_count: (open $row.path | lines | length) }
}
$env.KUBECONFIG = ("/home/allen/.kube/config")
$env.PATH = ($env.PATH | append "/home/allen/.local/share/pnpm")
$env.PATH = ($env.PATH | append "/home/allen/.local/bin")
$env.PATH = ($env.PATH | append "/home/allen/.cargo/bin")
alias c = clear
alias rb = sudo nixos-rebuild switch --flake ~/nixos-config#
alias clc = cloc . --exclude-dir=target,node_modules,.venv --exclude-ext=yml,yaml,csv -v
alias lg = lazygit
alias zxcv = shutdown now
alias qwer = reboot
alias ssd = cd /mnt/ssd1
alias woman = man
alias boy = man
alias male = man
alias girl = woman
alias female = woman
source ~/.config/nushell/nu/kube.nu

94
shell/nu/kube.nu Normal file
View File

@@ -0,0 +1,94 @@
alias kcfgcj = kubectl config cronjob
alias kcfgcm = kubectl config configmap
alias kcfgcr = kubectl config clusterroles
alias kcfgd = kubectl config deployment
alias kcfgds = kubectl config daemonset
alias kcfgj = kubectl config job
alias kcfgn = kubectl config node
alias kcfgnp = kubectl config networkpolicy
alias kcfgns = kubectl config namespace
alias kcfgp = kubectl config pods
alias kcfgr = kubectl config roles
alias kcfgrb = kubectl config rolebindings
alias kcfgrs = kubectl config replicaset
alias kcfgs = kubectl config secrets
alias kcfgsa = kubectl config serviceaccount
alias kcfgss = kubectl config statefulset
alias kcfgsvc = kubectl config service
alias kdcj = kubectl describe cronjob
alias kdcm = kubectl describe configmap
alias kdcr = kubectl describe clusterroles
alias kdd = kubectl describe deployment
alias kdds = kubectl describe daemonset
alias kdj = kubectl describe job
alias kdn = kubectl describe node
alias kdnp = kubectl describe networkpolicy
alias kdns = kubectl describe namespace
alias kdp = kubectl describe pods
alias kdr = kubectl describe roles
alias kdrb = kubectl describe rolebindings
alias kdrs = kubectl describe replicaset
alias kds = kubectl describe secrets
alias kdsa = kubectl describe serviceaccount
alias kdss = kubectl describe statefulset
alias kdsvc = kubectl describe service
alias kdelcj = kubectl delete cronjob
alias kdelcm = kubectl delete configmap
alias kdelcr = kubectl delete clusterroles
alias kdeld = kubectl delete deployment
alias kdelds = kubectl delete daemonset
alias kdelj = kubectl delete job
alias kdeln = kubectl delete node
alias kdelnp = kubectl delete networkpolicy
alias kdelns = kubectl delete namespace
alias kdelp = kubectl delete pods
alias kdelr = kubectl delete roles
alias kdelrb = kubectl delete rolebindings
alias kdelrs = kubectl delete replicaset
alias kdels = kubectl delete secrets
alias kdelsa = kubectl delete serviceaccount
alias kdelss = kubectl delete statefulset
alias kdelsvc = kubectl delete service
alias kecj = kubectl edit cronjob
alias kecm = kubectl edit configmap
alias kecr = kubectl edit clusterroles
alias ked = kubectl edit deployment
alias keds = kubectl edit daemonset
alias kej = kubectl edit job
alias ken = kubectl edit node
alias kenp = kubectl edit networkpolicy
alias kens = kubectl edit namespace
alias kep = kubectl edit pods
alias ker = kubectl edit roles
alias kerb = kubectl edit rolebindings
alias kers = kubectl edit replicaset
alias kes = kubectl edit secrets
alias kesa = kubectl edit serviceaccount
alias kess = kubectl edit statefulset
alias kesvc = kubectl edit service
alias kgcj = kubectl get cronjob
alias kgcm = kubectl get configmap
alias kgcr = kubectl get clusterroles
alias kgd = kubectl get deployment
alias kgds = kubectl get daemonset
alias kgj = kubectl get job
alias kgn = kubectl get node
alias kgnp = kubectl get networkpolicy
alias kgns = kubectl get namespace
alias kgp = kubectl get pods
alias kgr = kubectl get roles
alias kgrb = kubectl get rolebindings
alias kgrs = kubectl get replicaset
alias kgs = kubectl get secrets
alias kgsa = kubectl get serviceaccount
alias kgss = kubectl get statefulset
alias kgsvc = kubectl get service
alias kexec = kubectl exec -it
alias kl = kubectl logs
alias kpf = kubectl port-forward
alias kcfg = kubectl config
alias kd = kubectl describe
alias kdel = kubectl delete
alias ke = kubectl edit
alias kg = kubectl get
alias k = kubectl