Compare commits

..

No commits in common. "a7f3754d2580117d1b6968712ba27e3ca4524f3e" and "862829c57c77d105496b4163a434c1110fc14cb6" have entirely different histories.

21 changed files with 439 additions and 695 deletions

View File

@ -1,9 +1,4 @@
{ { config, lib, pkgs, ... }:
config,
lib,
pkgs,
...
}:
{ {
imports = []; imports = [];
@ -20,6 +15,7 @@
# efibootmgr -c -d /dev/sda -p 1 -L NixOS-boot -l '\EFI\NixOS-boot\grubx64.efi' # efibootmgr -c -d /dev/sda -p 1 -L NixOS-boot -l '\EFI\NixOS-boot\grubx64.efi'
# Text-only: # Text-only:
# sudo cp "$(nix-build '<nixpkgs>' --no-out-link -A 'refind')/share/refind/refind_x64.efi" /boot/EFI/boot/bootx64.efi # sudo cp "$(nix-build '<nixpkgs>' --no-out-link -A 'refind')/share/refind/refind_x64.efi" /boot/EFI/boot/bootx64.efi

View File

@ -1,22 +1,11 @@
{ { config, lib, pkgs, pkgs-unstable, home-manager, ... }:
config,
lib,
pkgs,
pkgs-unstable,
home-manager,
...
}:
{ {
imports = [ imports =
[
./roles/reset ./roles/reset
./hosts/odo ./hosts/odo
"${ "${builtins.fetchTarball {url="https://github.com/nix-community/disko/archive/refs/tags/v1.9.0.tar.gz";sha256="0j76ar4qz320fakdii4659w5lww8wiz6yb7g47npywqvf2lbp388";}}/module.nix"
builtins.fetchTarball {
url = "https://github.com/nix-community/disko/archive/refs/tags/v1.9.0.tar.gz";
sha256 = "0j76ar4qz320fakdii4659w5lww8wiz6yb7g47npywqvf2lbp388";
}
}/module.nix"
./boot.nix ./boot.nix
./zfs.nix ./zfs.nix
./network.nix ./network.nix
@ -24,7 +13,6 @@
./roles/graphics ./roles/graphics
./roles/sound ./roles/sound
./roles/sway ./roles/sway
./roles/alacritty
./roles/firefox ./roles/firefox
./roles/emacs ./roles/emacs
./roles/git ./roles/git
@ -32,10 +20,7 @@
./roles/gpg ./roles/gpg
]; ];
nix.settings.experimental-features = [ nix.settings.experimental-features = [ "nix-command" "flakes" ];
"nix-command"
"flakes"
];
nix.settings.trusted-users = [ "@wheel" ]; nix.settings.trusted-users = [ "@wheel" ];
boot.kernelPackages = pkgs.linuxPackages_6_11; boot.kernelPackages = pkgs.linuxPackages_6_11;
@ -60,13 +45,8 @@
]; ];
}; };
users.groups.talexander.gid = 11235; users.groups.talexander.gid = 11235;
home-manager.users.talexander = home-manager.users.talexander = { pkgs, ... }: {
{ pkgs, ... }: home.packages = [ pkgs.atool pkgs.httpie ];
{
home.packages = [
pkgs.atool
pkgs.httpie
];
programs.bash.enable = true; programs.bash.enable = true;
# The state version is required and should stay at the version you # The state version is required and should stay at the version you
@ -86,13 +66,11 @@
security.doas.enable = true; security.doas.enable = true;
security.doas.wheelNeedsPassword = false; security.doas.wheelNeedsPassword = false;
security.sudo.enable = false; security.sudo.enable = false;
security.doas.extraRules = [ security.doas.extraRules = [{
{
# Retain environment (for example NIX_PATH) # Retain environment (for example NIX_PATH)
keepEnv = true; keepEnv = true;
persist = true; # Only ask for a password the first time. persist = true; # Only ask for a password the first time.
} }];
];
# Do not use default packages (nixos includes some defaults like nano) # Do not use default packages (nixos includes some defaults like nano)
environment.defaultPackages = lib.mkForce []; environment.defaultPackages = lib.mkForce [];
@ -192,6 +170,8 @@
# }) # })
# ]; # ];
# Copy the NixOS configuration file and link it from the resulting system # Copy the NixOS configuration file and link it from the resulting system
# (/run/current-system/configuration.nix). This is useful in case you # (/run/current-system/configuration.nix). This is useful in case you
# accidentally delete configuration.nix. # accidentally delete configuration.nix.

View File

@ -12,17 +12,7 @@
home-manager.inputs.nixpkgs.follows = "nixpkgs"; home-manager.inputs.nixpkgs.follows = "nixpkgs";
}; };
outputs = outputs = { self, nixpkgs, nixpkgs-unstable, nixpkgs-b93b4e9b5, impermanence, home-manager, ... }@inputs: let
{
self,
nixpkgs,
nixpkgs-unstable,
nixpkgs-b93b4e9b5,
impermanence,
home-manager,
...
}@inputs:
let
base-system = {}; base-system = {};
odoqemu = nixpkgs.lib.nixosSystem rec { odoqemu = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux"; system = "x86_64-linux";
@ -44,9 +34,7 @@
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
} }
./configuration.nix ./configuration.nix
( ({lib, ...}: {
{ lib, ... }:
{
imports = [ <nixpkgs/nixos/modules/virtualisation/qemu-vm.nix> ]; imports = [ <nixpkgs/nixos/modules/virtualisation/qemu-vm.nix> ];
virtualisation.qemu.options = [ virtualisation.qemu.options = [
"-device virtio-vga" "-device virtio-vga"
@ -64,8 +52,7 @@
boot.loader.efi.canTouchEfiVariables = lib.mkForce true; boot.loader.efi.canTouchEfiVariables = lib.mkForce true;
# doas nixos-rebuild build-vm --flake .#odoqemu # doas nixos-rebuild build-vm --flake .#odoqemu
#./result/bin/run-nixos-vm #./result/bin/run-nixos-vm
} })
)
]; ];
}; };
odo = nixpkgs.lib.nixosSystem rec { odo = nixpkgs.lib.nixosSystem rec {
@ -117,14 +104,11 @@
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
} }
./configuration.nix ./configuration.nix
( ({lib, ...}: {
{ lib, ... }:
{
networking.dhcpcd.enable = lib.mkForce true; networking.dhcpcd.enable = lib.mkForce true;
networking.useDHCP = lib.mkForce true; networking.useDHCP = lib.mkForce true;
boot.loader.efi.canTouchEfiVariables = lib.mkForce true; boot.loader.efi.canTouchEfiVariables = lib.mkForce true;
} })
)
]; ];
}; };
}; };

