Compare commits

...
Sign in to create a new pull request.

26 commits

Author SHA1 Message Date
cy
df2f9668f1
use ghidra-bin cause debugger works 2025-02-04 10:11:36 -05:00
cy
0029f8f822
comment out gtk config 2025-02-02 16:09:55 -05:00
cy
78f94a6429
flake update
Signed-off-by: cy <cy@cy7.sh>
2025-02-02 15:26:01 -05:00
cy
11fb3de60c
some more plasma config 2025-02-02 15:25:04 -05:00
cy
c9d700390c
manually redirect renamed repo 2025-02-02 10:52:53 -05:00
cy
b131f134bc
add kwin bindings and fix stuff 2025-02-01 23:40:16 -05:00
cy
81e06a0513
install plasma and use plasma-manager to configure 2025-02-01 22:36:56 -05:00
cy
258cce19fb
flake update
Signed-off-by: cy <cy@cy7.sh>
2025-02-01 12:10:21 -05:00
cy
3510da9657
install ida-free 2025-02-01 12:08:57 -05:00
cy
95ff04af25
nix-ld to make binaryninja work 2025-01-31 23:44:15 -05:00
cy
a31dbdaf0f
don't overlay cutter
Signed-off-by: cy <cy@cy7.sh>
2025-01-31 21:59:30 -05:00
cy
1c449848e2
overlay cutter
Signed-off-by: cy <cy@cy7.sh>
2025-01-31 14:30:29 -05:00
cy
30c82dcb4f
add sccache, some vscode changes, use kitten ssh 2025-01-30 12:48:48 -05:00
cy
d0ba9ca90b
make garage better
Signed-off-by: cy <cy@cy7.sh>
2025-01-30 12:35:19 -05:00
cy
4e0c1fbbb4
caddy: use acme_dns for wildcard TLS to work
use cloudflare dns plugin to update zone
2025-01-30 12:33:03 -05:00
cy
4f015ecb45
vscode: overlay github codespaces extension
Signed-off-by: cy <cy@cy7.sh>
2025-01-29 21:48:31 -05:00
cy
67048909a9
flake update
Signed-off-by: cy <cy@cy7.sh>
2025-01-29 16:49:19 -05:00
cy
b07c255869
nix fmt and some cleanup
Signed-off-by: cy <cy@cy7.sh>
2025-01-29 16:48:28 -05:00
cy
069a65d4c7
nixvim: add copilot stuff 2025-01-29 16:23:33 -05:00
cy
b2a6740256
vscode goodies
Signed-off-by: cy <cy@cy7.sh>
2025-01-29 15:24:42 -05:00
cy
d79a34328a
flake update
Signed-off-by: cy <cy@cy7.sh>
2025-01-28 22:40:30 -05:00
cy
0506c6c92f
install ghidra and disable mouse warp
Signed-off-by: cy <cy@cy7.sh>
2025-01-28 22:38:40 -05:00
cy
1e55f3901c
fix matrix
Signed-off-by: cy <cy@cy7.sh>
2025-01-28 22:38:24 -05:00
cy
f9837b7cab
make treesitter nicer
Signed-off-by: cy <cy@cy7.sh>
2025-01-28 00:39:23 -05:00
cy
443ea96d1f
make justfile better and cleanup zsh
Signed-off-by: cy <cy@cy7.sh>
2025-01-27 20:26:16 -05:00
cy
da557a7b7e
titan: redirect to new website
Signed-off-by: cy <cy@cy7.sh>
2025-01-27 20:07:41 -05:00
22 changed files with 502 additions and 103 deletions

View file

@ -108,3 +108,8 @@ creation_rules:
- age: - age:
- *chunk - *chunk
- *cy - *cy
- path_regex: secrets/yt/(.*).yaml$
key_groups:
- age:
- *yt
- *cy

133
flake.lock generated
View file

