Find a file
2023-04-28 14:45:15 -05:00
alacritty trying out nushell 2023-04-27 14:33:00 -05:00
awesome updates for awesome 2023-03-23 13:13:21 -05:00
bpytop updates to btop 2023-02-28 09:56:45 -06:00
cachix adding the cachix dir 2023-01-11 06:40:33 -06:00
chemacs Adding chemacs, waybar, and river 2021-02-16 11:17:01 -06:00
dunst updating a lot of hyprland config pieces 2022-12-21 09:13:28 -06:00
espanso tweaking some settings 2022-05-27 09:45:15 -05:00
eww ehhhhhhhhh 2023-04-25 15:00:36 -05:00
firefox/chrome removing userChrome blank page customization 2023-02-14 09:40:20 -06:00
fish adding emacs packages overlay and using sddm 2022-12-13 09:32:49 -06:00
flameshot hello 2022-04-22 14:38:24 -05:00
hypr ehhhhhhhhh 2023-04-25 15:00:36 -05:00
imv fixing firefox css 2022-03-11 07:16:33 -06:00
kanshi a lot of laptop changes 2021-12-06 06:07:34 -06:00
kmonad I got a little crazy here. a lot of laptop poop 2021-09-22 09:58:13 -05:00
leftwm added awesome leftwm and picom 2020-05-25 05:49:53 -05:00
LightlyShaders switching to self built ydotool 2022-12-21 09:14:17 -06:00
lolcate Browser changes 2022-01-03 12:30:23 -06:00
macchina some changes I guess 2022-12-09 09:10:05 -06:00
mako I got a little crazy here. a lot of laptop poop 2021-09-22 09:58:13 -05:00
modules ehhhhhhhhh 2023-04-25 15:00:36 -05:00
mpv ehhhhhhhhh 2023-04-25 15:00:36 -05:00
mpv-syl adding a way to selectively choose between laptop and desktop 2023-01-05 17:11:07 -06:00
networkmanager-dmenu adjusting some scripts and small configs 2022-05-17 09:24:24 -05:00
nyxt a lot of updates to move back to awesome 2023-03-21 09:49:24 -05:00
oguri wayfire edits 2021-09-27 17:14:29 -05:00
pkgs base packages uses ffmpeg_5-full 2023-04-28 14:45:15 -05:00
polybar adding dunst 2021-01-28 10:13:53 -06:00
qutebrowser making some config changes to better setup qt environments 2022-07-05 09:26:54 -05:00
rbw adding nix configs 2022-05-06 11:39:51 -05:00
river I got a little crazy here. a lot of laptop poop 2021-09-22 09:58:13 -05:00
rofi alot of messing with what I like for a desktop 2023-02-05 07:09:48 -06:00
RoundedSBE adding RoundedSBE 2023-01-20 09:43:27 -06:00
scripts updating and making emacslof work better on plasma 2023-04-28 12:08:51 -05:00
surfingkeys updates and a lot of em 2022-04-26 12:40:35 -05:00
sway fixing firefox css 2022-03-11 07:16:33 -06:00
sxiv/exec a lot of random poop 2021-10-11 09:18:45 -05:00
system adding email in my ssl...rookie 2023-04-28 14:37:18 -05:00
systemd/user this is a lot of hoopla 2022-03-24 13:53:59 -05:00
taiwins Adding kanshi, wayfire, taiwins configs 2021-04-19 06:21:23 -05:00
tridactyl updates to flake 2023-04-25 09:22:57 -05:00
user fixing alacritty symlink 2023-04-28 12:13:58 -05:00
waybar configuring hyprland more 2022-12-06 15:18:25 -06:00
wayfire updates and a lot of em 2022-04-26 12:40:35 -05:00
wofi updates to desktop stuff 2023-01-12 09:49:44 -06:00
ydotool updates to desktop stuff 2023-01-12 09:49:44 -06:00
.gitmodules static bling and rubato 2022-05-17 11:12:22 -05:00
.mbsyncrc Organizing packages and getting some files better setup 2022-05-10 15:01:47 -05:00
flake.lock updating and making emacslof work better on plasma 2023-04-28 12:08:51 -05:00
flake.nix using nixos-hardware for syl 2023-04-13 09:20:19 -05:00
greenclip.toml lots 2022-04-11 17:33:12 -05:00
libinput-gestures.conf I got a little crazy here. a lot of laptop poop 2021-09-22 09:58:13 -05:00
picom.conf updates for awesome 2023-03-23 13:13:21 -05:00
qt5ct.patch tweaking some settings 2022-05-27 09:45:15 -05:00
README.org updating readme 2023-03-28 09:35:42 -05:00
xinitrc changes for awesome 2022-11-15 15:18:03 -06:00
Xresources adding a bunch of pointless stuff 2021-08-26 17:59:17 -05:00