View File

@ -14,11 +14,7 @@
type = "filesystem"; type = "filesystem";
format = "vfat"; format = "vfat";
mountpoint = "/boot"; mountpoint = "/boot";
mountOptions = [ mountOptions = [ "umask=0077" "noatime" "discard" ];
"umask=0077"
"noatime"
"discard"
];
}; };
}; };
zfs = { zfs = {

View File

@ -1,24 +1,14 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ { config, lib, pkgs, modulesPath, ... }:
config,
lib,
pkgs,
modulesPath,
...
}:
{ {
imports = [ imports =
(modulesPath + "/installer/scan/not-detected.nix") [ (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" ];
"nvme"
"xhci_pci"
"thunderbolt"
];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];

View File

@ -1,19 +1,11 @@
{ { config, lib, pkgs, ... }:
config,
lib,
pkgs,
...
}:
{ {
imports = []; imports = [];
networking.dhcpcd.enable = false; networking.dhcpcd.enable = false;
networking.useDHCP = false; networking.useDHCP = false;
networking.nameservers = [ networking.nameservers = [ "194.242.2.2#doh.mullvad.net" "2a07:e340::2#doh.mullvad.net" ];
"194.242.2.2#doh.mullvad.net"
"2a07:e340::2#doh.mullvad.net"
];
services.resolved = { services.resolved = {
enable = true; enable = true;
dnssec = "true"; dnssec = "true";
@ -22,6 +14,7 @@
dnsovertls = "true"; dnsovertls = "true";
}; };
# Without this, systemd-resolved will send DNS requests for <X>.home.arpa to the per-link DNS server (172.16.0.1) which does not support DNS-over-TLS. This leads to the connection anging and timing out. This causes firefox startup to take an extra 10+ seconds. # Without this, systemd-resolved will send DNS requests for <X>.home.arpa to the per-link DNS server (172.16.0.1) which does not support DNS-over-TLS. This leads to the connection anging and timing out. This causes firefox startup to take an extra 10+ seconds.
# #
# Test with: drill @127.0.0.53 odo.home.arpa # Test with: drill @127.0.0.53 odo.home.arpa

View File

@ -1,24 +0,0 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [ ];
environment.systemPackages = with pkgs; [
alacritty
xdg-utils # for xdg-open
];
home-manager.users.talexander =
{ pkgs, ... }:
{
home.file.".config/alacritty/alacritty.toml" = {
source = ./files/alacritty.toml;
};
};
}

View File

@ -1,44 +0,0 @@
[colors]
draw_bold_text_with_bright_colors = true
indexed_colors = []
[colors.bright]
black = "0x666666"
blue = "0x7aa6da"
cyan = "0x54ced6"
green = "0x9ec400"
magenta = "0xb77ee0"
red = "0xff3334"
white = "0xffffff"
yellow = "0xe7c547"
[colors.normal]
black = "0x000000"
blue = "0x7aa6da"
cyan = "0x70c0ba"
green = "0xb9ca4a"
magenta = "0xc397d8"
red = "0xd54e53"
white = "0xeaeaea"
yellow = "0xe6c547"
[colors.primary]
background = "0x000000"
foreground = "0xeaeaea"
[font]
size = 11.0
[[hints.enabled]]
command = "xdg-open"
post_processing = true
regex = "(ipfs:|ipns:|magnet:|mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)[^\u0000-\u001F\u007F-<>\"\\s{-}\\^⟨⟩`]+"
[hints.enabled.mouse]
enabled = false
mods = "None"
[scrolling]
history = 10000
# Lines moved per scroll.
multiplier = 3

View File

@ -1,11 +1,7 @@
{ { config, lib, pkgs, ... }:
config,
lib,
pkgs,
...
}:
{ {
imports = []; imports = [];
} }

View File

@ -1,9 +1,4 @@
{ { config, lib, pkgs, ... }:
config,
lib,
pkgs,
...
}:
let let
plainmacs = pkgs.writeShellScriptBin "plainmacs" '' plainmacs = pkgs.writeShellScriptBin "plainmacs" ''
@ -36,25 +31,18 @@ let
exec ${pkgs.emacs29-pgtk}/bin/emacs -q --eval "$INIT_SCRIPT" "''${@}" exec ${pkgs.emacs29-pgtk}/bin/emacs -q --eval "$INIT_SCRIPT" "''${@}"
''; '';
e_shorthand = pkgs.writeShellScriptBin "e" ''
exec ${pkgs.emacs29-pgtk}/bin/emacs "''${@}"
'';
in in
{ {
imports = []; imports = [];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
plainmacs plainmacs
e_shorthand
emacs29-pgtk emacs29-pgtk
clang # To compile tree-sitter grammars clang # To compile tree-sitter grammars
nixd # nix language server nixd # nix language server
nixfmt-rfc-style # auto-formatting nix files through nixd
]; ];
home-manager.users.talexander = home-manager.users.talexander = { pkgs, ... }: {
{ pkgs, ... }:
{
home.file.".config/emacs" = { home.file.".config/emacs" = {
source = ./files/emacs; source = ./files/emacs;
recursive = true; recursive = true;

View File

@ -1,9 +1,4 @@
{ { config, lib, pkgs, ... }:
config,
lib,
pkgs,
...
}:
{ {
imports = []; imports = [];
@ -57,8 +52,7 @@
"privacy.fingerprintingProtection" = true; "privacy.fingerprintingProtection" = true;
# Allow sending dark mode preference to websites. # Allow sending dark mode preference to websites.
# Allow sending timezone to websites. # Allow sending timezone to websites.
"privacy.fingerprintingProtection.overrides" = "privacy.fingerprintingProtection.overrides" = "+AllTargets,-CSSPrefersColorScheme,-JSDateTimeUTC,-CanvasExtractionBeforeUserInputIsBlocked";
"+AllTargets,-CSSPrefersColorScheme,-JSDateTimeUTC,-CanvasExtractionBeforeUserInputIsBlocked";
# Disable weather on new tab page # Disable weather on new tab page
"browser.newtabpage.activity-stream.showWeather" = false; "browser.newtabpage.activity-stream.showWeather" = false;
}; };
@ -88,12 +82,7 @@
hideMounts = true; hideMounts = true;
users.talexander = { users.talexander = {
directories = [ directories = [
{ { directory = ".mozilla"; user = "talexander"; group = "talexander"; mode = "0700"; }
directory = ".mozilla";
user = "talexander";
group = "talexander";
mode = "0700";
}
]; ];
}; };
}; };
@ -101,12 +90,7 @@
hideMounts = true; hideMounts = true;
users.talexander = { users.talexander = {
directories = [ directories = [
{ { directory = ".cache/mozilla"; user = "talexander"; group = "talexander"; mode = "0700"; }
directory = ".cache/mozilla";
user = "talexander";
group = "talexander";
mode = "0700";
}
]; ];
}; };
}; };

View File

@ -1,9 +1,4 @@
{ { config, lib, pkgs, ... }:
config,
lib,
pkgs,
...
}:
{ {
imports = []; imports = [];

View File

@ -1,9 +1,4 @@
{ { config, lib, pkgs, ... }:
config,
lib,
pkgs,
...
}:
{ {
imports = []; imports = [];

View File

@ -1,9 +1,4 @@
{ { config, lib, pkgs, ... }:
config,
lib,
pkgs,
...
}:
{ {
imports = []; imports = [];
@ -12,9 +7,7 @@
git git
]; ];
home-manager.users.talexander = home-manager.users.talexander = { pkgs, ... }: {
{ pkgs, ... }:
{
home.file.".gitconfig" = { home.file.".gitconfig" = {
source = ./files/gitconfig_home; source = ./files/gitconfig_home;
}; };

View File

@ -1,9 +1,4 @@
{ { config, lib, pkgs, ... }:
config,
lib,
pkgs,
...
}:
{ {
imports = []; imports = [];
@ -22,12 +17,7 @@
hideMounts = true; hideMounts = true;
users.talexander = { users.talexander = {
directories = [ directories = [
{ { directory = ".gnupg"; user = "talexander"; group = "talexander"; mode = "0700"; } # Local keyring
directory = ".gnupg";
user = "talexander";
group = "talexander";
mode = "0700";
} # Local keyring
]; ];
}; };
}; };

View File

@ -1,9 +1,4 @@
{ { config, lib, pkgs, ... }:
config,
lib,
pkgs,
...
}:
{ {
imports = []; imports = [];

View File

@ -1,9 +1,4 @@
{ { config, lib, pkgs, ... }:
config,
lib,
pkgs,
...
}:
{ {
imports = []; imports = [];

View File

@ -1,9 +1,4 @@
{ { config, lib, pkgs, ... }:
config,
lib,
pkgs,
...
}:
{ {
imports = []; imports = [];

View File

@ -1,9 +1,4 @@
{ { config, lib, pkgs, ... }:
config,
lib,
pkgs,
...
}:
let let
sway-config = pkgs.writeTextFile { sway-config = pkgs.writeTextFile {
@ -42,8 +37,8 @@ let
include ${window-management} include ${window-management}
include ${movement} include ${movement}
include ${disable-focus-follows-mouse} include ${disable-focus-follows-mouse}
include ${background} include ~/.config/sway/config.d/*.conf
include ${touchpad_input} include /etc/sway/config.d/*
''; '';
}; };
base-hotkeys = pkgs.writeTextFile { base-hotkeys = pkgs.writeTextFile {
@ -210,46 +205,6 @@ let
focus_follows_mouse no focus_follows_mouse no
''; '';
}; };
background = pkgs.writeTextFile {
name = "background.conf";
text = ''
output * bg ${./files/bliss.jpg} fill
'';
};
touchpad_input = pkgs.writeTextFile {
name = "touchpad_input.conf";
text = ''
input * xkb_rules "evdev"
# All touchpads
input type:touchpad {
dwt enabled
click_method clickfinger
tap enabled
}
'';
};
start_screen_share = pkgs.writeShellScriptBin "start_screen_share" ''
# Disable displaying notifications. This is useful for video conference screen sharing.
set -euo pipefail
IFS=$'\n\t'
DIR="$( cd "$( dirname "''${BASH_SOURCE[0]}" )" && pwd )"
makoctl set-mode do-not-disturb
swaymsg output "'Dell Inc. DELL U3014 P1V6N35M329L'" scale 2
'';
stop_screen_share = pkgs.writeShellScriptBin "stop_screen_share" ''
# Allow mako to show notifications again.
set -euo pipefail
IFS=$'\n\t'
DIR="$( cd "$( dirname "''${BASH_SOURCE [ 0 ]}" )" && pwd )"
makoctl set-mode default
swaymsg output "'Dell Inc. DELL U3014 P1V6N35M329L'" scale 1
'';
in in
{ {
imports = []; imports = [];
@ -257,13 +212,10 @@ in
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
alacritty alacritty
pcmanfm pcmanfm
start_screen_share
stop_screen_share
]; ];
environment.sessionVariables = { environment.sessionVariables = {
# WLR_RENDERER_ALLOW_SOFTWARE = "1"; WLR_RENDERER_ALLOW_SOFTWARE = "1";
WLR_RENDERER = "vulkan";
}; };
programs.sway = { programs.sway = {
@ -273,7 +225,7 @@ in
"--debug" "--debug"
"--config" "--config"
"${sway-config}" "${sway-config}"
# "--unsupported-gpu" "--unsupported-gpu"
]; ];
}; };

Binary file not shown.

Before

Width:  |  Height:  |  Size: 638 KiB

View File

@ -1,9 +1,4 @@
{ { config, lib, pkgs, ... }:
config,
lib,
pkgs,
...
}:
{ {
imports = []; imports = [];