@ -120,11 +120,11 @@
"rocksdb": "rocksdb" "rocksdb": "rocksdb"
}, },
"locked": { "locked": {
"lastModified": 1737945015, "lastModified": 1738132650,
"narHash": "sha256-VCa7UAWqP14IC+fmT4P3rxGhkugDlU/4FZqqPyFUs9s=", "narHash": "sha256-ryebu2VoopIpr5+DuHIs2/x60u+3EzRJexYRWVJn2AE=",
"owner": "girlbossceo", "owner": "girlbossceo",
"repo": "conduwuit", "repo": "conduwuit",
"rev": "71a3855af61b0071832c23085f76a8711e32b49c", "rev": "eb7d893c8675f955fa770c8ae6f1c32a2394284c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -369,11 +369,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1736143030, "lastModified": 1738453229,
"narHash": "sha256-+hu54pAoLDEZT9pjHlqL9DNzWz0NbUn8NEAHP7PQPzU=", "narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "b905f6fc23a9051a6e1b741e1438dbfc0634c6de", "rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -562,11 +562,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1737762889, "lastModified": 1738448366,
"narHash": "sha256-5HGG09bh/Yx0JA8wtBMAzt0HMCL1bYZ93x4IqzVExio=", "narHash": "sha256-4ATtQqBlgsGqkHTemta0ydY6f7JBRXz4Hf574NHQpkg=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "daf04c5950b676f47a794300657f1d3d14c1a120", "rev": "18fa9f323d8adbb0b7b8b98a8488db308210ed93",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -683,11 +683,11 @@
"pre-commit-hooks": "pre-commit-hooks" "pre-commit-hooks": "pre-commit-hooks"
}, },
"locked": { "locked": {
"lastModified": 1737857294, "lastModified": 1738446528,
"narHash": "sha256-bzC+anLF/NlgolaMoB4uTFgSejLJlTzPcNF1Kbq/BP0=", "narHash": "sha256-NYL/r7EXSyYP7nXuYGvGYMI9QtztGjVaKKofBt/pCv8=",
"ref": "refs/heads/main", "ref": "refs/heads/main",
"rev": "4af6b5ed9f8f2412bef5331b8e3b93f3ad305ea1", "rev": "a51380645f61b33d37a536b596d16c481f7b84a6",
"revCount": 16694, "revCount": 17342,
"type": "git", "type": "git",
"url": "https://git.lix.systems/lix-project/lix" "url": "https://git.lix.systems/lix-project/lix"
}, },
@ -710,11 +710,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1737675503, "lastModified": 1738176840,
"narHash": "sha256-FUWpqPOsEJwK8oomffat+lgKnoxJHArRlWo2j17EhxQ=", "narHash": "sha256-NG3IRvRs3u3btVCN861FqHvgOwqcNT/Oy6PBG86F5/E=",
"ref": "refs/heads/main", "ref": "refs/heads/main",
"rev": "3e18a1ceec7df4514f5a045441e5f98dd003db09", "rev": "621aae0f3cceaffa6d73a4fb0f89c08d338d729e",
"revCount": 131, "revCount": 133,
"type": "git", "type": "git",
"url": "https://git.lix.systems/lix-project/nixos-module" "url": "https://git.lix.systems/lix-project/nixos-module"
}, },
@ -737,11 +737,11 @@
"xwayland-satellite-unstable": "xwayland-satellite-unstable" "xwayland-satellite-unstable": "xwayland-satellite-unstable"
}, },
"locked": { "locked": {
"lastModified": 1737924584, "lastModified": 1738502867,
"narHash": "sha256-8XAz2IFUdSN7IblSWgQQVjivlZ0uWn3Y5jN3G6+/jss=", "narHash": "sha256-92cVHcxV7j00BquLo5I4G8EwKzrq2AlHuD3AQV9r+T8=",
"owner": "sodiboo", "owner": "sodiboo",
"repo": "niri-flake", "repo": "niri-flake",
"rev": "d3682c753abbbc8d41578aa12e6f10508d801f4b", "rev": "cf0be7affb15e21727d137c029146fe7df2bc6d0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -770,11 +770,11 @@
"niri-unstable": { "niri-unstable": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1737918541, "lastModified": 1738479340,
"narHash": "sha256-NKartmApYTAjteTg78OAIAYGvtl9QCDcKp8tPk3KCuI=", "narHash": "sha256-sutel7RKfu9eIJsjswSzptCIvKELbXQCSldt0PtwSd0=",
"owner": "YaLTeR", "owner": "YaLTeR",
"repo": "niri", "repo": "niri",
"rev": "baa051891237054f2d4db86d7bcfe0f17440c35f", "rev": "d5592743cb04cef3fe50c987b7ba9349c5090dbd",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -832,11 +832,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1737504076, "lastModified": 1738277753,
"narHash": "sha256-/B4XJnzYU/6K1ZZOBIgsa3K4pqDJrnC2579c44c+4rI=", "narHash": "sha256-iyFcCOk0mmDiv4ut9mBEuMxMZIym3++0qN1rQBg8FW0=",
"owner": "lnl7", "owner": "lnl7",
"repo": "nix-darwin", "repo": "nix-darwin",
"rev": "65cc1fa8e36ceff067daf6cfb142331f02f524d3", "rev": "49b807fa7c37568d7fbe2aeaafb9255c185412f9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -883,6 +883,26 @@
"type": "github" "type": "github"
} }
}, },
"nix-ld": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1737361468,
"narHash": "sha256-+CtIrQZ22MOAOHcpg1zbhX/fVkmEc8A8lYVpXAbXElQ=",
"owner": "nix-community",
"repo": "nix-ld",
"rev": "7f15f8622b63b907fef137689f4528a9447d9377",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-ld",
"type": "github"
}
},
"nix2container": { "nix2container": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -1045,11 +1065,11 @@
}, },
"nixpkgs_5": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1737917096, "lastModified": 1738487426,
"narHash": "sha256-wOo5jWu88VRbm0TTNl9KxE4nIkfnXVKxLvZwpTn75wk=", "narHash": "sha256-hnB0V0R/aKASnTBeTthFvW60uydv1xswWD4weqSuSfg=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "a47cb26bbe26d63321cbb96de6d1981d790d9748", "rev": "8ed1fafea6a613d962f6a84c1153d34dc8b06d83",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1082,11 +1102,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1737914312, "lastModified": 1738517265,
"narHash": "sha256-PBF4R+yQt5Sls7CsA9Miwx28XtOP/yqaqejZ3RKSes0=", "narHash": "sha256-ZzulGUIHZhvcSHx+1ucCJkIcn27r9H+cSzCCpKxJcls=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "8e5422bf3e76f410b97d2da640d0829e87657de9", "rev": "56d0c4579e022b44a3e324f722fa23a6f4295798",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1105,11 +1125,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1737823349, "lastModified": 1738445998,
"narHash": "sha256-LAppb+sftyvJbPdrBG1uN9GYWHz6q7bUpkpDjljcSRo=", "narHash": "sha256-wF2ZcRKF37re161jrXtNyjGMBDsIFtPeDvmIVfp8f7w=",
"owner": "NuschtOS", "owner": "NuschtOS",
"repo": "search", "repo": "search",
"rev": "f91a0ac0f4ecf0ad1d1d88140f66520dae6ce4bd", "rev": "381d84a7422a4dbfef6a9c7703dbaf42036ae1c3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1134,6 +1154,29 @@
"type": "github" "type": "github"
} }
}, },
"plasma-manager": {
"inputs": {
"home-manager": [
"home-manager"
],
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1736549395,
"narHash": "sha256-XzwkB62Tt5UYoL1jXiHzgk/qz2fUpGHExcSIbyGTtI0=",
"owner": "nix-community",
"repo": "plasma-manager",
"rev": "a53af7f1514ef4cce8620a9d6a50f238cdedec8b",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "plasma-manager",
"type": "github"
}
},
"pre-commit-hooks": { "pre-commit-hooks": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -1207,10 +1250,12 @@
"lix": "lix", "lix": "lix",
"lix-module": "lix-module", "lix-module": "lix-module",
"niri": "niri", "niri": "niri",
"nix-ld": "nix-ld",
"nixpkgs": "nixpkgs_5", "nixpkgs": "nixpkgs_5",
"nixpkgs-garage": "nixpkgs-garage", "nixpkgs-garage": "nixpkgs-garage",
"nixvim": "nixvim", "nixvim": "nixvim",
"nvim-github-theme": "nvim-github-theme", "nvim-github-theme": "nvim-github-theme",
"plasma-manager": "plasma-manager",
"rust-overlay": "rust-overlay", "rust-overlay": "rust-overlay",
"sops-nix": "sops-nix", "sops-nix": "sops-nix",
"treefmt": "treefmt" "treefmt": "treefmt"
@ -1240,11 +1285,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1737944843, "lastModified": 1738463259,
"narHash": "sha256-ZSXR/po/slqpsk3JLVjXbE04Vqrb4k7yCGHjyMj3tOk=", "narHash": "sha256-+5QJpiRpkh1ALvKcMEpPyGwkPZfaynsYF4SFdNW5UfQ=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "27bb917a41480b6ceee8e42d32dfcc9ecc6fa6c6", "rev": "e2bb8c205a069514535f083742c7da8dfb6e02b9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1260,11 +1305,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1737411508, "lastModified": 1738291974,
"narHash": "sha256-j9IdflJwRtqo9WpM0OfAZml47eBblUHGNQTe62OUqTw=", "narHash": "sha256-wkwYJc8cKmmQWUloyS9KwttBnja2ONRuJQDEsmef320=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "015d461c16678fc02a2f405eb453abb509d4e1d4", "rev": "4c1251904d8a08c86ac6bc0d72cc09975e89aef7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1310,11 +1355,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1737483750, "lastModified": 1738070913,
"narHash": "sha256-5An1wq5U8sNycOBBg3nsDDgpwBmR9liOpDGlhliA6Xo=", "narHash": "sha256-j6jC12vCFsTGDmY2u1H12lMr62fnclNjuCtAdF1a4Nk=",
"owner": "numtide", "owner": "numtide",
"repo": "treefmt-nix", "repo": "treefmt-nix",
"rev": "f2cc121df15418d028a59c9737d38e3a90fbaf8f", "rev": "bebf27d00f7d10ba75332a0541ac43676985dea3",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -68,6 +68,15 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-compat.follows = "flake-compat"; inputs.flake-compat.follows = "flake-compat";
}; };
nix-ld = {
url = "github:nix-community/nix-ld";
inputs.nixpkgs.follows = "nixpkgs";
};
plasma-manager = {
url = "github:nix-community/plasma-manager";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
nixpkgs-garage.url = "github:cything/nixpkgs/garage-module"; # unmerged PR nixpkgs-garage.url = "github:cything/nixpkgs/garage-module"; # unmerged PR
@ -126,9 +135,6 @@
... ...
}: }:
{ {
# make pkgs available to `perSystem`
_module.args.pkgs = inputs'.nixpkgs.legacyPackages;
treefmt = { treefmt = {
projectRootFile = "flake.nix"; projectRootFile = "flake.nix";
programs.nixfmt.enable = true; programs.nixfmt.enable = true;
@ -139,7 +145,7 @@
settings.global.excludes = [ settings.global.excludes = [
"secrets/*" "secrets/*"
"**/*.png" # tries to format a png file?? "**/*.png" # tries to format a png file
]; ];
}; };
}; };
@ -172,7 +178,8 @@
./modules ./modules
inputs.lanzaboote.nixosModules.lanzaboote inputs.lanzaboote.nixosModules.lanzaboote
inputs.niri.nixosModules.niri inputs.niri.nixosModules.niri
inputs.lix-module.nixosModules.default # broken inputs.lix-module.nixosModules.default
inputs.nix-ld.nixosModules.nix-ld
]; ];
}; };
chunk = lib.nixosSystem { chunk = lib.nixosSystem {
@ -216,6 +223,7 @@
./home/yt/ytnix.nix ./home/yt/ytnix.nix
inputs.nixvim.homeManagerModules.nixvim inputs.nixvim.homeManagerModules.nixvim
inputs.niri.homeModules.config inputs.niri.homeModules.config
inputs.plasma-manager.homeManagerModules.plasma-manager
]; ];
}; };

