summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--flake.nix20
-rw-r--r--home.nix83
2 files changed, 65 insertions, 38 deletions
diff --git a/flake.nix b/flake.nix
index 8269b27..7e4e4cb 100644
--- a/flake.nix
+++ b/flake.nix
@@ -2,10 +2,10 @@
2 description = "my nixos configuration"; 2 description = "my nixos configuration";
3 3
4 inputs = { 4 inputs = {
5 nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; 5 nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
6 6
7 home-manager = { 7 home-manager = {
8 url = "github:nix-community/home-manager/release-24.05"; 8 url = "github:nix-community/home-manager/release-24.11";
9 inputs.nixpkgs.follows = "nixpkgs"; 9 inputs.nixpkgs.follows = "nixpkgs";
10 }; 10 };
11 11
@@ -18,11 +18,27 @@
18 outputs = { self, home-manager, nixpkgs, everblush-gtk, ... }@inputs: { 18 outputs = { self, home-manager, nixpkgs, everblush-gtk, ... }@inputs: {
19 # TODO: deduplicate this 19 # TODO: deduplicate this
20 nixosConfigurations = { 20 nixosConfigurations = {
21 demiurge = nixpkgs.lib.nixosSystem {
22 system = "x86_64-linux";
23 specialArgs = inputs;
24 modules = [
25 ./hosts/demiurge
26
27 home-manager.nixosModules.home-manager {
28 home-manager.extraSpecialArgs = { inherit inputs; };
29 home-manager.useGlobalPkgs = true;
30 home-manager.useUserPackages = true;
31 home-manager.users.vin = import ./home.nix;
32 }
33 ];
34 };
35
21 lappy = nixpkgs.lib.nixosSystem { 36 lappy = nixpkgs.lib.nixosSystem {
22 system = "x86_64-linux"; 37 system = "x86_64-linux";
23 specialArgs = inputs; 38 specialArgs = inputs;
24 modules = [ 39 modules = [
25 ./hosts/lappy 40 ./hosts/lappy
41
26 home-manager.nixosModules.home-manager { 42 home-manager.nixosModules.home-manager {
27 home-manager.extraSpecialArgs = { inherit inputs; }; 43 home-manager.extraSpecialArgs = { inherit inputs; };
28 home-manager.useGlobalPkgs = true; 44 home-manager.useGlobalPkgs = true;
diff --git a/home.nix b/home.nix
index a42ea5b..0ca3a65 100644
--- a/home.nix
+++ b/home.nix
@@ -12,7 +12,6 @@
12 alacritty # doing st/suckless declaratively seems like it'll suck 12 alacritty # doing st/suckless declaratively seems like it'll suck
13 dmenu 13 dmenu
14 doas 14 doas
15 hsetroot
16 kicad 15 kicad
17 librewolf 16 librewolf
18 mlocate 17 mlocate
@@ -20,6 +19,7 @@
20 mupdf 19 mupdf
21 neofetch 20 neofetch
22 profanity 21 profanity
22 qutebrowser
23 rclone 23 rclone
24 redshift 24 redshift
25 st 25 st
@@ -37,31 +37,45 @@
37 ]; 37 ];
38 38
39 sessionVariables = { 39 sessionVariables = {
40 #EDITOR = "vis"; 40 EDITOR = "emacs";
41 VISUAL = "emacs -nw"
41 PAGER = "less"; 42 PAGER = "less";
42 LESS = "-iR"; 43 LESS = "-iR";
43 LESSHISTFILE = "/dev/null"; 44 LESSHISTFILE = "/dev/null";
44 #BROWSER = "links -g"; 45 BROWSER = "qutebrowser";
45 46
46 GOPROXY = "direct"; 47 GOPROXY = "direct";
47 48
48 AGE_KEY = "~/.ssh/id_ed25519"; 49 AGE_KEY = "$HOME/.ssh/id_ed25519";
49 AGE_PUB = "~/.ssh/id_ed25519.pub"; 50 AGE_PUB = "$AGE_KEY.pub";
50 ANGOU_DIR = "/data/angou-age"; 51 ANGOU_DIR = "/data/angou-age";
51 ANGOU_ENCRYPT = "age -R $AGE_PUB"; 52 ANGOU_ENCRYPT = "age -R $AGE_PUB";
52 ANGOU_DECRYPT = "age -d -i $AGE_KEY"; 53 ANGOU_DECRYPT = "age -d -i $AGE_KEY";
53 ANGOU_EXT = "age"; 54 ANGOU_EXT = "age";
54 ANGOU_CLIPBOARD = "xsel -ib"; 55 ANGOU_CLIPBOARD = "xsel -ib";
55 56
57 # w3m is only used for aerc html preview
58 W3M_DIR = "/var/empty";
59
60 # backblaze on rclone
61 RCLONE_FAST_LIST = 1;
62
63 CRAWL_DIR = "$HOME/.local/share/crawl";
64
56 MOZ_ACCELERATED = 1; 65 MOZ_ACCELERATED = 1;
57 MOZ_WEBRENDER = 1; 66 MOZ_WEBRENDER = 1;
58 }; 67 };
59 68
60 shellAliases = { 69 shellAliases = {
70 md = "mkdir -p";
71 ls = "ls -F --color=auto";
61 e = "$EDITOR"; 72 e = "$EDITOR";
62 gc = "git"; 73 p = "$PAGER";
63 ls = "ls -F"; 74 cbc = "xsel -cb; xsel -cp; xsel -cs";
75 gc = "git clone";
76 rsync = "rsync --no-inc-recursive";
64 mpv = "mpv --save-position-on-quit"; 77 mpv = "mpv --save-position-on-quit";
78 wget = "wget --no-hsts";
65 }; 79 };
66 }; 80 };
67 81
@@ -73,13 +87,13 @@
73 emoji = []; 87 emoji = [];
74 monospace = [ "Comic Code" ]; 88 monospace = [ "Comic Code" ];
75 sansSerif = [ "Cantarell" ]; 89 sansSerif = [ "Cantarell" ];
76 serif = [ "Open Baskerville 0.0.75" ]; 90 serif = [ "CMU Serif" ];
77 }; 91 };
78 }; 92 };
79 93
80 gtk = { 94 gtk = {
81 enable = true; 95 enable = true;
82 font.name = "monospace 10"; 96 font.name = "monospace 11";
83 iconTheme.name = "rose-pine"; 97 iconTheme.name = "rose-pine";
84 iconTheme.package = pkgs.rose-pine-icon-theme; 98 iconTheme.package = pkgs.rose-pine-icon-theme;
85 theme.name = "Everblush"; 99 theme.name = "Everblush";
@@ -128,7 +142,7 @@
128 }; 142 };
129 filters = { 143 filters = {
130 "message/delivery-status" = "colorize"; 144 "message/delivery-status" = "colorize";
131 "message/rfc822" = "colorize"; 145 "message/rfc822" = "colorize";
132 146
133 "text/calendar" = "calendar"; 147 "text/calendar" = "calendar";
134 "text/html" = "html-unsafe | colorize"; 148 "text/html" = "html-unsafe | colorize";
@@ -136,8 +150,8 @@
136 }; 150 };
137 openers = { 151 openers = {
138 "application/pdf" = "mupdf"; 152 "application/pdf" = "mupdf";
139 "text/html" = "librewolf"; 153 "text/html" = "qutebrowser";
140 "text/plain" = "vis"; 154 "text/plain" = "emacs";
141 }; 155 };
142 templates = { 156 templates = {
143 "new-message" = "new_message"; 157 "new-message" = "new_message";
@@ -147,8 +161,6 @@
147 }; 161 };
148 stylesets = { 162 stylesets = {
149 monochrome = '' 163 monochrome = ''
150 # vim: ft=dosini
151 #
152 # aerc monochrome styleset 164 # aerc monochrome styleset
153 # 165 #
154 166
@@ -234,28 +246,27 @@
234 ]; 246 ];
235 }; 247 };
236 248
237 neovim = { 249 mpv = {
238 enable = true; 250 bindings = {
239 defaultEditor = true; 251 # I wish there was a more elegant way of setting Anime4K
240 extraConfig = '' 252
241 " my sensible defaults. 253 "Ctrl+1" = "no-osd change-list glsl-shaders set '~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl'; show-text 'Anime4K: Mode A (HQ)'";
242 " I use mouse in terminal for primary select and paste, not what (n)vim wants 254 "Ctrl+2" = "no-osd change-list glsl-shaders set '~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl'; show-text 'Anime4K: Mode B (HQ)'";
243 " 8-wide hardtabs I prefer visually and doesn't feel cramped 255 "Ctrl+3" = "no-osd change-list glsl-shaders set '~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl'; show-text 'Anime4K: Mode C (HQ)'";
244 set background=dark 256 "Ctrl+4" = "no-osd change-list glsl-shaders set '~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_Restore_CNN_M.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl'; show-text 'Anime4K: Mode A+A (HQ)'";
245 set backupdir=/tmp/nvim 257 "Ctrl+5" = "no-osd change-list glsl-shaders set '~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl'; show-text 'Anime4K: Mode B+B (HQ)'";
246 set noexpandtab 258 "Ctrl+6" = "no-osd change-list glsl-shaders set '~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Restore_CNN_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl'; show-text 'Anime4K: Mode C+A (HQ)'";
247 set nohlsearch 259
248 set ignorecase 260 "Ctrl+0" = "no-osd change-list glsl-shaders clr ''; show-text 'GLSL shaders cleared'";
249 set mouse= 261 };
250 set relativenumber 262
251 set shiftwidth=8 263 config = {
252 set tabstop=8 264 # sets default shaders to Anime4K Mode A (HQ). laptop's igpu doesn't like it though
253 265 glsl-shaders = "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl";
254 " stop annoying cursor movement on escape from insert 266
255 " this seems to be default behaviour from vis 267 ytdl-format = "bestvideo[height<=?1440]+bestaudio/best";
256 inoremap <silent> <Esc> <C-O>:stopinsert<CR> 268 };
257 ''; 269 };
258 };
259 270
260 yt-dlp = { 271 yt-dlp = {
261 enable = true; 272 enable = true;