commit a1a3cb98e699758ee2920f47756a42e5c6a88b19
parent 4df8037c6232d3896263a9f08dbd9271b2b52d6a
Author: silas <silas@noreply.git.fnarglebeast.com>
Date: Tue, 19 May 2026 19:53:02 +0300
feat: add isis configuration
Diffstat:
| A | hosts/isis.nix | | | 320 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
1 file changed, 320 insertions(+), 0 deletions(-)
diff --git a/hosts/isis.nix b/hosts/isis.nix
@@ -0,0 +1,320 @@
+{ config, pkgs, lib, ... }:
+
+{
+ imports = [
+ ./hardware-configuration.nix
+ ];
+
+ nix.settings.experimental-features = [
+ "nix-command"
+ "flakes"
+ ];
+ nix.gc = {
+ automatic = true;
+ dates = "weekly";
+ options = "--delete-older-than 30d";
+ };
+
+ boot.loader.systemd-boot.enable = true;
+ boot.loader.efi.canTouchEfiVariables = true;
+
+ networking.hostName = "isis";
+ networking.networkmanager.enable = true;
+
+ time.timeZone = "Europe/Copenhagen";
+ i18n.defaultLocale = "en_GB.UTF-8";
+ i18n.extraLocaleSettings = {
+ LC_ADDRESS = "da_DK.UTF-8";
+ LC_IDENTIFICATION = "da_DK.UTF-8";
+ LC_MEASUREMENT = "da_DK.UTF-8";
+ LC_MONETARY = "da_DK.UTF-8";
+ LC_NAME = "da_DK.UTF-8";
+ LC_NUMERIC = "da_DK.UTF-8";
+ LC_PAPER = "da_DK.UTF-8";
+ LC_TELEPHONE = "da_DK.UTF-8";
+ LC_TIME = "da_DK.UTF-8";
+ };
+
+ services.displayManager.ly.enable = true;
+ programs.dwl = {
+ enable = true;
+ package = (pkgs.dwl.override {
+ configH = ./dwl/config.h;
+ });
+ };
+
+ security.rtkit.enable = true;
+ services.pipewire = {
+ enable = true;
+ alsa.enable = true;
+ alsa.support32Bit = true;
+ pulse.enable = true;
+ };
+
+ nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
+ "claude-code"
+ ];
+
+ fonts = {
+ enableDefaultPackages = true;
+ packages = with pkgs; [
+ jetbrains-mono
+ nerd-fonts.jetbrains-mono
+ nerd-fonts.iosevka
+ ibm-plex
+ merriweather
+ libertinus
+ paratype-pt-sans
+ ];
+ fontconfig = {
+ enable = true;
+ hinting.style = "slight";
+ subpixel.rgba = "rgb";
+ defaultFonts = {
+ sansSerif = [ "IBM Plex Sans" ];
+ serif = [ "Merriweather" ];
+ monospace = [ "JetBrains Mono" ];
+ };
+ confPackages = [
+ (pkgs.writeTextDir "etc/fonts/conf.d/99-math.conf" ''
+ <?xml version="1.0"?>
+ <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+ <fontconfig>
+ <alias>
+ <family>math</family>
+ <prefer>
+ <family>Libertinus</family>
+ </prefer>
+ </alias>
+ </fontconfig>
+ '')
+ ];
+ };
+ };
+
+ users.users.silas = {
+ isNormalUser = true;
+ description = "Silas";
+ extraGroups = [
+ "networkmanager"
+ "wheel"
+ "audio"
+ ];
+ packages = with pkgs; [
+ rbw
+ claude-code
+ (emacs.pkgs.withPackages (ep: [
+ ep.magit
+ ep.expand-region
+ (ep.treesit-grammars.with-grammars (g: [ g.tree-sitter-nix ]))
+ ]))
+ fd
+ feh
+ foot
+ fzf
+ mpv
+ pinentry-tty
+ ripgrep
+ zathura
+ ];
+ };
+
+ programs.firefox = {
+ enable = true;
+ package = (pkgs.wrapFirefox (pkgs.firefox-unwrapped.override { pipewireSupport = true;}) {});
+ preferences = {
+ # "browser.startup.homepage" = "https://example.com";
+ "privacy.resistFingerprinting" = true;
+ "browser.urlbar.quicksuggest.online.enabled" = false;
+ "browser.urlbar.suggest.quicksuggest.sponsored" = false;
+ "browser.ml.chat.enabled" = false;
+ "browser.newtabpage.activity-stream.showSponsored" = false;
+ "browser.newtabpage.activity-stream.showSponsoredCheckboxes" = false;
+ "browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
+
+ # Don't let websites override my font choices
+ "browser.display.use_document_fonts" = 0;
+ };
+ policies = {
+ SearchEngines = {
+ Default = "Kagi";
+
+ # Remove built-ins you don't want
+ Remove = [ "Google" "Bing" "eBay" "DuckDuckGo" "Perplexity" ];
+
+ # Add custom engines
+ Add = [
+ {
+ Name = "Kagi";
+ URLTemplate = "https://kagi.com/search?q={searchTerms}";
+ IconURL = "https://kagi.com/asset/de8b73c/kagi_assets/logos/search.svg";
+ Alias = "k";
+ }
+ ];
+ };
+ DisableTelemetry = true;
+ SearchSuggestEnabled = false;
+ DontCheckDefaultBrowser = true;
+ };
+ };
+
+ programs.dconf.enable = true;
+
+ programs.bash = {
+ enable = true;
+ interactiveShellInit = ''
+ bws() {
+ rbw list | fzf | xargs -I _ rbw get -c _
+ }
+
+ loadenv() {
+ set -a;
+ source "''\${1:-.env}";
+ set +a;
+ }
+ '';
+ };
+
+ programs.git = {
+ enable = true;
+ config = {
+ user = {
+ name = "Silas Brack";
+ email = "silasbrack@gmail.com";
+ };
+ };
+ };
+
+ programs.vim = {
+ enable = true;
+ defaultEditor = true;
+ package = (pkgs.vim.override { }).customize {
+ name = "vim";
+ vimrcConfig.customRC = ''
+ set backspace=indent,eol,start
+
+ set showmatch
+ set incsearch
+ set hlsearch
+ set ignorecase
+ set smartcase
+
+ set wildmenu
+ set wildoptions=pum
+
+ set hidden
+
+ set autoindent
+
+ set number
+ set relativenumber
+
+ set tabstop=4
+ set shiftwidth=4
+
+ set expandtab
+ set showmatch
+
+ filetype plugin indent on
+ syntax on
+
+ set shell=/run/current-system/sw/bin/bash
+ set tags=./tags,tags
+
+ nnoremap gb :ls<CR>:b<Space>
+ nnoremap gs :vimgrep /\%1l/ `fd -t=f `<left>
+ nnoremap gS :vimgrep // `fd -t=f`<C-left><C-left><C-left><right>
+
+ nnoremap <nowait><silent> <C-l> :noh<CR>
+
+ nnoremap [q :cprev<CR>
+ nnoremap ]q :cnext<CR>
+ nnoremap [Q :cfirst<CR>
+ nnoremap ]Q :clast<CR>
+ '';
+ };
+ };
+
+ environment.systemPackages = with pkgs; [
+ cliphist
+ grim
+ slurp
+ wmenu
+ ];
+ environment.sessionVariables = {
+ XKB_DEFAULT_OPTIONS = "ctrl:nocaps";
+ };
+ environment.variables = {
+ EDITOR = "vim";
+ BROWSER = "firefox";
+ TERMINAL = "foot";
+ HISTIGNORE = "&:ls:ls *:exit:pwd:clear:tmux:tmux attach:bash:vim:vim *:open *:reboot:history:loadenv:rm *:nix-shell:nix develop:git *:man *:* --help:bg:fg";
+ HISTCONTROL = "ignoreboth";
+ };
+
+ services.openssh.enable = true;
+
+ services.syncthing = {
+ enable = true;
+ user = "silas";
+ dataDir = "/home/silas/.syncthing";
+ configDir = "/home/silas/.config/syncthing";
+ settings = {
+ devices = {
+ "Lolo's Macbook Pro" = {
+ id = "AODRMP6-CEUBLIG-QFOJBXH-2S5DZ43-F2OSK7I-DDLXY3A-OSGZZEY-GKG4EQF";
+ };
+ "Pixel 6a" = {
+ id = "W3J66VB-KZYFQXI-UKL5XNO-D6W4KSA-2YAB7AZ-2BJ2BXA-T5ID4YA-NR22FQD";
+ };
+ };
+ folders = {
+ "Notes" = {
+ id = "7mruq-r5ufp";
+ path = "/home/silas/notes";
+ devices = [
+ "Lolo's Macbook Pro"
+ "Pixel 6a"
+ ];
+ };
+ };
+ };
+ };
+
+ networking.firewall.allowedUDPPorts = [ 10232 ];
+ networking.extraHosts = ''
+ 10.100.0.1 poseidon
+ 10.100.0.2 thinkpad
+ 10.100.0.3 pixel
+ 10.100.0.4 gaia
+ 10.100.0.5 ipad
+ 10.100.0.6 macbook
+ 10.100.0.7 helios
+ 10.100.0.8 isis
+ '';
+ networking.wg-quick.interfaces = {
+ wg0 = {
+ address = [ "10.100.0.8/24" ];
+ dns = [ "10.100.0.1" ];
+ listenPort = 10232;
+ autostart = true;
+ privateKeyFile = "/home/silas/privatekey";
+ peers = [
+ {
+ publicKey = "2jWfr5UmACvuS+0HOfSNgEUYqoqVNnfVDoaatmgEykw=";
+ allowedIPs = [ "0.0.0.0/0" ];
+ endpoint = "188.166.127.72:51820";
+ persistentKeepalive = 25;
+ }
+ ];
+ };
+ };
+
+ # This value determines the NixOS release from which the default
+ # settings for stateful data, like file locations and database versions
+ # on your system were taken. It‘s perfectly fine and recommended to leave
+ # this value at the release version of the first install of this system.
+ # Before changing this value read the documentation for this option
+ # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
+ system.stateVersion = "25.11"; # Did you read the comment?
+}