View file

@ -58,6 +58,7 @@
"ctrl+f2" = "detach_tab"; "ctrl+f2" = "detach_tab";
# hints # hints
# > basically means the preceding key is a prefix (think tmux)
"kitty_mod+o>o" = "open_url_with_hints"; "kitty_mod+o>o" = "open_url_with_hints";
"kitty_mod+o>p" = "kitten hints --type path --program -"; "kitty_mod+o>p" = "kitten hints --type path --program -";
"kitty_mod+o>n" = "kitten hints --type line --program -"; "kitty_mod+o>n" = "kitten hints --type line --program -";
@ -66,4 +67,6 @@
"kitty_mod+o>l" = "kitten hints --type linenum"; "kitty_mod+o>l" = "kitten hints --type linenum";
}; };
}; };
programs.zsh.shellAliases."ssh" = "kitten ssh";
} }

View file

@ -50,7 +50,7 @@ in
natural-scroll = true; natural-scroll = true;
click-method = "clickfinger"; click-method = "clickfinger";
}; };
warp-mouse-to-focus = true; warp-mouse-to-focus = false;
focus-follows-mouse.enable = false; focus-follows-mouse.enable = false;
}; };
@ -73,17 +73,23 @@ in
window-rules = [ window-rules = [
{ {
matches = [ matches = [
{
app-id = "anki";
title = "Add";
}
{ app-id = "mpv"; } { app-id = "mpv"; }
{ app-id = "Bitwarden"; } { app-id = "Bitwarden"; }
{
app-id = "ghidra-Ghidra";
# pop-up windows
title = "^win(.*)";
}
]; ];
open-floating = true; open-floating = true;
} }
{ {
matches = [ { app-id = "anki"; } ]; matches = [
{
app-id = "anki";
title = "Add";
}
];
default-column-width.proportion = .25; default-column-width.proportion = .25;
} }
{ {
@ -96,6 +102,7 @@ in
{ app-id = "com.mitchellh.ghostt"; } { app-id = "com.mitchellh.ghostt"; }
{ app-id = "org.kde.okular"; } { app-id = "org.kde.okular"; }
{ app-id = "kitty"; } { app-id = "kitty"; }
{ app-id = "VSCodium"; }
]; ];
default-column-width.proportion = .5; default-column-width.proportion = .5;
} }