Readme

mailto:chris@tfcconnection.org

Welcome

This repository contains all of my dotfiles to the many programs I like to use on Linux. This is primarily built with NixOS. I have organized this with flakes and modules.

NixOS

The flake points to the correct machine which starts in the system directory. Then it uses the appropriate modules that the machine needs.

Syl

Syl is my laptop and has some configuration unique to that. In particular, it's a Framework Laptop. Honestly a great piece of tech. Love it.

Notice how I am including all of my software here. It may be a big file, but having all of it in one place means I can easily grok through it and remove something.

Hardware

Now in the hardware-configuration.nix file, I didn't change much because I wanted to keep it roughly the same in case things do get overwritten, but this is another nice feature of literate programming, should things change in the /etc folder, I'll have this readme as a backup of what it was before the changes.

{ config, lib, pkgs, modulesPath, ... }:

{
  imports =
    [ (modulesPath + "/installer/scan/not-detected.nix")
    ];

  boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ];
  boot.initrd.kernelModules = [ ];
  boot.kernelModules = [ "kvm-intel" "acpi_call" ];
  boot.extraModulePackages = with config.boot.kernelPackages; [ acpi_call ];

  boot.loader.efi.efiSysMountPoint = "/boot/efi";

  zramSwap.enable = true;

  fileSystems."/" =
    { device = "/dev/disk/by-uuid/db28ba7c-a15d-4c81-8373-99f2f171cac5";
      fsType = "btrfs";
      options = [ "subvol=@" ];
    };

  fileSystems."/boot/efi" =
    { device = "/dev/disk/by-uuid/BA76-3723";
      fsType = "vfat";
    };

  swapDevices = [ ];

  # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
  # (the default) this is the recommended approach. When using systemd-networkd it's
  # still possible to use this option, but it's recommended to use it in conjunction
  # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
  networking.useDHCP = lib.mkDefault true;
  # networking.interfaces.wlp170s0.useDHCP = lib.mkDefault true;

  powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
  hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
  # high-resolution display
  hardware.video.hidpi.enable = lib.mkDefault true;
}

Kaladin

Kaladin is my desktop machine. A powerhouse for the most part with a recent i7 and 64gb of memory and an Nvidia 1080. Basically I use this for video editing, animation, and some other things. Here is it's configuration.

hardware

And here is it's hardware config.

{ config, lib, pkgs, modulesPath, ... }:

