COUSBBHL5XPZC5KWCYFFAE554D4VFFO55QOD726ODWIRZGWOUSUAC TIAN54QWQA6YCIYL6C7YXXELA3SKBSMP2Y3ET2YLRWHHOPDE3Y3AC YQJRTCALFVYVEYENXYIPV2OF4EVHNTNVVHDUXTPNIH6IZIKYGAVAC ERVXVO5I6QWJSKWBC5J2FJJ74RUI3B6UDJ4POEMJVQSHRTIWEVWQC BKU3SBYQV4NMFT4HI3LPNSZ55M4OV2GVWZAQZUAIXXGLL7RPI7GAC 2SJ3WUGXMPNMS35XZ3X3772PTHPWGEJGLOC64ARLEZRYVYWQYS6AC WHTEZBXRS7R3AM44LJZFR2YE6RP4IWE3AB5V3DYGO4YJU7PBTMQAC VXESMJDKIRYTNWV6PVDZUSECSP7ESMK5LZPEE72DFBUU5MH7GWLAC NJ5ENURMCBSNFQPNXXNUBMUXVJEBIGNH2T7EWGB63F3FV723BUWAC WDE4LLYP24YKDAV6PW62DFNWV3WZWQUUPA7CZH6STDZFYU7ARERQC A4YNQVE34SZHRGN2HGBT2M5L7ROU4D5HFHTYUSVZHKTXD2PLM5VQC 4PEXC6EE4FNTPUYT64XDSOD6X5IVDY3Y2QDKYTSHEBOYS4JATQTQC CL7RP3ZICLJT7YUI3O54IB2GZY7QMKK7ZC6GZPDXFYQKOOM64CHQC DCJDPW7CQ5OR75ECIVESHYVC5JSXZ5CKV6E3EWLRFHHKAKE7JGKAC IZ6I7IFHKZLD4EUJHSRGGRMVNKMOBNHCV7HPQUK2CUGP5M7EGEFAC 4A5J4ZQ3HM2ZK6OO7N3RZ2WX3YHNGA3X5WJIB4UQJPQGUG4O3AYQC PS2VFJMZVN77RHZFVUVD2DA3MZNMXYPHT6XRHW2EUTZRGLAXF4YQC QRSG7RJSX5R255Y2HHTLYBXMBR374QS3PV2UJDWK2ZPMG7V66SSAC MWV72ACT6D63U5I4UUNIO4WK7ZN3Q5WYRI72K3DCKCNWZ22QUR5AC O64A6IJJGMWJYUDR6VUFGYFPWWPN222BEMMLFCMLKDEFO5OVRE4QC 5KTOFVFDH2TUKNVY7VIL4GHFK7KPW5WDYMRU6EMI4276SF7CXBGQC WCNLUVUGDQ55KUE5TTZAJHVPQ5EOG5SPNUMDNMAZ7ENAQV7D4XYQC U6GSJX5ZG4O7R3XO4CA7G62TTDE22HRZ2LL7EQKLQSYCHCAA3CQQC EWSZ2QIQQBG2EOVAU2IDFXQXE7D3PNFX3HE5LV2YPXEZONHM4MTQC DBKTB5YP5SZ2XB4DNPHSR33PEBYOMBR4RADZGJ6H7TZQQ42BYM5AC TEJLAHEG6JYVPWBHUHIO6NTSB7HO62RJ6G5J2B6UNPDVG7XK4XIAC 6DZO6E3ALZ477IYSCGVKASDYM54CZEDON55NR2UTUGOCZR3BMTAAC 6FD7JWA6BF2AMGISG2UEKFWDBFQMCV2TJ7LEPXW4T73O3SSJHESAC QYSR4PDNVTQOISVLQMO5M7MYBEG37SV6Y7JGM6QPC3CA2BJAYPYQC X575KR6QP76HLPGLLS6XINQGQEAQD76SNOKPJMTGKGR3JJW6A5EQC 3RG3K64UNBVMFYBBHNYCI7Y6GI7NZAHCCT76GMBBGK7PO4744BLAC N4JCBDSP4AMBP22PL5IWGLQKOYSO2OZF74ARZMFW4ZXINUKLJ2EQC 6QF3TT2JA5DYRPTSEPZMZX352OY45GVZXJJ525EAUZEEOSLUKEDQC TLJB2OPT3NO2ENJ7QEYCXNO45GQ6RMYEJCZGMJ3RJFCSQOMVB4RAC LHVOD3PLNDZJYUS7SOYEGRDRW6AKUDDW35AWDY7Y7RCKV6KEX2IAC BN7PSYS5IMGH4CXNCQZGOWBETO7KY4TKICB4ESZEZVXVGLOPVV7QC WEC7RJUMNJX6A46INFCR5Q3GM5O3BCAYAF4UUISJDYXWIL5II36AC let# TODO why does using `pkgs` here cause an infinite recursion?# this works just seems ugly 🤷🤷🤷inif isLinux thenelse {# TODO yabai & skhd or keep them in nix-darwin?}import ./sway { pkgs = pkgs; config = config; lib = lib; }isLinux = (import <nixpkgs> { }).stdenv.hostPlatform.isLinux;{ pkgs, config, lib, ... }:
{ pkgs, config, ... }:{config.programs.alacritty.enable = true;# register alacritty as sway's terminal if alacritty is installed 😀config.wayland.windowManager.sway.config.terminal = "${config.programs.alacritty.package}/bin/alacritty";}
let# TODO why does using `pkgs` here cause an infinite recursion?# this works just seems ugly 🤷🤷🤷isLinux = (import <nixpkgs> { }).stdenv.hostPlatform.isLinux;inif isLinux thenimport ./alacritty.nix { pkgs = pkgs; config = config; }else { }
{config.programs.alacritty.enable = true;config.wayland.windowManager.sway.config.terminal = "${config.programs.alacritty.package}/bin/alacritty";}
{ pkgs, ... }:letuserName = "chris";in{users.users = {"${userName}" = {isNormalUser = true;extraGroups = ["networkmanager""wheel"];shell = pkgs.zsh;};};}
letprimaryDisk = "/dev/sda2";computerName = "thelio-nixos";in{imports =[<nixos-hardware/system76>];networking.interfaces.enp5s0.useDHCP = true;networking.interfaces.enp7s0f3u4u3u4.useDHCP = true;networking.interfaces.wlp6s0.useDHCP = true;system.stateVersion = "21.05";# system76 doesn't use fwupd / fwupdmgr, they have their own clienvironment.systemPackages = [ pkgs.system76-firmware ];}networking.wireless.interfaces = [ "wlp6s0" ];boot.initrd.luks.devices.root.device = primaryDisk;networking.hostName = computerName;/etc/nixos/hardware-configuration.nix../common.nix../greetd.nix../networking.nix../podman.nix../sound.nix../users.nix../gtk.nix{ config, pkgs, lib, ... }:
nixpkgs.url = "github:NixOS/nixpkgs/nixos-21.11";
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";nixos-hardware.url = "github:nixos/nixos-hardware";emacs-overlay.url = "github:nix-community/emacs-overlay";home-manager = {url = "github:nix-community/home-manager";inputs.nixpkgs.follows = "nixpkgs";};nix-doom-emacs = {url = "github:nix-community/nix-doom-emacs";inputs.nixpkgs.follows = "nixpkgs";};
nixosConfigurations."thelio-nixos" = nixpkgs.lib.nixosSystem {system = "x86_64-linux";modules = [./hardware-configuration.nix../common.nix../greetd.nix../gtk.nix../networking.nix../podman.nix../sound.nix../users.nix
overlays = [ emacs-overlay ];
({ pkgs, ... }: {boot.initrd.luks.devices.root.device = "/dev/sda2";networking.hostName = "thelio-nixos";
nixosConfigurations."thelio-nixos" = nixpkgs.lib.nixosSystem {system = "x86_64-linux";specialArgs = { inherit inputs; };modules = [./hardware-configuration.nixnixos-hardware.nixosModules.system76../common.nix../greetd.nix../gtk.nix../networking.nix../podman.nix../sound.nix../users/chris.nix
networking.wireless.interfaces = [ "wlp6s0" ];networking.interfaces.enp5s0.useDHCP = true;networking.interfaces.enp7s0f3u4u3u4.useDHCP = true;networking.interfaces.wlp6s0.useDHCP = true;
({ pkgs, ... }: {boot.initrd.luks.devices.root.device = "/dev/sda2";networking.hostName = "thelio-nixos";
# system76 doesn't use fwupd / fwupdmgr, they have their own clienvironment.systemPackages = [ pkgs.system76-firmware ];
networking.wireless.interfaces = [ "wlp6s0" ];networking.interfaces.enp5s0.useDHCP = true;networking.interfaces.enp7s0f3u4u3u4.useDHCP = true;networking.interfaces.wlp6s0.useDHCP = true;
];
home-manager.nixosModules.home-manager{home-manager.useGlobalPkgs = true;home-manager.useUserPackages = true;home-manager.users.chris = { pkgs, ... }: {imports = [{ nixpkgs.overlays = self.overlays; }../../home.nixnix-doom-emacs.hmModule];};}];};
"doom-emacs": {"flake": false,"locked": {"lastModified": 1639786417,"narHash": "sha256-UgrbF/cNv2qJxK2jwrAsPdgeVTRrjCyU40xeMbyi1sI=","owner": "hlissner","repo": "doom-emacs","rev": "af7c1d79bd63d78410aafc410d52ee5c1109ec26","type": "github"},"original": {"owner": "hlissner","ref": "develop","repo": "doom-emacs","type": "github"}},"doom-snippets": {"flake": false,"locked": {"lastModified": 1637750904,"narHash": "sha256-zkKmbl9rros3IzMTX01l9eh1Uzg3E+eYgzuj8+VPBwM=","owner": "hlissner","repo": "doom-snippets","rev": "3083b2342f95fa55c1fd3b4a16229c5d867a02b0","type": "github"},"original": {"owner": "hlissner","repo": "doom-snippets","type": "github"}},"emacs-overlay": {"locked": {"lastModified": 1640572408,"narHash": "sha256-bADuO+iCbpFbII3rSB66eg+rVsTbuBUSyMpG6dQoH44=","owner": "nix-community","repo": "emacs-overlay","rev": "1f591ff5ed96777035f5f438bb77224d9a1cdf5d","type": "github"},"original": {"owner": "nix-community","repo": "emacs-overlay","type": "github"}},"emacs-overlay_2": {"flake": false,"locked": {"lastModified": 1640341393,"narHash": "sha256-E3gQLE5PjOhE/vVCI/VHl45LJIW0fMEKC7M3WSz89KE=","owner": "nix-community","repo": "emacs-overlay","rev": "085a34df847458952c13b29d94e12c0333828bbc","type": "github"},"original": {"owner": "nix-community","repo": "emacs-overlay","type": "github"}},"emacs-so-long": {"flake": false,"locked": {"lastModified": 1575031854,"narHash": "sha256-xIa5zO0ZaToDrec1OFjBK6l39AbA4l/CE4LInVu2hi0=","owner": "hlissner","repo": "emacs-so-long","rev": "ed666b0716f60e8988c455804de24b55919e71ca","type": "github"},"original": {"owner": "hlissner","repo": "emacs-so-long","type": "github"}},"evil-markdown": {"flake": false,"locked": {"lastModified": 1626852210,"narHash": "sha256-HBBuZ1VWIn6kwK5CtGIvHM1+9eiNiKPH0GUsyvpUVN8=","owner": "Somelauw","repo": "evil-markdown","rev": "8e6cc68af83914b2fa9fd3a3b8472573dbcef477","type": "github"},"original": {"owner": "Somelauw","repo": "evil-markdown","type": "github"}},"evil-org-mode": {"flake": false,"locked": {"lastModified": 1607203864,"narHash": "sha256-JxwqVYDN6OIJEH15MVI6XOZAPtUWUhJQWHyzcrUvrFg=","owner": "hlissner","repo": "evil-org-mode","rev": "a9706da260c45b98601bcd72b1d2c0a24a017700","type": "github"},"original": {"owner": "hlissner","repo": "evil-org-mode","type": "github"}},"evil-quick-diff": {"flake": false,"locked": {"lastModified": 1575189609,"narHash": "sha256-oGzl1ayW9rIuq0haoiFS7RZsS8NFMdEA7K1BSozgnJU=","owner": "rgrinberg","repo": "evil-quick-diff","rev": "69c883720b30a892c63bc89f49d4f0e8b8028908","type": "github"},"original": {"owner": "rgrinberg","repo": "evil-quick-diff","type": "github"}},"explain-pause-mode": {"flake": false,"locked": {"lastModified": 1595842060,"narHash": "sha256-++znrjiDSx+cy4okFBBXUBkRFdtnE2x+trkmqjB3Njs=","owner": "lastquestion","repo": "explain-pause-mode","rev": "2356c8c3639cbeeb9751744dbe737267849b4b51","type": "github"},"original": {"owner": "lastquestion","repo": "explain-pause-mode","type": "github"}},"flake-utils": {"locked": {"lastModified": 1638122382,"narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=","owner": "numtide","repo": "flake-utils","rev": "74f7e4319258e287b0f9cb95426c9853b282730b","type": "github"},"original": {"owner": "numtide","repo": "flake-utils","type": "github"}},"format-all": {"flake": false,"locked": {"lastModified": 1581716637,"narHash": "sha256-ul7LCe60W8TIvUmUtZtZRo8489TK9iTPDsLHmzxY57M=","owner": "lassik","repo": "emacs-format-all-the-code","rev": "47d862d40a088ca089c92cd393c6dca4628f87d3","type": "github"},"original": {"owner": "lassik","repo": "emacs-format-all-the-code","rev": "47d862d40a088ca089c92cd393c6dca4628f87d3","type": "github"}},"home-manager": {"inputs": {"nixpkgs": ["nixpkgs"]},"locked": {"lastModified": 1640417317,"narHash": "sha256-jT2uMARXs0Xm65ccroFsKyr4LTHSecw+9HAnmBdJO8U=","owner": "nix-community","repo": "home-manager","rev": "48f2b381dd397ec88040d3354ac9c036739ba139","type": "github"},"original": {"owner": "nix-community","repo": "home-manager","type": "github"}},"nix-doom-emacs": {"inputs": {"doom-emacs": "doom-emacs","doom-snippets": "doom-snippets","emacs-overlay": "emacs-overlay_2","emacs-so-long": "emacs-so-long","evil-markdown": "evil-markdown","evil-org-mode": "evil-org-mode","evil-quick-diff": "evil-quick-diff","explain-pause-mode": "explain-pause-mode","flake-utils": "flake-utils","format-all": "format-all","nix-straight": "nix-straight","nixpkgs": ["nixpkgs"],"nose": "nose","ob-racket": "ob-racket","org": "org","org-contrib": "org-contrib","org-yt": "org-yt","php-extras": "php-extras","revealjs": "revealjs","rotate-text": "rotate-text"},"locked": {"lastModified": 1640349307,"narHash": "sha256-/L/yUpqVig55T4tvThpuHQEZJTclsyFPHbP4xuCG0eE=","owner": "nix-community","repo": "nix-doom-emacs","rev": "e29eb738085f88022eefb4ef959b48ba90c93d27","type": "github"},"original": {"owner": "nix-community","repo": "nix-doom-emacs","type": "github"}},"nix-straight": {"flake": false,"locked": {"lastModified": 1639180741,"narHash": "sha256-3AaUE9Z/Sc5QxK8WtkPzU+9UqcOUaF9klaz8sV8DUu4=","owner": "nix-community","repo": "nix-straight.el","rev": "866ef703fa96c970624d6d4ad33110a0708fcfef","type": "github"},"original": {"owner": "nix-community","repo": "nix-straight.el","type": "github"}},"nixos-hardware": {"locked": {"lastModified": 1640513880,"narHash": "sha256-dIJYjqGFqCBNh3iasE+6EHG/W96I0YK6ayjfazOVuE8=","owner": "nixos","repo": "nixos-hardware","rev": "2a76e1204f3a605f8d8d2f323671e1a295a5246d","type": "github"},"original": {"owner": "nixos","repo": "nixos-hardware","type": "github"}},
"nose": {"flake": false,"locked": {"lastModified": 1400604510,"narHash": "sha256-daEi8Kta1oGaDEmUUDDQMahTTPOpvNpDKk22rlr7cB0=","owner": "emacsattic","repo": "nose","rev": "f8528297519eba911696c4e68fa88892de9a7b72","type": "github"},"original": {"owner": "emacsattic","repo": "nose","type": "github"}},"ob-racket": {"flake": false,"locked": {"lastModified": 1584656173,"narHash": "sha256-rBUYDDCXb+3D4xTPQo9UocbTPZ32kWV1Uya/1DmZknU=","owner": "xchrishawk","repo": "ob-racket","rev": "83457ec9e1e96a29fd2086ed19432b9d75787673","type": "github"},"original": {"owner": "xchrishawk","repo": "ob-racket","type": "github"}},"org": {"flake": false,"locked": {"lastModified": 1640085226,"narHash": "sha256-brwgjUsaANVNbxujNi4E+fAtps0SIYpZZUlA1s7Ve+g=","owner": "emacs-straight","repo": "org-mode","rev": "be03334a7e5dae4f04b52a1cd1614024d5473ceb","type": "github"},"original": {"owner": "emacs-straight","repo": "org-mode","type": "github"}},"org-contrib": {"flake": false,"locked": {"lastModified": 1639727892,"narHash": "sha256-+T6Y87aSAx7kMpigm8d1ODDQIyPBM6a+4qGolXjCEXs=","ref": "master","rev": "5766ff1088191e4df5fecd55007ba4271e609bcc","revCount": 2611,"type": "git","url": "https://git.sr.ht/~bzg/org-contrib"},"original": {"type": "git","url": "https://git.sr.ht/~bzg/org-contrib"}},"org-yt": {"flake": false,"locked": {"lastModified": 1527381913,"narHash": "sha256-dzQ6B7ryzatHCTLyEnRSbWO0VUiX/FHYnpHTs74aVUs=","owner": "TobiasZawada","repo": "org-yt","rev": "40cc1ac76d741055cbefa13860d9f070a7ade001","type": "github"},"original": {"owner": "TobiasZawada","repo": "org-yt","type": "github"}},"php-extras": {"flake": false,"locked": {"lastModified": 1573312690,"narHash": "sha256-r4WyVbzvT0ra4Z6JywNBOw5RxOEYd6Qe2IpebHXkj1U=","owner": "arnested","repo": "php-extras","rev": "d410c5af663c30c01d461ac476d1cbfbacb49367","type": "github"},"original": {"owner": "arnested","repo": "php-extras","type": "github"}},"revealjs": {"flake": false,"locked": {"lastModified": 1640009311,"narHash": "sha256-RXVvHPKA7vkBzzTRGH2LgL5ywvlcBG1wWRdmwoUtewc=","owner": "hakimel","repo": "reveal.js","rev": "38b32c66199a29cf21f60f920c30a4ead150c654","type": "github"},"original": {"owner": "hakimel","repo": "reveal.js","type": "github"}},
},"rotate-text": {"flake": false,"locked": {"lastModified": 1322962747,"narHash": "sha256-SOeOgSlcEIsKhUiYDJv0p+mLUb420s9E2BmvZQvZ0wk=","owner": "debug-ito","repo": "rotate-text.el","rev": "48f193697db996855aee1ad2bc99b38c6646fe76","type": "github"},"original": {"owner": "debug-ito","repo": "rotate-text.el","type": "github"}
{ config, pkgs, ... }:letuserName = "chris";# on macos this is /Users/<username>homeDirectory = "/home/${userName}";in{###### Tell home-manager the basics###config.home.username = userName;config.home.homeDirectory = homeDirectory;###### Choose which modules to install on this system###imports = [../emacs../firefox../git../guiapps../linux_desktop../neovim../personal_scripts../python../shell../sway../terminal_emulator../tmux];###### Setup the git personal info relevant for this system###config.programs.git = {userName = "Chris Cummings";userEmail = "chris@thesogu.com";};# local machine specific sway config# NOTE swaymsg -t get_outputsconfig.wayland.windowManager.sway.config = {output = {"*" = { bg = "${homeDirectory}/wallpapers/1.jpg fill"; };};startup = [ ];};###### Enable specific email accounts###config.accounts.email.accounts = {# add a new email account by adding a nix module, then adding it to the .gitignore# or ignore privately# see example-email.nix for an example# e.g.:# example = import ../email/example-email.nix;# personal = import ../email/personal.nix};######## extra options to consider##### if on a machine using aws cli you probably want to set this# to the profile you use most oftenconfig.programs.zsh.sessionVariables = {# SOME_VAR = "holy crap it worked?";};# if on pop-os you probably want to add these# make sure all of the distro's default XDG_DATA_DIRS values are in here# most of these should be set in linux_desktop/default.nixconfig.xdg.systemDirs.data = [# "/var/lib/flatpak/exports/share"];}
{ pkgs }:(builtins.fetchTarball {url = "https://github.com/vlaci/nix-doom-emacs/archive/master.tar.gz";}){doomPrivateDir = ./doom.d;extraConfig = ''(setqmu4e-mu-binary "${pkgs.mu}/bin/mu"sendmail-program "${pkgs.msmtp}/bin/msmtp"message-sendmail-f-is-evil tmessage-sendmail-extra-arguments '("--read-envelope-from")message-send-mail-function 'message-send-mail-with-sendmail)'';extraPackages = epkgs: [ pkgs.emacs-all-the-icons-fonts pkgs.mu epkgs.vterm ];}emacsPackages = pkgs.emacsPackagesFor pkg-emacs;dependencyOverrides = {"emacs-overlay" = (builtins.fetchTarball {url = https://github.com/nix-community/emacs-overlay/archive/master.tar.gz;});};emacsPackagesOverlay = self: super: {# https://github.com/vlaci/nix-doom-emacs/issues/394# package was renamed 😎gitignore-mode = pkgs.emacsPackages.git-modes;gitconfig-mode = pkgs.emacsPackages.git-modes;};letisLinux = pkgs.stdenv.hostPlatform.isLinux;# NOTE: won't need to overrideAttrs on emacsMacport once the below PR is released# https://github.com/NixOS/nixpkgs/pull/133260/pkg-emacs = if isLinux then pkgs.emacs elsepkgs.emacsMacport.overrideAttrs (old: {passthru = old.passthru or { };});inpkgs.callPackage
pkgs-linux = with pkgs; if isLinux then [# these are needed to support doom :tool everywhere (emacs-everywhere)xclipxdotoolxorg.xpropxorg.xwininfo] else [ ];
config.home.file.".emacs.d/init.el".text = ''(load "default.el")'';
config.programs.doom-emacs = {enable = true;doomPrivateDir = ./doom.d;extraConfig = ''(setqmu4e-mu-binary "${pkgs.mu}/bin/mu"sendmail-program "${pkgs.msmtp}/bin/msmtp"message-sendmail-f-is-evil tmessage-sendmail-extra-arguments '("--read-envelope-from")message-send-mail-function 'message-send-mail-with-sendmail)'';extraPackages = [ pkgs.emacs-all-the-icons-fonts pkgs.mu ];};
config.services =if isLinux then {emacs.enable = isLinux;emacs.package = doom;lorri.enable = isLinux;} else { };
config.services.emacs.enable = isLinux;config.services.lorri.enable = isLinux;