View file

@ -24,7 +24,7 @@
extraPlugins = [ extraPlugins = [
(pkgs.vimUtils.buildVimPlugin { (pkgs.vimUtils.buildVimPlugin {
name = "gitub-theme"; name = "github-theme";
src = inputs.nvim-github-theme; src = inputs.nvim-github-theme;
}) })
]; ];
@ -71,6 +71,41 @@
key = "<C-e>"; key = "<C-e>";
mode = "i"; mode = "i";
} }
# quick chat with copilot
{
key = "<leader>ccq";
action.__raw = ''
function()
local input = vim.fn.input("Quick chat: ")
if input ~= "" then
require("CopilotChat").ask(input, { selection = require("CopilotChat.select").buffer })
end
end
'';
mode = [
"n"
"v"
];
}
# ask perplexity a quick question
{
key = "<leader>ccs";
action.__raw = ''
function()
local input = vim.fn.input("Perplexity: ")
if input ~= "" then
require("CopilotChat").ask(input, {
agent = "perplexityai",
selection = false,
})
end
end
'';
mode = [
"n"
"v"
];
}
]; ];
plugins.cmp = { plugins.cmp = {
@ -171,7 +206,11 @@
plugins.treesitter = { plugins.treesitter = {
enable = true; enable = true;
nixGrammars = true; nixGrammars = true;
settings.indent.enable = true; settings = {
indent.enable = true;
auto_install = true;
highlight.enable = true;
};
}; };
plugins.fzf-lua = { plugins.fzf-lua = {
enable = true; enable = true;
@ -193,6 +232,13 @@
settings.current_line_blame = true; settings.current_line_blame = true;
}; };
plugins.copilot-chat = {
enable = true;
settings = {
model = "claude-3.5-sonnet";
};
};
plugins.cmp-buffer.enable = true; plugins.cmp-buffer.enable = true;
plugins.cmp-emoji.enable = true; plugins.cmp-emoji.enable = true;
plugins.cmp-nvim-lsp.enable = true; plugins.cmp-nvim-lsp.enable = true;

80
home/plasma.nix Normal file
View file

@ -0,0 +1,80 @@
{ ... }:
{
programs.plasma = {
enable = true;
overrideConfig = true;
immutableByDefault = true;
workspace = {
lookAndFeel = "org.ide.breezedark.desktop";
cursor = {
theme = "Bibata-Modern-Classic";
size = 23;
};
};
fonts = {
general = {
family = "IBM Plex Mono";
pointSize = 12;
};
};
input.keyboard = {
numlockOnStartup = "on";
options = [ "ctrl:nocaps" ];
};
# Meta key is actually the Super key in KDE
hotkeys.commands = {
"launch-terminal" = {
name = "launch terminal";
key = "Meta+Return";
command = "kitty";
};
"launch-browser" = {
name = "launch browser";
key = "Meta+B";
command = "librewolf";
};
};
shortcuts = {
kwin = {
"Switch Window Down" = "Meta+J";
"Switch Window Left" = "Meta+H";
"Switch Window Right" = "Meta+L";
"Switch Window Up" = "Meta+K";
"Window Quick Tile Down" = "Meta+Shift+J";
"Window Quick Tile Left" = "Meta+Shift+H";
"Window Quick Tile Right" = "Meta+Shift+L";
"Window Quick Tile Up" = "Meta+Shift+K";
"Window Close" = "Meta+Ctrl+Q";
"Window Maximize" = "Meta+W";
"Window Minimize" = "Meta+Shift+-";
"Window Fullscreen" = "Meta+F";
"Window Shrink Horizontal" = "Meta+-";
};
ksmserver = {
"Lock Session" = [
"Screensaver"
"Meta+Ctrl+L"
];
};
};
configFile = {
# save RAM
baloofilerc."Basic Settings"."Indexing-Enabled" = false;
};
# looks like KDE overrides services.logind settings
powerdevil.AC = {
whenLaptopLidClosed = "hibernate";
};
powerdevil.battery = {
whenLaptopLidClosed = "hibernate";
};
};
}

View file

@ -8,11 +8,33 @@
mutableExtensionsDir = false; mutableExtensionsDir = false;
extensions = with pkgs.vscode-extensions; [ extensions = with pkgs.vscode-extensions; [
vscodevim.vim vscodevim.vim
jnoortheen.nix-ide # nix language support jnoortheen.nix-ide
editorconfig.editorconfig # editorconfig editorconfig.editorconfig
dracula-theme.theme-dracula # color scheme github.github-vscode-theme
tomoki1207.pdf # pdf viewer github.copilot
yzhang.markdown-all-in-one # markdown tools rust-lang.rust-analyzer
]; ];
userSettings = {
"workbench.colorTheme" = "GitHub Dark Default";
"files.autoSave" = "afterDelay";
"nix.enableLanguageServer" = true;
"nix.serverPath" = "nixd";
"editor.fontFamily" = "IBM Plex Mono";
"editor.fontSize" = 16;
"editor.wordWrap" = "on";
# vim mode settings
"vim.handleKeys" = {
"<C-b>" = false; # file tree toggle
};
"vim.normalModeKeyBindings" = [
{
"before" = [ ";" ];
"after" = [ ":" ];
"silent" = true;
}
];
"workbench.startupEditor" = "none";
};
}; };
} }

