diff --git a/README.md b/README.md index 949f6b2f..67f82630 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ This repo is managed with Nix + GNU stow - `wpa_cli` ```bash add_network - # wil return a number + # will return a number set_network ssid "" set_network psk "" select_network 0 diff --git a/nix/configurations/hetzner_benchmark/home/dev.nix b/nix/configurations/hetzner_benchmark/home/dev.nix index 1a816999..04ac99bf 100644 --- a/nix/configurations/hetzner_benchmark/home/dev.nix +++ b/nix/configurations/hetzner_benchmark/home/dev.nix @@ -1,4 +1,10 @@ +{ pkgs, ... }: { + home.packages = [ + pkgs.hyperfine # for benchmarking + pkgs.watchexec + ]; + programs.git = { enable = true; signing.signByDefault = false; # no need to setup the key diff --git a/nix/configurations/hetzner_benchmark/home/programs.nix b/nix/configurations/hetzner_benchmark/home/programs.nix index be1cbfc1..2503c61d 100644 --- a/nix/configurations/hetzner_benchmark/home/programs.nix +++ b/nix/configurations/hetzner_benchmark/home/programs.nix @@ -20,17 +20,6 @@ pkgs.unzip pkgs.gnutar pkgs.p7zip - pkgs.bc - pkgs.dig - pkgs.hutils - - # pretty tui tools - pkgs.dust - pkgs.tokei - pkgs.hyperfine - pkgs.watchexec - pkgs.onefetch - pkgs.just ]; programs = { diff --git a/nix/configurations/installer.nix b/nix/configurations/installer.nix index 3b9d56db..de59e0a6 100644 --- a/nix/configurations/installer.nix +++ b/nix/configurations/installer.nix @@ -1,9 +1,7 @@ -# # Note: # I could've import the wifi configuration and use it here, but I haven't # figured out an elegant (enough) way to do it while keeping my secrets # encrypted. -# let sources = import ../../npins; in @@ -37,8 +35,7 @@ in overlays = map import [ ../overlays/agenix.nix ../overlays/disko.nix - ../overlays/nur.nix - + ../overlays/npins.nix ../packages/overlay.nix ]; }; @@ -54,18 +51,20 @@ in isoImage.squashfsCompression = "zstd -Xcompression-level 3"; - environment.systemPackages = [ - pkgs.disko - pkgs.manage - pkgs.git - pkgs.pastebinit # for sharing cli output & debugging - pkgs.hdparm # to ATA secure wipe disks - pkgs.btop + environment.systemPackages = with pkgs; [ + agenix + npins + disko + stow + manage + + git + pastebinit # for sharing cli output & debugging + hdparm # to ATA secure wipe disks ]; networking.firewall.allowedTCPPorts = [ 8080 ]; # in case you wanna nc - programs.tmux.enable = true; users.users.nixos.shell = pkgs.fish; programs.fish.enable = true; diff --git a/nix/configurations/vanadium.nix b/nix/configurations/vanadium.nix index 6be7ec17..ac6cd805 100644 --- a/nix/configurations/vanadium.nix +++ b/nix/configurations/vanadium.nix @@ -150,7 +150,6 @@ in ./vanadium/home/misc.nix ./vanadium/home/gtk.nix - ./vanadium/home/zen-browser.nix ./vanadium/home/firefox.nix ./vanadium/home/xmobar.nix @@ -169,7 +168,6 @@ in ../homeModules/common/atuin.nix ../homeModules/common/direnv.nix ../homeModules/common/feh.nix - ../homeModules/common/zen-browser.nix ../homeModules/common/firefox.nix ../homeModules/common/fzf.nix ../homeModules/common/git.nix @@ -191,9 +189,6 @@ in # (sources.agenix + "/modules/age-home.nix") sources.wired-notify.asFlake.homeManagerModules.default - - # non official one uses reuploaded artifacts, are they audited? - sources.zen-browser.asFlake.homeModules.beta ]; } diff --git a/nix/configurations/vanadium/home/dev.nix b/nix/configurations/vanadium/home/dev.nix index dddef0f0..a1ea942c 100644 --- a/nix/configurations/vanadium/home/dev.nix +++ b/nix/configurations/vanadium/home/dev.nix @@ -6,12 +6,20 @@ }: { home.packages = [ + pkgs.watchexec + + # Nix + pkgs.nurl # fetcher made easy + pkgs.nix-diff # debug cache miss + pkgs.nix-tree # analyze closure + pkgs.nix-which + # preview markdown pkgs.python3Packages.grip # For {nix,haskell} contribution pkgs.gh - pkgs.act + # pkgs.act pkgs.nixfmt-rfc-style pkgs.nix-doc pkgs.nixpkgs-review @@ -19,6 +27,7 @@ pkgs.fx # json viewer + # LSPs pkgs.lua-language-server pkgs.stylua # lua pkgs.nil # nix @@ -28,9 +37,7 @@ pkgs.vscode-langservers-extracted # JSON etc pkgs.yaml-language-server # yaml pkgs.cornelis # agda - - # bash - pkgs.shfmt + pkgs.shfmt # bash pkgs.nodePackages.bash-language-server # ghc @@ -59,14 +66,6 @@ programs.gpg.enable = true; - # programs.vscode = { - # enable = true; - # profiles.default.extensions = [ - # pkgs.vscode-extensions.redhat.java - # pkgs.vscode-extensions.vscjava.vscode-java-pack - # ]; - # }; - nix = { settings = { extra-substituters = [ diff --git a/nix/configurations/vanadium/home/programs.nix b/nix/configurations/vanadium/home/programs.nix index b0b931ab..15a8422a 100644 --- a/nix/configurations/vanadium/home/programs.nix +++ b/nix/configurations/vanadium/home/programs.nix @@ -18,21 +18,17 @@ }; home.packages = [ + # TODO: write a simple rpn calculator for scripting (and learn bash properly) pkgs.ghc # my favorite calculator pkgs.lsr # fast ls with io_uring pkgs.nmap - pkgs.stow pkgs.zip pkgs.unzip pkgs.gnutar pkgs.p7zip - pkgs.bc pkgs.dig - pkgs.hutils - pkgs.miniserve - pkgs.agenix - pkgs.nix-which + pkgs.hutils # TODO: simplify this project # To quote a legendary programer: # > for whenever people think mac is hardcoded in hardware. @@ -41,50 +37,20 @@ # lol pkgs.macchanger - # The file picker is not ergonomic enough, sadly - pkgs.helix - # pkgs.nushell - pkgs.ruler - pkgs.mini-calc # pdf pkgs.poppler-utils # pdfseparate, pdfunite pkgs.easyscan - # fun - # pkgs.prop-solveur - # pkgs.hbrainfuck - # pkgs.lucky-commit - - # # research - # pkgs.necrolib - - # pretty tui tools - pkgs.dust - pkgs.tokei - pkgs.hyperfine - pkgs.watchexec - pkgs.onefetch - pkgs.just - - pkgs.nixfmt-rfc-style # formatter - pkgs.nurl # fetcher made easy - pkgs.nix-diff # debug cache miss - pkgs.npins - pkgs.nix-tree # analyze closure - # productivity / media - pkgs.evolution - pkgs.libreoffice + pkgs.evolution # TODO: find an alternative + # pkgs.libreoffice pkgs.calibre pkgs.digikam pkgs.nautilus pkgs.sushi # space bar previewer - # pkgs.xournalpp pkgs.picard # music tagger - pkgs.mousai - pkgs.nicotine-plus pkgs.qbittorrent pkgs.mkvtoolnix pkgs.localsend # file share with iOS @@ -116,12 +82,7 @@ defaultEditor = true; }; lazygit.enable = true; - fish = { - enable = true; - shellAbbrs = { - "fdoc" = "find ~/Documents -name"; - }; - }; + fish.enable = true; starship.enable = true; tmux.enable = true; direnv.enable = true; diff --git a/nix/configurations/vanadium/home/xmobar/xmobar.hs b/nix/configurations/vanadium/home/xmobar/xmobar.hs index 76b011e3..aafadb00 100644 --- a/nix/configurations/vanadium/home/xmobar/xmobar.hs +++ b/nix/configurations/vanadium/home/xmobar/xmobar.hs @@ -65,7 +65,8 @@ config = , Run $ Com "tomorrow" - [ "--target", "2026-02-02=monmaster" + [ "--target", "2026-02-17=monmaster⁺" + , "--target", "2026-03-16=monmaster⁻" ] "" (60 &minute) diff --git a/nix/configurations/vanadium/home/xmonad/xmonad.hs b/nix/configurations/vanadium/home/xmonad/xmonad.hs index 2a11cb98..d43896b6 100644 --- a/nix/configurations/vanadium/home/xmonad/xmonad.hs +++ b/nix/configurations/vanadium/home/xmonad/xmonad.hs @@ -165,7 +165,7 @@ myManageHook = composeAll [ isNautilusPreviewer --> customFloating centeredFloat , isPavucontrol --> customFloating centeredFloat - , isFeh --> doF copyToAll <> customFloating buttomRightFloat + , isFeh --> doF copyToAll <> customFloating bottomRightFloat , isMinder --> customFloating centeredFloat , isDiscord --> doShift chatWS , isEvolution --> doShift chatWS @@ -177,7 +177,7 @@ myManageHook = -- Note: some rules here are overlapping, the first one will take the precedence (composeOne) -- e.g. firefoxpip is a utility window <> composeOne - [ isFirefoxPip -?> doF copyToAll <> customFloating buttomRightFloat + [ isFirefoxPip -?> doF copyToAll <> customFloating bottomRightFloat , isUtility -?> doIgnore , isDialog -?> customFloating centeredFloat , isEvolutionComposer -?> customFloating centeredFloat @@ -399,11 +399,11 @@ chatWS = myWorkspaces !! 3 multimediaWS :: WorkspaceId multimediaWS = myWorkspaces !! 6 -centeredFloat, smallFloat, fullFloat, buttomRightFloat :: W.RationalRect +centeredFloat, smallFloat, fullFloat, bottomRightFloat :: W.RationalRect centeredFloat = W.RationalRect (1%9) (1%9) (7%9) (7%9) smallFloat = W.RationalRect (3%5) (3%5) (2%7) (2%7) fullFloat = W.RationalRect 0 0 1 1 -buttomRightFloat = W.RationalRect (1%2) (1%2) (1%2) (1%2) +bottomRightFloat = W.RationalRect (1%2) (1%2) (1%2) (1%2) xmobarConfig :: StatusBarConfig xmobarConfig = statusBarProp "xmobar -x 0" (pure myPrettyPrinter) diff --git a/nix/configurations/vanadium/home/zen-browser.nix b/nix/configurations/vanadium/home/zen-browser.nix deleted file mode 100644 index 0e2ecd9f..00000000 --- a/nix/configurations/vanadium/home/zen-browser.nix +++ /dev/null @@ -1,166 +0,0 @@ -{ - pkgs, - config, - ... -}: -let - inherit (pkgs) nur; -in -{ - programs.zen-browser = { - enable = false; - - policies.SearchEngines.Add = [ - # Forges - { - Name = "GitHub"; - Alias = "@gh"; - IconURL = "https://github.com/favicon.ico"; - Description = "Your code yum yum"; - URLTemplate = "https://github.com/search?q={searchTerms}&type=repositories"; - } - { - Name = "GitHub (Code Search)"; - Alias = "@ghc"; - IconURL = "https://github.com/favicon.ico"; - Description = "Your code yum yum"; - URLTemplate = "https://github.com/search?q={searchTerms}&type=code"; - } - { - Name = "Codeberg"; - Alias = "@cb"; - IconURL = "https://codeberg.org/favicon.ico"; - Description = "Software development, but free!"; - URLTemplate = "https://codeberg.org/explore/repos?q={searchTerms}"; - } - { - Name = "?C"; - Alias = "@cc"; - IconURL = "https://git.confusedcompiler.org/favicon.ico"; - URLTemplate = "https://git.confusedcompiler.org/explore/repos?q={searchTerms}"; - } - - # Nix{,OS,pkgs} - { - Name = "NixOS Search (Package)"; - Alias = "@np"; - IconURL = "https://nixos.org/favicon.ico"; - Description = "Search in nixpkgs"; - URLTemplate = "https://search.nixos.org/packages?query={searchTerms}"; - } - { - Name = "NixOS Search (Options)"; - Alias = "@no"; - IconURL = "https://nixos.org/favicon.ico"; - Description = "Search in NixOS options"; - URLTemplate = "https://search.nixos.org/options?query={searchTerms}"; - } - - # Haskell - { - Name = "Flora"; - Alias = "@hs"; - IconURL = "https://flora.pm/static/icons/favicon-32x32.png"; - URLTemplate = "https://flora.pm/search?q={searchTerms}"; - } - - # Discourse - { - Name = "NixOS Discourse"; - Alias = "@nd"; - IconURL = "https://nixos.org/favicon.ico"; - URLTemplate = "https://discourse.nixos.org/search?q={searchTerms}"; - } - { - Name = "Framework Discourse"; - Alias = "@fd"; - IconURL = "https://frame.work/favicon.ico"; - URLTemplate = "https://community.frame.work/search?q={searchTerms}"; - } - - # Misc - { - Name = "YouTube"; - Alias = "@yt"; - IconURL = "https://youtube.com/favicon.ico"; - SuggestURLTemplate = "http://suggestqueries.google.com/complete/search?q={searchTerms}&ds=yt"; - URLTemplate = "https://www.youtube.com/results?search_query={searchTerms}"; - } - { - Name = "Genius"; - Alias = "@geni"; - IconURL = "https://genius.com/favicon.ico"; - URLTemplate = "https://genius.com/search?q={searchTerms}"; - } - ]; - - profiles = { - default = { - settings = { - # "full-screen-api.ignore-widgets" = true; # limit fullscreen mode to window - }; - userChrome = '' - /* monofont tweak */ - #statuspanel-label { - font-family: monospace; - } - .urlbar-input-box { - font-family: monospace; - } - ''; - extensions.packages = - let - addons = nur.repos.rycee.firefox-addons; - in - [ - addons.sponsorblock - addons.return-youtube-dislikes - addons.shinigami-eyes - addons.consent-o-matic - ]; - }; - - junk = { - id = 1; - inherit (config.programs.zen-browser.profiles.default) - settings - userChrome - ; - - extensions.packages = - let - addons = nur.repos.rycee.firefox-addons; - in - [ addons.multi-account-containers ]; - - containers = { - raisin = { - color = "purple"; - icon = "fruit"; - id = 1; - }; - pomme = { - color = "red"; - icon = "fruit"; - id = 2; - }; - }; - }; - - # Isolate it because it's proprietary - tampermonkey = { - id = 2; - inherit (config.programs.zen-browser.profiles.default) - settings - userChrome - ; - - extensions.packages = - let - addons = nur.repos.rycee.firefox-addons; - in - [ addons.tampermonkey ]; - }; - }; - }; -} diff --git a/nix/configurations/vanadium/nixos/connectivity.nix b/nix/configurations/vanadium/nixos/connectivity.nix index 92c3453b..9c5e8d05 100644 --- a/nix/configurations/vanadium/nixos/connectivity.nix +++ b/nix/configurations/vanadium/nixos/connectivity.nix @@ -57,7 +57,7 @@ extraHosts = '' # - # Generated from nixos configuartion + # Generated from nixos configuration # # This is the fascist one, just block it because I can't tell diff --git a/nix/disko/tungsten/btrfs.nix b/nix/disko/tungsten/btrfs.nix index 66201153..5c4adb48 100644 --- a/nix/disko/tungsten/btrfs.nix +++ b/nix/disko/tungsten/btrfs.nix @@ -54,7 +54,7 @@ # Use btrfs over ext4 for: # - compression - # nix store can be shrinked using this feature + # nix store can be shrunk using this feature # - more transparent partitions (subvolumes) # no more "I need more space here and not there" btrfs = { diff --git a/nix/homeModules/common/firefox.nix b/nix/homeModules/common/firefox.nix index 18981f77..a56d4256 100644 --- a/nix/homeModules/common/firefox.nix +++ b/nix/homeModules/common/firefox.nix @@ -78,7 +78,7 @@ in # No "browser.urlbar.suggest.quicksuggest.sponsored" = false; - # Pasword manager + # Password manager "signon.rememberSignons" = false; "services.passwordSavingEnabled" = false; "pref.privacy.disable_button.view_passwords" = false; @@ -141,7 +141,7 @@ in "x-scheme-handler/unknown" = "firefox.desktop"; }; in - lib.mkIf (cfg.enable && !config.programs.zen-browser.enable) { + lib.mkIf cfg.enable { enable = true; associations.added = associations; defaultApplications = associations; diff --git a/nix/homeModules/common/zen-browser.nix b/nix/homeModules/common/zen-browser.nix deleted file mode 100644 index 4a691331..00000000 --- a/nix/homeModules/common/zen-browser.nix +++ /dev/null @@ -1,68 +0,0 @@ -{ - config, - lib, - ... -}: -let - cfg = config.programs.zen-browser; - - firefoxCfg = config.programs.firefox; -in -{ - programs.zen-browser = { - policies = firefoxCfg.policies; - - # "locked" semantic from zen (doesn't seem to be doing anything, attempted for zen-twilight 1.18t) - # https://github.com/0xc000022070/zen-browser-flake/tree/main#preferences - # - # To check which option is mapped to which about:config - # - back preference file - # cp .zen/default/prefs.js{,.bk} - # - click the buttons - # - diff it - # diff .zen/default/prefs.js{.bk,} - profiles.default = lib.mkMerge [ - firefoxCfg.profiles.default - { - # Zen specific - settings = { - "zen.theme.content-element-separation" = 0; # Remove "borders" around window - "zen.tabs.show-newtab-vertical" = false; - "zen.view.compact.toolbar-flash-popup" = true; - "zen.view.show-newtab-button-top" = false; - "zen.view.use-single-toolbar" = false; - "zen.tabs.ctrl-tab.ignore-pending-tabs" = true; # ctrl-tab ignore unloaded tabs - - # https://github.com/zen-browser/desktop/discussions/12025 - # This makes tabs sync across windows, which as annoying af - "zen.window-sync.enabled" = false; - }; - } - ]; - }; - - xdg.mimeApps = - let - associations = lib.genAttrs [ - "application/x-extension-shtml" - "application/x-extension-xhtml" - "application/x-extension-html" - "application/x-extension-xht" - "application/x-extension-htm" - # "x-scheme-handler/unknown" - # "x-scheme-handler/mailto" - "x-scheme-handler/chrome" - "x-scheme-handler/about" - "x-scheme-handler/https" - "x-scheme-handler/http" - "application/xhtml+xml" - # "application/json" - # "text/plain" - "text/html" - ] (_: cfg.package.meta.desktopFileName); - in - lib.mkIf cfg.enable { - associations.added = associations; - defaultApplications = associations; - }; -} diff --git a/nix/nixosModules/common/sudo-conf.nix b/nix/nixosModules/common/sudo-conf.nix index 35494b1b..01dd3c2a 100644 --- a/nix/nixosModules/common/sudo-conf.nix +++ b/nix/nixosModules/common/sudo-conf.nix @@ -9,16 +9,6 @@ enable = true; extraRules = [ { - # Invoke just with doas directly as a nixos-rebuild helper - # - # Specifiying just here is impractical, because - # - Use absolute path? - # Works only for a specific version of just binary. - # Also, for some reason, the rule won't match. - # - Use relative path? - # doas's docs says it searches in a "limited subset of PATH" if it's relative. - # I suspect that it doesn't search the PATH added ad-hoc by the nix-shell, also not a good solution. - # Also, for some reason, the rule won't match. users = [ ":wheel" ]; setEnv = [ "PATH" ]; } diff --git a/nix/nixosModules/common/system-nixconf.nix b/nix/nixosModules/common/system-nixconf.nix index cbce71b6..5f10bee3 100644 --- a/nix/nixosModules/common/system-nixconf.nix +++ b/nix/nixosModules/common/system-nixconf.nix @@ -8,7 +8,7 @@ package = lib.mkDefault pkgs.nix; settings = { - # it is impossible to anser in nix-direnv, so we force it to off. + # it is impossible to anwser to the prompt in nix-direnv, so we force it to off. # https://github.com/nix-community/nix-direnv/issues/678 accept-flake-config = lib.mkForce false; diff --git a/npins/sources.json b/npins/sources.json index 15e6974a..6f3edaf9 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -368,19 +368,6 @@ "revision": "491197a6a5ef9c65a85c3eb1531786f32ffff5b3", "url": "https://github.com/Toqozz/wired-notify/archive/491197a6a5ef9c65a85c3eb1531786f32ffff5b3.tar.gz", "hash": "sha256-wxkeSF0/3FI0HSBKhZ2mlAAmFviNrZzdhjHqTfWP6h0=" - }, - "zen-browser": { - "type": "Git", - "repository": { - "type": "GitHub", - "owner": "0xc000022070", - "repo": "zen-browser-flake" - }, - "branch": "main", - "submodules": false, - "revision": "0fac05e4b604c3304e7710a95572e78350fe9968", - "url": "https://github.com/0xc000022070/zen-browser-flake/archive/0fac05e4b604c3304e7710a95572e78350fe9968.tar.gz", - "hash": "sha256-jejW3u1bkqz0ObXZeiZqLQNwC7+MXb8/KMwf3VPQpRI=" } }, "version": 7 diff --git a/shell.nix b/shell.nix index 5b89b246..0fbd17f4 100644 --- a/shell.nix +++ b/shell.nix @@ -4,6 +4,7 @@ in { pkgs ? import sources.nixpkgs { overlays = map import [ + ./nix/overlays/agenix.nix ./nix/overlays/disko.nix ./nix/overlays/npins.nix ./nix/packages/overlay.nix @@ -18,8 +19,10 @@ pkgs.mkShell { packages = with pkgs; [ + agenix # from agenix repo npins # from npins repo disko # from disko flake + stow manage nixos-anywhere # comes from nixpkgs ]