Merge remote-tracking branch 'gwydion/main'

This commit is contained in:
Jez Cope 2023-07-05 20:42:58 +01:00
commit a13525635d
14 changed files with 216 additions and 199 deletions

View File

@ -44,6 +44,7 @@
"net.core.rmem_max" = 2500000;
"vm.swappiness" = 10;
};
supportedFilesystems = [ "btrfs" "ntfs" ];
};
powerManagement.cpuFreqGovernor = "schedutil";
@ -123,8 +124,10 @@
iputils
ripgrep
usbutils
protonvpn-cli
hdparm
smartmontools
cryptsetup
thin-provisioning-tools
refind
terminus_font
@ -145,6 +148,8 @@
layout = "us";
libinput.enable = true;
displayManager.gdm.enable = true;
displayManager.importedVariables =
[ "XDG_SESSION_TYPE" "XDG_CURRENT_DESKTOP" "XDG_SESSION_DESKTOP" ];
desktopManager.mate.enable = true;
desktopManager.gnome.enable = true;
desktopManager.gnome.flashback.enableMetacity = true;
@ -154,11 +159,12 @@
enable = true;
wrapperFeatures.gtk = true;
};
services.dbus.packages = [ pkgs.dconf ];
programs.dconf.enable = true;
xdg.portal = {
enable = true;
extraPortals = [ pkgs.xdg-desktop-portal-wlr ];
wlr.enable = true;
xdgOpenUsePortal = false;
};
services.printing.enable = true;
@ -192,17 +198,23 @@
plugins = [ pkgs.ccid ]; # Needed for GPG + Yubikey
};
virtualisation.docker = {
enable = true;
autoPrune.enable = true;
virtualisation = {
docker = {
enable = true;
autoPrune.enable = true;
};
libvirtd.enable = true;
waydroid.enable = true;
spiceUSBRedirection.enable = true;
};
virtualisation.libvirtd.enable = true;
virtualisation.spiceUSBRedirection.enable = true;
users.groups.libvirtd.members = [ "jez" ];
services.netdata.enable = true;
services.smartd.enable = true;
# Hardware #################################################################
hardware.logitech.wireless.enable = true;
services.udev.extraRules = ''
# Atmel DFU
### ATmega16U2

View File

@ -5,14 +5,15 @@
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
]
],
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1682673816,
"narHash": "sha256-C5zxg5AbMbX3UD2iiWL6fqvp/csTnk8JeXh6PHf7zOI=",
"lastModified": 1688494665,
"narHash": "sha256-wXIBz6NVB1/d+H/nz+6XOrtn5s2jdFEJWuFP1qoHIjY=",
"owner": "nix-community",
"repo": "emacs-overlay",
"rev": "60fe647be71d6f433f4a8f9f22d7430bf0ef58a4",
"rev": "54567ac566cd6bfa2607fbe155f9e009ce72306a",
"type": "github"
},
"original": {
@ -22,12 +23,15 @@
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"lastModified": 1687709756,
"narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7",
"type": "github"
},
"original": {
@ -43,11 +47,11 @@
]
},
"locked": {
"lastModified": 1682663009,
"narHash": "sha256-i5ZDuY5kUBDwbWFUludL2cm6PBb6oj245qTFXSpOkdo=",
"lastModified": 1688467264,
"narHash": "sha256-AUQP1WtmBb36bRc41p5ieTwq6Y8pgiKurbdrsPeP3fg=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "43ba4489bd3f9f69519f5f7ebdb76d0455eccbbe",
"rev": "b406b8d1bc90f6cd3e120d189b3e929f17ca4aea",
"type": "github"
},
"original": {
@ -56,13 +60,28 @@
"type": "github"
}
},
"nix-std": {
"locked": {
"lastModified": 1685917625,
"narHash": "sha256-2manVKofCZrCToVDnDYNvtYUFBYOM5JhdDoNGVY4fq4=",
"owner": "chessai",
"repo": "nix-std",
"rev": "e20af8822b5739434b875643bfc61fe0195ea2fb",
"type": "github"
},
"original": {
"owner": "chessai",
"repo": "nix-std",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1682526928,
"narHash": "sha256-2cKh4O6t1rQ8Ok+v16URynmb0rV7oZPEbXkU0owNLQs=",
"lastModified": 1688322751,
"narHash": "sha256-eW62dC5f33oKZL7VWlomttbUnOTHrAbte9yNUNW8rbk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d6b863fd9b7bb962e6f9fdf292419a775e772891",
"rev": "0fbe93c5a7cac99f90b60bdf5f149383daaa615f",
"type": "github"
},
"original": {
@ -71,13 +90,29 @@
"type": "indirect"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1688389917,
"narHash": "sha256-RKiK1QeommEsjQ8fLgxt4831x9O6n2gD7wAhVZTrr8M=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "aed4b19d312525ae7ca9bceb4e1efe3357d0e2eb",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nur": {
"locked": {
"lastModified": 1682670842,
"narHash": "sha256-xgPqeYZVMgCTtiBsgdfRizhr9YedyyaHmqtom5K7R1c=",
"lastModified": 1688486175,
"narHash": "sha256-dE/nVngCOB+VGtd2Td1IuT3hofZenkmgJNyTCyLPmhg=",
"owner": "nix-community",
"repo": "NUR",
"rev": "0debdae70a437f91abf9327a055cd0a504738707",
"rev": "9c5af154321678dcd0713885f2cc2630d3817c4b",
"type": "github"
},
"original": {
@ -90,9 +125,25 @@
"inputs": {
"emacs-overlay": "emacs-overlay",
"home-manager": "home-manager",
"nix-std": "nix-std",
"nixpkgs": "nixpkgs",
"nur": "nur"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",

View File

@ -7,18 +7,21 @@
home-manager.url = "github:nix-community/home-manager";
nur.url = "github:nix-community/NUR";
emacs-overlay.url = "github:nix-community/emacs-overlay";
nix-std.url = "github:chessai/nix-std";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
emacs-overlay.inputs.nixpkgs.follows = "nixpkgs";
};
outputs = { self, nixpkgs, home-manager, nur, emacs-overlay, ... }@inputs:
outputs =
{ self, nixpkgs, home-manager, nur, emacs-overlay, nix-std, ... }@inputs:
let
inherit (nixpkgs.lib) genAttrs nixosSystem;
system = "x86_64-linux";
hosts = [ "arianrhod" "gwydion" ];
overlay = import ./overlay.nix;
std = nix-std.lib;
in {
inherit overlay;
@ -41,6 +44,7 @@
useGlobalPkgs = true;
useUserPackages = true;
users.jez = import ./home;
extraSpecialArgs = { inherit std; };
};
}
];

View File

@ -1,4 +1,4 @@
{ config, pkgs, lib, nixosConfig, ... }:
{ config, pkgs, lib, nixosConfig, std, ... }:
with builtins;
let
@ -82,6 +82,7 @@ in {
(hunspellWithDicts (with hunspellDicts; [ en_GB-large en_US ]))
btop
bottom
ranger
bat
toot
@ -168,6 +169,15 @@ in {
recursive = true;
};
"cabal".source = ./dotfiles/cabal;
"tut/config.toml".text = std.serde.toTOML {
general = { editor = "vim"; };
media.image = {
program = pkgs.kitty + /bin/kitty;
args = "+kitten icat --hold";
terminal = true;
};
};
};
};

View File

@ -5,6 +5,9 @@ with lib;
let
cfg = config.programs.wal;
walCmd = pkgs.pywal + /bin/wal;
updateCmd = ''
${walCmd} -i ${cfg.background} --backend ${cfg.backend} -e -s -t
'';
shellSequences = "~/.cache/wal/sequences";
shellActivate = ''
@ -43,9 +46,8 @@ in {
activation = {
# Must be before onFilesChange because that's when other configs are reloaded
updateWalScheme =
lib.hm.dag.entryBetween [ "onFilesChange" ] [ "writeBoundary" ] ''
${walCmd} -i ${cfg.background} --backend ${cfg.backend} -e -s -t
'';
lib.hm.dag.entryBetween [ "onFilesChange" ] [ "writeBoundary" ]
updateCmd;
};
};
@ -55,5 +57,7 @@ in {
wayland.windowManager.sway = mkIf cfg.sway.enable {
config.output."*".bg = "${cfg.background} ${cfg.sway.bgMode}";
};
programs.autorandr.hooks.postswitch = { "update-wallpaper" = updateCmd; };
};
}