View file

@ -61,4 +61,5 @@
}; };
programs.ripgrep.enable = true; programs.ripgrep.enable = true;
programs.man.generateCaches = true; programs.man.generateCaches = true;
programs.fd.enable = true;
} }

View file

@ -1,5 +1,6 @@
{ {
pkgs, pkgs,
lib,
... ...
}: }:
{ {
@ -9,6 +10,8 @@
../niri ../niri
../irssi.nix ../irssi.nix
../kitty.nix ../kitty.nix
../vscode.nix
../plasma.nix
]; ];
home = { home = {
username = "yt"; username = "yt";
@ -19,24 +22,27 @@
systemd.user.startServices = "sd-switch"; systemd.user.startServices = "sd-switch";
qt = { # keep this commented when using plasma
enable = true; # otherwise "system settings" in KDE will not function
platformTheme.name = "kde"; # qt = {
style.name = "breeze-dark"; # enable = true;
style.package = pkgs.kdePackages.breeze; # platformTheme.name = "kde";
}; # style.name = "breeze-dark";
# style.package = pkgs.kdePackages.breeze;
# };
gtk = { # this one too
enable = true; # gtk = {
theme = { # enable = true;
package = pkgs.adw-gtk3; # theme = {
name = "adw-gtk3-dark"; # package = pkgs.adw-gtk3;
}; # name = "adw-gtk3-dark";
iconTheme = { # };
package = pkgs.adwaita-icon-theme; # iconTheme = {
name = "Adwaita"; # package = pkgs.adwaita-icon-theme;
}; # name = "Adwaita";
}; # };
# };
home.pointerCursor = { home.pointerCursor = {
package = pkgs.bibata-cursors; package = pkgs.bibata-cursors;
@ -103,6 +109,21 @@
github-cli github-cli
fuzzel fuzzel
nixpkgs-review nixpkgs-review
just
hugo
ghidra-bin
sequoia
sccache
awscli2
lldb
(cutter.withPlugins (p: with p; [
rz-ghidra
jsdec
sigdb
]))
ida-free
patchelf
radare2
]; ];
programs.waybar.enable = true; programs.waybar.enable = true;
@ -140,8 +161,6 @@
''; '';
}; };
services.gnome-keyring.enable = true;
programs.direnv = { programs.direnv = {
enable = true; enable = true;
nix-direnv.enable = true; nix-direnv.enable = true;
@ -155,4 +174,23 @@
commit.gpgsign = true; commit.gpgsign = true;
core.sshCommand = "ssh -i ~/.ssh/id.key"; core.sshCommand = "ssh -i ~/.ssh/id.key";
}; };
home.sessionVariables = {
# to make ghidra work on xwayland
_JAVA_AWT_WM_NONREPARENTING = 1;
# sccache stuff
RUSTC_WRAPPER = "${lib.getExe pkgs.sccache}";
SCCACHE_BUCKET = "sccache";
SCCACHE_REGION = "earth";
SCCACHE_ENDPOINT = "https://sccache.s3.cy7.sh";
SCCACHE_ALLOW_CORE_DUMPS = "true";
SCCACHE_S3_USE_SSL = "true";
SCCACHE_CACHE_MULTIARCH = "true";
SCCACHE_LOG_LEVEL = "warn";
AWS_DEFAULT_REGION = "earth";
AWS_ENDPOINT_URL = "https://s3.cy7.sh";
AWS_ACCESS_KEY_ID = "$(cat /run/secrets/aws/key_id)";
AWS_SECRET_ACCESS_KEY = "$(cat /run/secrets/aws/key_secret)";
};
} }

View file

