nixos-config

NixOS configs for my systems
Log | Files | Refs

commit d58963570544b0921a3e6aa09203e99b36d952bf
parent 610531670c37084c76033d191e3a267e86f3b46c
Author: vin <git@vineetk.net>
Date:   Wed,  1 Jan 2025 12:01:10 -0500

update nixos to 24.11 and try adding stuff from existing imperative config

Diffstat:
Mflake.nix | 20++++++++++++++++++--
Mhome.nix | 83+++++++++++++++++++++++++++++++++++++++++++++----------------------------------
2 files changed, 65 insertions(+), 38 deletions(-)

diff --git a/flake.nix b/flake.nix @@ -2,10 +2,10 @@ description = "my nixos configuration"; inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; + nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; home-manager = { - url = "github:nix-community/home-manager/release-24.05"; + url = "github:nix-community/home-manager/release-24.11"; inputs.nixpkgs.follows = "nixpkgs"; }; @@ -18,11 +18,27 @@ outputs = { self, home-manager, nixpkgs, everblush-gtk, ... }@inputs: { # TODO: deduplicate this nixosConfigurations = { + demiurge = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = inputs; + modules = [ + ./hosts/demiurge + + home-manager.nixosModules.home-manager { + home-manager.extraSpecialArgs = { inherit inputs; }; + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.vin = import ./home.nix; + } + ]; + }; + lappy = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = inputs; modules = [ ./hosts/lappy + home-manager.nixosModules.home-manager { home-manager.extraSpecialArgs = { inherit inputs; }; home-manager.useGlobalPkgs = true; diff --git a/home.nix b/home.nix @@ -12,7 +12,6 @@ alacritty # doing st/suckless declaratively seems like it'll suck dmenu doas - hsetroot kicad librewolf mlocate @@ -20,6 +19,7 @@ mupdf neofetch profanity + qutebrowser rclone redshift st @@ -37,31 +37,45 @@ ]; sessionVariables = { - #EDITOR = "vis"; + EDITOR = "emacs"; + VISUAL = "emacs -nw" PAGER = "less"; LESS = "-iR"; LESSHISTFILE = "/dev/null"; - #BROWSER = "links -g"; + BROWSER = "qutebrowser"; GOPROXY = "direct"; - AGE_KEY = "~/.ssh/id_ed25519"; - AGE_PUB = "~/.ssh/id_ed25519.pub"; + AGE_KEY = "$HOME/.ssh/id_ed25519"; + AGE_PUB = "$AGE_KEY.pub"; ANGOU_DIR = "/data/angou-age"; ANGOU_ENCRYPT = "age -R $AGE_PUB"; ANGOU_DECRYPT = "age -d -i $AGE_KEY"; ANGOU_EXT = "age"; ANGOU_CLIPBOARD = "xsel -ib"; + # w3m is only used for aerc html preview + W3M_DIR = "/var/empty"; + + # backblaze on rclone + RCLONE_FAST_LIST = 1; + + CRAWL_DIR = "$HOME/.local/share/crawl"; + MOZ_ACCELERATED = 1; MOZ_WEBRENDER = 1; }; shellAliases = { + md = "mkdir -p"; + ls = "ls -F --color=auto"; e = "$EDITOR"; - gc = "git"; - ls = "ls -F"; + p = "$PAGER"; + cbc = "xsel -cb; xsel -cp; xsel -cs"; + gc = "git clone"; + rsync = "rsync --no-inc-recursive"; mpv = "mpv --save-position-on-quit"; + wget = "wget --no-hsts"; }; }; @@ -73,13 +87,13 @@ emoji = []; monospace = [ "Comic Code" ]; sansSerif = [ "Cantarell" ]; - serif = [ "Open Baskerville 0.0.75" ]; + serif = [ "CMU Serif" ]; }; }; gtk = { enable = true; - font.name = "monospace 10"; + font.name = "monospace 11"; iconTheme.name = "rose-pine"; iconTheme.package = pkgs.rose-pine-icon-theme; theme.name = "Everblush"; @@ -128,7 +142,7 @@ }; filters = { "message/delivery-status" = "colorize"; - "message/rfc822" = "colorize"; + "message/rfc822" = "colorize"; "text/calendar" = "calendar"; "text/html" = "html-unsafe | colorize"; @@ -136,8 +150,8 @@ }; openers = { "application/pdf" = "mupdf"; - "text/html" = "librewolf"; - "text/plain" = "vis"; + "text/html" = "qutebrowser"; + "text/plain" = "emacs"; }; templates = { "new-message" = "new_message"; @@ -147,8 +161,6 @@ }; stylesets = { monochrome = '' - # vim: ft=dosini - # # aerc monochrome styleset # @@ -234,28 +246,27 @@ ]; }; - neovim = { - enable = true; - defaultEditor = true; - extraConfig = '' - " my sensible defaults. - " I use mouse in terminal for primary select and paste, not what (n)vim wants - " 8-wide hardtabs I prefer visually and doesn't feel cramped - set background=dark - set backupdir=/tmp/nvim - set noexpandtab - set nohlsearch - set ignorecase - set mouse= - set relativenumber - set shiftwidth=8 - set tabstop=8 - - " stop annoying cursor movement on escape from insert - " this seems to be default behaviour from vis - inoremap <silent> <Esc> <C-O>:stopinsert<CR> - ''; - }; + mpv = { + bindings = { + # I wish there was a more elegant way of setting Anime4K + + "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)'"; + "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)'"; + "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)'"; + "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)'"; + "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)'"; + "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)'"; + + "Ctrl+0" = "no-osd change-list glsl-shaders clr ''; show-text 'GLSL shaders cleared'"; + }; + + config = { + # sets default shaders to Anime4K Mode A (HQ). laptop's igpu doesn't like it though + 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"; + + ytdl-format = "bestvideo[height<=?1440]+bestaudio/best"; + }; + }; yt-dlp = { enable = true;