View File

@ -29,7 +29,6 @@ with lib;
libreoffice-fresh
inkscape
krita
nyxt
lagrange
tor-browser-bundle-bin
evolution
@ -39,9 +38,10 @@ with lib;
flameshot
gitkraken
keybase-gui
pulsar
openshot-qt
blender
# blender
asunder
gn.cheese
vlc
@ -57,6 +57,7 @@ with lib;
helvum
blueman
blanket
ymuse
schildichat-desktop
signal-desktop
@ -119,6 +120,11 @@ with lib;
fonts.fontconfig.enable = true;
services.udiskie = {
enable = true;
tray = "always";
};
services.mako = {
enable = true;
defaultTimeout = 10000;
@ -173,6 +179,7 @@ with lib;
programs.chromium = {
enable = true;
commandLineArgs = [ "--ozone-platform-hint=auto" ];
extensions = [
{ id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; } # uBlock origin
{ id = "hdokiejnpimakedhajhdlcegeplioahd"; } # LastPass
@ -190,7 +197,6 @@ with lib;
};
programs.qutebrowser.enable = true;
programs.element-desktop.enable = true;
programs.obs-studio = {
enable = true;
@ -201,4 +207,9 @@ with lib;
services.syncthing.enable = true;
services.nextcloud-client.enable = true;
# See https://github.com/NixOS/nixpkgs/issues/206630
systemd.user.services.nextcloud-client = {
Unit = { After = pkgs.lib.mkForce "graphical-session.target"; };
};
}

View File

@ -12,7 +12,7 @@ let
in {
programs.emacs = {
enable = true;
package = pkgs.emacsUnstable;
package = pkgs.emacs-unstable;
};
home.packages = with pkgs;
@ -23,7 +23,7 @@ in {
mypy
pyright
haskell-language-server
rust-analyzer
rustup
texlab
(pkgs.makeDesktopItem {

View File

@ -90,7 +90,7 @@
lsp
(magit +forge) ; a git porcelain for Emacs
biblio
biblio-notes
;;biblio-notes
;;make ; run make tasks from Emacs
;;pass ; password manager for nerds
;; pdf ; pdf enhancements
@ -126,6 +126,7 @@
gemini
tidal
javascript
clojure
:email
(mu4e +org)
@ -134,7 +135,7 @@
:app
;;calendar
;;irc ; how neckbeards socialize
irc ; how neckbeards socialize
(rss +org) ; emacs as an RSS reader
;;twitter ; twitter client https://twitter.com/vnought

View File

@ -1,36 +1,9 @@
{ config, lib, pkgs, nixosConfig, ... }:
let
params = import ../../../secrets/email.nix;
params = import ../../../secrets/email.nix { inherit pkgs; };
realName = nixosConfig.users.users.jez.description;
in {
accounts.email.accounts.main = rec {
#primary = true;
inherit realName;
inherit (params.main) address userName passwordCommand aliases;
imap = {
inherit (params.main) host;
tls.useStartTls = true;
};
smtp = {
inherit (params.main) host;
port = 587;
tls.useStartTls = true;
};
mu.enable = true;
mbsync = {
enable = true;
create = "both";
remove = "both";
expunge = "both";
flatten = ".";
patterns = [ "*" ];
};
msmtp.enable = true;
};
accounts.email.accounts.fm = rec {
primary = true;
inherit realName;

View File

@ -12,11 +12,14 @@ let
rofi = config.programs.rofi.finalPackage + /bin/rofi;
playerctl = pkgs.playerctl + /bin/playerctl;
pamixer = pkgs.pamixer + /bin/pamixer;
autorandr = pkgs.autorandr + /bin/autorandr;
term = "${kitty}";
menu = "${rofi} -show drun";
window-menu = "${rofi} -show window";
change-display = "${autorandr} --change --force";
};
exec = cmd: "exec ${cmd}";
in {
imports = [ ./polybar.nix ];
@ -50,11 +53,13 @@ in {
keybindings = let mod = config.xsession.windowManager.i3.config.modifier;
in lib.mkOptionDefault {
"${mod}+Return" = "exec ${cmds.term}";
"${mod}+d" = "exec ${cmds.menu}";
"${mod}+Shift+d" = "exec ${cmds.window-menu}";
"${mod}+Return" = exec cmds.term;
"${mod}+d" = exec cmds.menu;
"${mod}+Shift+d" = exec cmds.window-menu;
"${mod}+Shift+c" = "kill";
"${mod}+p" = exec cmds.change-display;
"${mod}+${left}" = "focus left";
"${mod}+${down}" = "focus down";
"${mod}+${up}" = "focus up";
@ -70,12 +75,12 @@ in {
"${mod}+Ctrl+Left" = "move workspace to output left";
"${mod}+Ctrl+Right" = "move workspace to output right";
XF86AudioPlay = "exec ${cmds.playerctl} play-pause";
XF86AudioNext = "exec ${cmds.playerctl} next";
XF86AudioPrev = "exec ${cmds.playerctl} prev";
XF86AudioStop = "exec ${cmds.playerctl} stop";
XF86AudioRaiseVolume = "exec ${cmds.pamixer} --increase 5";
XF86AudioLowerVolume = "exec ${cmds.pamixer} --decrease 5";
XF86AudioPlay = exec "${cmds.playerctl} play-pause";
XF86AudioNext = exec "${cmds.playerctl} next";
XF86AudioPrev = exec "${cmds.playerctl} prev";
XF86AudioStop = exec "${cmds.playerctl} stop";
XF86AudioRaiseVolume = exec "${cmds.pamixer} --increase 5";
XF86AudioLowerVolume = exec "${cmds.pamixer} --decrease 5";
};
};
};

View File

@ -1,5 +1,5 @@
{ config, lib, pkgs, ... }:
{
home.packages = with pkgs; [ supercollider ];
home.packages = with pkgs; [ supercollider-with-sc3-plugins ];
}

View File

@ -2,27 +2,31 @@
{
imports = [ ./hardware.nix ./backup.nix ];
profiles = [ "home" "zfs" "amdgpu" ];
profiles = [ "home" "amdgpu" ];
boot.loader = {
efi = {
canTouchEfiVariables = false;
efiSysMountPoint = "/boot/efi";
};
grub = {
enable = true;
efiSupport = true;
efiInstallAsRemovable = false;
device = "nodev";
gfxmodeEfi = "2560x1440";
extraConfig = ''
set timeout=2;
set timeout_style="menu";
'';
boot = {
kernelParams = [ "dm-raid.devices_handle_discard_safely=Y" ];
loader = {
efi = {
canTouchEfiVariables = false;
efiSysMountPoint = "/boot/efi";
};
grub = {
enable = true;
efiSupport = true;
efiInstallAsRemovable = false;
device = "nodev";
gfxmodeEfi = "2560x1440";
extraConfig = ''
set timeout=2;
set timeout_style="menu";
'';
};
};
};
virtualisation.docker.storageDriver = "zfs";
virtualisation.docker.storageDriver = "btrfs";
users.users.jez.uid = 1000;
users.groups.jez.gid = 1000;
@ -43,6 +47,8 @@
avoid-resampling = "yes";
};
services.lvm.boot.thin.enable = true;
services.vsftpd = {
enable = true;
localUsers = true;

View File

@ -1,6 +1,3 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
@ -8,48 +5,20 @@
boot.initrd.availableKernelModules =
[ "ahci" "xhci_pci" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.initrd.kernelModules = [ "dm-snapshot" "dm-raid" "dm-mod" "dm-cache-default" "dm-integrity" ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" = {
device = "trough/ROOT/nixos";
fsType = "zfs";
device = "/dev/gwydion-vg/fastdata";
fsType = "btrfs";
options = [ "subvol=@root/nixos" ];
};
fileSystems."/nix" = {
device = "trough/ROOT/nixos/nix";
fsType = "zfs";
};
fileSystems."/var" = {
device = "trough/ROOT/nixos/var";
fsType = "zfs";
};
fileSystems."/var/lib/docker" = {
device = "trough/DATA/docker";
fsType = "zfs";
};
fileSystems."/home/jez" = {
device = "trough/ROOT/nixos/home/jez";
fsType = "zfs";
};
fileSystems."/home/jez/.config" = {
device = "trough/DATA/home/jez/Config/nixos";
fsType = "zfs";
};
fileSystems."/home/jez/Games" = {
device = "trough/DATA/home/jez/Games";
fsType = "zfs";
};
fileSystems."/home/jez/Scratch" = {
device = "trough/DATA/home/jez/Scratch";
fsType = "zfs";
fileSystems."/home" = {
device = "/dev/gwydion-vg/safedata";
fsType = "btrfs";
options = [ "subvol=@data/home" ];
};
fileSystems."/boot" = {
@ -62,69 +31,14 @@
fsType = "vfat";
};
fileSystems."/home/jez/Documents" = {
device = "tank/home/jez/Documents";
fsType = "zfs";
};
fileSystems."/home/jez/Sync" = {
device = "tank/home/jez/Sync";
fsType = "zfs";
};
fileSystems."/home/jez/Projects" = {
device = "tank/home/jez/Projects";
fsType = "zfs";
};
fileSystems."/home/jez/Music" = {
device = "tank/home/jez/Music";
fsType = "zfs";
};
boot.initrd.luks.devices."secure".preLVM = false;
boot.initrd.luks.devices."secure".device =
"/dev/disk/by-uuid/437f313f-048f-4a9e-9df9-2a946efb05c2";
fileSystems."/home/jez/Private" = {
device = "tank/home/jez/Private";
fsType = "zfs";
};
fileSystems."/home/jez/Downloads" = {
device = "tank/home/jez/Downloads";
fsType = "zfs";
};
fileSystems."/home/jez/10Pending" = {
device = "tank/home/jez/10Pending";
fsType = "zfs";
};
fileSystems."/home/jez/Archive" = {
device = "tank/home/jez/Archive";
fsType = "zfs";
};
fileSystems."/home/jez/Pictures" = {
device = "tank/home/jez/Pictures";
fsType = "zfs";
};
fileSystems."/home/jez/VMs" = {
device = "tank/home/jez/VMs";
fsType = "zfs";
};
fileSystems."/home/jez/Videos" = {
device = "tank/home/jez/Videos";
fsType = "zfs";
};
fileSystems."/home/jez/Web" = {
device = "tank/home/jez/Web";
fsType = "zfs";
};
fileSystems."/home/jez/00Inbox" = {
device = "tank/home/jez/00Inbox";
fsType = "zfs";
device = "/dev/disk/by-uuid/f0da2b16-38e0-46ce-a516-27f48e3f9ea1";
fsType = "btrfs";
options = [ "subvol=@data/home/jez/Private" "compress=zstd" ];
};
fileSystems."/var/lib/music" = {
@ -133,14 +47,40 @@
options = [ "bind" ];
};
fileSystems."/home/jez/Reference" = {
device = "tank/home/jez/Reference";
fsType = "zfs";
fileSystems."/var/lib/docker" = {
device = "/dev/gwydion-vg/fastdata";
fsType = "btrfs";
options = [ "subvol=@data/docker" "compress=zstd" ];
};
fileSystems."/home/jez/VMs/Disks/SSD" = {
device = "trough/DATA/home/jez/VMs/Disks/SSD";
fsType = "zfs";
fileSystems."/home/jez/.cache" = {
device = "/dev/gwydion-vg/fastdata";
fsType = "btrfs";
options = [ "subvol=@data/home/jez/.cache" "compress=zstd" ];
};
fileSystems."/home/jez/.config" = {
device = "/dev/gwydion-vg/fastdata";
fsType = "btrfs";
options = [ "subvol=@data/home/jez/.config" "compress=zstd" ];
};
fileSystems."/home/jez/Games" = {
device = "/dev/gwydion-vg/fastdata";
fsType = "btrfs";
options = [ "subvol=@data/home/jez/Games" ];
};
fileSystems."/home/jez/Scratch" = {
device = "/dev/gwydion-vg/scratch";
fsType = "btrfs";
options = [ "compress=zstd" ];
};
fileSystems."/home/jez/VMs" = {
device = "/dev/gwydion-vg/fastdata";
fsType = "btrfs";
options = [ "subvol=@data/home/jez/VMs" "nodatacow" ];
};
swapDevices = [ ];

Binary file not shown.