@ -39,11 +39,6 @@
initExtra = '' initExtra = ''
# disable control+s to pause terminal # disable control+s to pause terminal
unsetopt FLOW_CONTROL unsetopt FLOW_CONTROL
# manually integrate fzf cause we need to make sure zsh-vi-mode
# won't override C-r
function zvm_after_init() {
eval "$(${pkgs.fzf}/bin/fzf --zsh)"
}
# useful emacs mode bindings # useful emacs mode bindings
bindkey -M viins "^E" end-of-line bindkey -M viins "^E" end-of-line
@ -94,8 +89,8 @@
"ga" = "git add"; "ga" = "git add";
"gaa" = "git add --all"; "gaa" = "git add --all";
"gb" = "git branch"; "gb" = "git branch";
"gc" = "git commit --verbose -s"; "gc" = "git commit --verbose";
"gcmsg" = "git commit -s --message"; "gcmsg" = "git commit --message";
"gd" = "git diff"; "gd" = "git diff";
"gdca" = "git diff --cached"; "gdca" = "git diff --cached";
"gds" = "git diff --staged"; "gds" = "git diff --staged";

View file

@ -1,6 +1,4 @@
{ {
config,
lib,
pkgs, pkgs,
... ...
}: }:

View file

@ -33,6 +33,10 @@
services.caddy.virtualHosts."git.cy7.sh".extraConfig = '' services.caddy.virtualHosts."git.cy7.sh".extraConfig = ''
import common import common
# renamed repo
uri replace /cy/infra /cy/nixos-config
reverse_proxy localhost:3000 reverse_proxy localhost:3000
''; '';
services.caddy.virtualHosts."git.cything.io".extraConfig = '' services.caddy.virtualHosts."git.cything.io".extraConfig = ''

View file

@ -8,6 +8,12 @@
s3_api = { s3_api = {
s3_region = "earth"; s3_region = "earth";
api_bind_addr = "[::]:3900"; api_bind_addr = "[::]:3900";
root_domain = ".s3.cy7.sh";
};
s3_web = {
bind_addr = "[::]:3902";
root_domain = ".web.s3.cy7.sh";
index = "index.html";
}; };
admin.api_bind_addr = "[::]:3903"; admin.api_bind_addr = "[::]:3903";
rpc_bind_addr = "[::]:3901"; rpc_bind_addr = "[::]:3901";
@ -17,8 +23,21 @@
environmentFile = config.sops.secrets."garage/env".path; environmentFile = config.sops.secrets."garage/env".path;
}; };
services.caddy.virtualHosts."s3.cy7.sh".extraConfig = '' services.caddy.virtualHosts = {
"s3.cy7.sh" = {
serverAliases = [ "*.s3.cy7.sh" ];
extraConfig = ''
import common import common
reverse_proxy localhost:3900 reverse_proxy localhost:3900
''; '';
};
"*.web.s3.cy7.sh".extraConfig = ''
import common
reverse_proxy localhost:3902
'';
"admin.s3.cy7.sh".extraConfig = ''
import common
reverse_proxy localhost:3903
'';
};
} }

View file