{
  imports =
    [ (modulesPath + "/installer/scan/not-detected.nix")
    ];

  boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" "sr_mod" ];
  boot.initrd.kernelModules = [ ];
  boot.kernelModules = [ "kvm-intel" ];
  boot.extraModulePackages = [ config.boot.kernelPackages.nvidiaPackages.latest ];

  fileSystems."/" =
    { device = "/dev/disk/by-uuid/9b5a1a62-0de6-4e07-a541-634736980d10";
      fsType = "btrfs";
      options = [ "subvol=@" "noatime" "ssd" "space_cache" "clear_cache" "compress=zstd" ];
    };

  fileSystems."/home" =
    { device = "/dev/disk/by-uuid/9b5a1a62-0de6-4e07-a541-634736980d10";
      fsType = "btrfs";
      options = [ "subvol=@home" "noatime" "ssd" "space_cache" "clear_cache" "compress=zstd" ];
    };

  fileSystems."/nix" =
    { device = "/dev/disk/by-uuid/9b5a1a62-0de6-4e07-a541-634736980d10";
      fsType = "btrfs";
      options = [ "subvol=@nix" "noatime" "ssd" "space_cache" "clear_cache" "compress=zstd" ];
    };

  fileSystems."/var/log" =
    { device = "/dev/disk/by-uuid/9b5a1a62-0de6-4e07-a541-634736980d10";
      fsType = "btrfs";
      options = [ "subvol=@log" "noatime" "ssd" "space_cache" "clear_cache" "compress=zstd" ];
    };

  fileSystems."/run/media/chris/Storage" =
    { device = "/dev/disk/by-uuid/4c7d4273-7b72-4aa8-8e1c-e281543d06cb";
      fsType = "btrfs";
      options = [ "noatime" "space_cache" "clear_cache" "compress=zstd" ];
    };

  fileSystems."/run/media/chris/backup" =
    { device = "/dev/disk/by-uuid/4286b9ef-e8ed-49a0-9eec-91b8ee05b2cb";
      fsType = "btrfs";
      options = [ "noatime" "space_cache" "clear_cache" "compress=zstd" ];
    };

  fileSystems."/boot" =
    { device = "/dev/disk/by-uuid/35A0-C1F1";
      fsType = "vfat";
    };

  swapDevices = [ ];

  # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
  # (the default) this is the recommended approach. When using systemd-networkd it's
  # still possible to use this option, but it's recommended to use it in conjunction
  # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
  networking.useDHCP = lib.mkDefault true;
  # networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true;
  # networking.interfaces.wlp7s0.useDHCP = lib.mkDefault true;

  powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
  hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

Kaladin is still not fullly setup, so I'll be working on that more and more as time goes.

Dalinar

Dalinar is my home server. It's built with an old laptop at the moment, but the way everything is orchestrated is to protect from screw ups.

Containers

Here are Dalinar's containers

First off, I'm not entirely sure how this works, but this is my best guess.

jellyfin = {
  config = { config, pkgs, ... }:
  {
    # ...
  };
};

Hardware Configuration

Dalinar's hardware

# 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, ... }:

{
  imports =
    [ (modulesPath + "/installer/scan/not-detected.nix")
    ];

  boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usb_storage" "sd_mod" "sr_mod" "rtsx_usb_sdmmc" ];
  boot.initrd.kernelModules = [ ];
  boot.kernelModules = [ "kvm-intel" ];
  boot.extraModulePackages = [ ];

  fileSystems."/" =
    { device = "/dev/disk/by-uuid/103a24d5-ffb5-4f7c-ab68-48e0b766b3ac";
      fsType = "btrfs";
      options = [ "subvol=@" "noatime" "nodiratime" "compress=zstd" ];
    };

  fileSystems."/boot" =
    { device = "/dev/disk/by-uuid/55C5-7725";
      fsType = "vfat";
    };

  fileSystems."/storage" =
    { device = "/dev/disk/by-uuid/f1804953-14e5-42db-a974-1e18f16d884c";
      fsType = "btrfs";
      options = [ "noatime" "nodiratime" "compress=zstd" ];
    };

  swapDevices = [ ];

  # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
  # (the default) this is the recommended approach. When using systemd-networkd it's
  # still possible to use this option, but it's recommended to use it in conjunction
  # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
  networking.useDHCP = lib.mkDefault true;
  # networking.interfaces.enp2s0.useDHCP = lib.mkDefault true;
  # networking.interfaces.wlp3s0.useDHCP = lib.mkDefault true;

  hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

Kohlin

Kohlin is another home server. It's built with an old laptop at the moment, but the way everything is orchestrated is to protect from screw ups.

Containers

Hardware Configuration

Kohlin's hardware

# 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, ... }:

{
  imports =
    [ (modulesPath + "/installer/scan/not-detected.nix")
    ];

  boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "sd_mod" "sr_mod" ];
  boot.initrd.kernelModules = [ ];
  boot.kernelModules = [ "kvm-intel" ];
  boot.extraModulePackages = [ ];

  fileSystems."/" =
    { device = "/dev/disk/by-uuid/3dc76272-54d9-445e-846f-591cd407b085";
      fsType = "ext4";
    };

  fileSystems."/boot/efi" =
    { device = "/dev/disk/by-uuid/DDA5-32A1";
      fsType = "vfat";
    };

  swapDevices =
    [ { device = "/dev/disk/by-uuid/b25464c5-2268-4963-80cb-6dc51dcba91b"; }
    ];

  # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
  # (the default) this is the recommended approach. When using systemd-networkd it's
  # still possible to use this option, but it's recommended to use it in conjunction
  # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
  networking.useDHCP = lib.mkDefault true;
  # networking.interfaces.eno1.useDHCP = lib.mkDefault true;
  # networking.interfaces.wlo1.useDHCP = lib.mkDefault true;

  powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
  hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

Home

I also use home-manager for managing dotfiles. This means that everything is contained in this folder and then tangled out to their respective places when rebuilding the system.

Thanks!

EXTRA

Possible efibootmgr command to make efistub work on desktop

efibootmgr --disk /dev/nvme0n1 --part 1 --create --label "Arch Linux" --loader /boot/vmlinuz-linux-zen --unicode 'root=PARTUUID=d920ee9c-3b42-4c83-9c4c-a33406421ed1 rootflags=subvol=@ rw noatime nodiratime compress=zstd:3 ssd space_cache initrd=\initramfs-linux-zen.img' --verbose