@ -13,14 +13,16 @@
cything.io { cything.io {
import common import common
reverse_proxy localhost:8084
header /.well-known/matrix/* Content-Type application/json header /.well-known/matrix/* Content-Type application/json
header /.well-known/matrix/* Access-Control-Allow-Origin * header /.well-known/matrix/* Access-Control-Allow-Origin *
header /.well-known/matrix/* Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS,PATCH,HEAD header /.well-known/matrix/* Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS,PATCH,HEAD
header /.well-known/matrix/* Access-Control-Allow-Headers X-Requested-With,Content-Type,Authorization,Origin,Accept header /.well-known/matrix/* Access-Control-Allow-Headers X-Requested-With,Content-Type,Authorization,Origin,Accept
route {
respond /.well-known/matrix/server {"m.server":"chat.cything.io:443"} respond /.well-known/matrix/server {"m.server":"chat.cything.io:443"}
respond /.well-known/matrix/client {"m.server":{"base_url":"https://chat.cything.io"},"m.homeserver":{"base_url":"https://chat.cything.io"},"org.matrix.msc3575.proxy":{"url":"https://chat.cything.io"}} respond /.well-known/matrix/client {"m.server":{"base_url":"https://chat.cything.io"},"m.homeserver":{"base_url":"https://chat.cything.io"},"org.matrix.msc3575.proxy":{"url":"https://chat.cything.io"}}
redir https://cy7.sh/posts{uri} permanent
}
} }
www.cything.io { www.cything.io {

View file

@ -36,6 +36,14 @@
"tailscale/auth" = { "tailscale/auth" = {
sopsFile = ../../secrets/services/tailscale.yaml; sopsFile = ../../secrets/services/tailscale.yaml;
}; };
"aws/key_id" = {
sopsFile = ../../secrets/yt/aws.yaml;
owner = "yt";
};
"aws/key_secret" = {
sopsFile = ../../secrets/yt/aws.yaml;
owner = "yt";
};
}; };
boot = { boot = {
@ -166,6 +174,8 @@
haskell-language-server haskell-language-server
ghc ghc
sbctl # secure boot sbctl # secure boot
wine-wayland
wine64
]; ];
environment.sessionVariables = { environment.sessionVariables = {
@ -179,6 +189,12 @@
services.displayManager = { services.displayManager = {
enable = true; enable = true;
autoLogin.user = "yt"; autoLogin.user = "yt";
defaultSession = "plasma";
sddm = {
enable = true;
wayland.enable = true;
autoNumlock = true;
};
}; };
fonts.packages = with pkgs; [ fonts.packages = with pkgs; [
@ -268,12 +284,56 @@
programs.virt-manager.enable = true; programs.virt-manager.enable = true;
services.usbmuxd.enable = true; services.usbmuxd.enable = true;
programs.nix-ld.enable = true; programs.nix-ld.dev = {
enable = true;
# nix run github:thiagokokada/nix-alien#nix-alien-find-libs ./<binary>
libraries = with pkgs; [
mesa
extest
stdenv.cc.cc
libGL
fontconfig
libxkbcommon
zlib
libxml2
dbus
freetype
egl-wayland
waylandpp
cairo
xcb-util-cursor
libplist
p11-kit
kdePackages.qtwayland
qt6.qtwayland
libsForQt5.qt5.qtwayland
xorg.libX11
xorg.libxcb
xorg.xcbutilwm
xorg.xcbutilimage
xorg.xcbutilkeysyms
xorg.xcbutilrenderutil
xorg.libXScrnSaver
xorg.libXcomposite
xorg.libXcursor
xorg.libXdamage
xorg.libXext
xorg.libXfixes
xorg.libXi
xorg.libXrandr
xorg.libXrender
xorg.libXtst
xorg.libxkbfile
xorg.libxshmfence
];
};
programs.evolution.enable = true; programs.evolution.enable = true;
xdg.portal = { xdg.portal = {
enable = true; enable = true;
wlr.enable = true; wlr.enable = true;
xdgOpenUsePortal = true;
extraPortals = with pkgs; [ xdg-desktop-portal-gtk xdg-desktop-portal-gnome ];
}; };
programs.obs-studio = { programs.obs-studio = {
@ -330,4 +390,9 @@
startAgent = true; startAgent = true;
enableAskPassword = true; enableAskPassword = true;
}; };
services.desktopManager.plasma6 = {
enable = true;
enableQt5Integration = true;
};
} }

View file

@ -1,9 +1,10 @@
update: update:
git branch -D update || true
git switch -c update git switch -c update
nix flake update nix flake update
git add flake.lock git add flake.lock
git commit -s -m "flake update" git commit -s -m "flake update"
git push git push -f
git switch main git switch main
upgrade: upgrade:

View file

@ -1,6 +1,7 @@
{ {
config, config,
lib, lib,
pkgs,
... ...
}: }:
let let
@ -14,6 +15,14 @@ in
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
services.caddy = { services.caddy = {
enable = true; enable = true;
package = pkgs.caddy.withPlugins {
plugins = [
# error message will tell you the correct version tag to use
# (still need the @ to pass nix config check)
"github.com/caddy-dns/cloudflare@v0.0.0-20240703190432-89f16b99c18e"
];
hash = "sha256-jCcSzenewQiW897GFHF9WAcVkGaS/oUu63crJu7AyyQ=";
};
logFormat = lib.mkForce "level INFO"; logFormat = lib.mkForce "level INFO";
acmeCA = "https://acme-v02.api.letsencrypt.org/directory"; acmeCA = "https://acme-v02.api.letsencrypt.org/directory";
extraConfig = '' extraConfig = ''
@ -22,6 +31,10 @@ in
header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
} }
''; '';
globalConfig = ''
acme_dns cloudflare {$CLOUDFLARE_KEY}
'';
environmentFile = config.sops.secrets."caddy/env".path;
}; };
}; };
} }

View file

@ -2,6 +2,7 @@ let
overlays = [ overlays = [
./conduwuit ./conduwuit
./attic ./attic
./vscode.nix
]; ];
importedOverlays = map (m: import m) overlays; importedOverlays = map (m: import m) overlays;
in in

14
overlay/vscode.nix Normal file
View file

@ -0,0 +1,14 @@
final: prev: {
vscode-extensions = prev.vscode-extensions // {
github = prev.vscode-extensions.github // {
codespaces = prev.vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "github";
name = "codespaces";
version = "1.17.3";
hash = "sha256-idJFYHJ4yeqpFZBX55Y0v1yfzgqyhS0MrC4yIto7i7w=";
};
};
};
};
}

View file

@ -1,5 +1,5 @@
caddy: caddy:
env: ENC[AES256_GCM,data:uVCkVky5MRRhN+g4f634nBjvpcI5Ldy+eOKXg7eGu9foswTHA1SXDs67+Wuvo/jaPw7Zg67xKZRHnoTon1udQzyfu0T6pmVKfsUPewITYCd+qLTanFz6uVRUHzpUVwjCZNqB8gxNr/BiZ70NG4vQXRjgd3zKFrQYQBr4zSaP2vK1pRdbuQ==,iv:dQBfX4X8huUp2dqY3tEGW+BPZ/XADT10ptt85R7X+AY=,tag:cvMbFjkRHoxxnNfz8dGv5g==,type:str] env: ENC[AES256_GCM,data:XyxcCVT+rwlS7A3xzUgGqpMoLwhfUJo2++zPTgoPt3q6Edt14bYQJsoSJXnKx/lGg/0ilNfEEg8AEnru/Mzx0bWedSdWuZ380l8wlLiucqQThhEBhEJlyd94BMNzhxFdj82w0ejp4oWb5By/WjkFNesvAyxPIo/Ir4S+fTgGpA1iO2Ms8Pdjp00qeXYsK1CfjaXOYlEP+8BxntN2JKLYb8Cgs7dLmHfUwP6gTFKlTukUTtQZYUw336q3TtGy,iv:Ab/E0ljUBxzWlXfAC2BXCYxlgo0ErvKFaubgVjFR3OU=,tag:Yr24/DofYS2lM6f2/1LQ3Q==,type:str]
sops: sops:
kms: [] kms: []
gcp_kms: [] gcp_kms: []
@ -33,8 +33,8 @@ sops:
Q2hBZE1FOHJ3aW5rVmoyK045eG11cmsKFOmP5iWONREZvxu0rM+fKMPQKgnYq5LH Q2hBZE1FOHJ3aW5rVmoyK045eG11cmsKFOmP5iWONREZvxu0rM+fKMPQKgnYq5LH
AKMZFsP7nnUxjdCXEA18sDg4Rf0qp8i3uQK3D6P7417j9ye/YZA4BQ== AKMZFsP7nnUxjdCXEA18sDg4Rf0qp8i3uQK3D6P7417j9ye/YZA4BQ==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2024-12-17T03:25:37Z" lastmodified: "2025-01-30T17:26:39Z"
mac: ENC[AES256_GCM,data:bhFBLkT2q6HGtTPtHLVZkKZn00Lbm11/u3qSR19lU2E1SsQ7mpukvCqcTxNWtJ+HHth6yJJfgM6XABKq/9/598L2MgGuF3C/GGS3xpjwHh5RyV8t1lV8cqDaZGjGOMGx35lFQ6DoXOreQrtP/f7MKzf+nVNFr1NbTR8YhqR1xDU=,iv:+fjYlbyIyM9nLagrvE+PUhC2pT7QTsTSQX7ELZ7Wuhs=,tag:GWQv6VmIsWwFzb4bUr5CLg==,type:str] mac: ENC[AES256_GCM,data:saoalvnwHsv0CTw/cRZqibnH9oGoZTNwGUT7RePKRa8OwNzbUEzQt+Z1WrmmWoqR+omQXLE+lpOPv6uNYxvAWnIelzCGeBBCMSBxtjlTUsjts7oFo7d9C5SdTIOkzotDxryvjRupb0P7hAmEqcSUKRZipJy5MVR7VXR1XZ4fIPM=,iv:VaP05zj8L2pygi1/M4BnOV3Inf0ssaWMu+aTBkdDMys=,tag:nuZT8GMB4F0T5dHnTvHOhA==,type:str]
pgp: [] pgp: []
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.9.2 version: 3.9.4

32
secrets/yt/aws.yaml Normal file
View file

@ -0,0 +1,32 @@
aws:
key_id: ENC[AES256_GCM,data:vxa8IS5zVOStsQaQNoPy36MeCw2KD2Th5tg=,iv:TrPukr/bpkGysf1YigBlXwaCu0H1FM6ivCVQEgnst6A=,tag:yrlcsDkLkH7U2i3JgjDaBA==,type:str]
key_secret: ENC[AES256_GCM,data:R9hFgtylEW1RphrP7/9Hi7HIb7gcQX1WDEVfnUTTzh+/0LM2Rb9CdkaleO8wNlcyYVE/jUKtqdqqrospAJ7+Zw==,iv:3+yCVqH441+oXFLI5usaQdhnE3GFhbJjMsYeRvk8xEw=,tag:STxA32cSdwPBikXyVEP5+Q==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age1sy0at69err83qyml2vqu8xvwjccfws447aaadfvacj2qluw3p45s2mtrw8
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKaUZKbTVjZ1NEWlE5RzZT
T1dKdkRQajEva0tpRXhxYUlYWmw1b3MwSFZvCmhteVJ2VGhVNnZTZkJlem1OT3dL
dGlQTWdOUlo3TXNOS0wvNlpqVWpZSFEKLS0tIC9DNjY3OW1zWUlRQ1ZEOGlBRk9R
azQxMGhQejQ5M0N1YjFtSW5uVnRCQ3MKtt26G2PxIry/lppOT/NUX8jebEb5NgqO
HuHj7WT51Gtotfgb22VfGeOCaw9+pPYSjdk9WV4z57r7Z/lylALKRw==
-----END AGE ENCRYPTED FILE-----
- recipient: age10h6pg5qdpc4t0rpmksfv788a57f04n83zgqaezkjjn65nkhv547s0vxfdn
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPaVIwbExDUjJiVFpHOFJu
dk1SUHc5UDRFUENsbkg2RmQvazdEZ1NKeEhvCjVCNzdwRFN0aUZJL0pVSTI1RUxv
Ymhhc0tsSENVa1VUKzRBZk5IcjEvNFUKLS0tIFpPNlRXOVYyVnpyUmtLMTFqNlZ0
UlYrTExEUVc0dURLR1czN3BnYzZ2VGMKCbAgM50jvs9VciA1Pb/VY+2I4x62LBGe
j7eHkfTFc8Gnk/rZA9/ZJDLFr/FUPMQWK/NVoz6oLjO6oVFXqN6OqA==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-01-30T17:45:09Z"
mac: ENC[AES256_GCM,data:uXnJ8DCs1ZZ72PFAmSQpqvVH2UYvRX8AeUC00A6WsgNL9sz6H0b7PwXBn4SucHACwLwilMVKYpFGE1pPMsIgpHxU5coNhvTfth/ChY1KS73LAwrJUAyUoFI3mumPkklj7b/u1CbBfhuhA2QoZVl+d9BGQn5CQu3+BySUmcT+P9k=,iv:H/hUTBDNcsGBP5TA/7U1QMZogZvuoPuEAg/tBCpbf9w=,tag:W7rH84Na/tHPuJlA9tRXEQ==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.9.4