build: use flakes for config

This commit is contained in:
matt1432 2023-09-29 23:46:34 -04:00
parent 0fb2341372
commit 045287e682
21 changed files with 84 additions and 110 deletions

View file

@ -3,12 +3,9 @@
what is currently not working: what is currently not working:
- plymouth theme has no login prompt - plymouth theme has no login prompt
- sddm theme flashes white
- autosign in to keyring
what i want to do: what i want to do:
- learn flakes
- add auto-rotate widget in ags control center - add auto-rotate widget in ags control center
- when multiple widgets open, clicking on a background one puts it forward - when multiple widgets open, clicking on a background one puts it forward

View file

@ -4,11 +4,15 @@
boot = { boot = {
kernelPackages = pkgs.linuxPackages_latest; kernelPackages = pkgs.linuxPackages_latest;
consoleLogLevel = 0; consoleLogLevel = 0;
initrd.verbose = false;
initrd.systemd.enable = true; initrd = {
verbose = false;
systemd.enable = true;
};
loader = { loader = {
efi.canTouchEfiVariables = true; efi.canTouchEfiVariables = true;
timeout = 2;
grub = { grub = {
enable = true; enable = true;
device = "nodev"; device = "nodev";
@ -19,15 +23,12 @@
# Because it still draws that image otherwise # Because it still draws that image otherwise
splashImage = null; splashImage = null;
}; };
timeout = 2;
}; };
extraModulePackages = with config.boot.kernelPackages; [ extraModulePackages = with config.boot.kernelPackages; [
v4l2loopback v4l2loopback
]; ];
kernelModules = [ "kvm-amd" ];
kernelParams = [ kernelParams = [
"quiet" "quiet"
"splash" "splash"

View file

@ -1,4 +1,4 @@
{ config, pkgs, ... }: { pkgs, ... }:
{ {
hardware.bluetooth = { hardware.bluetooth = {
@ -19,10 +19,12 @@
fwupd.enable = true; fwupd.enable = true;
# Enable CUPS to print documents. # Enable CUPS to print documents.
printing.enable = true; printing = {
printing.drivers = with pkgs; [ enable = true;
drivers = with pkgs; [
hplip hplip
]; ];
};
pipewire = { pipewire = {
enable = true; enable = true;

View file

@ -1,4 +1,4 @@
{ config, pkgs, ... }: { ... }:
{ {
imports = [ imports = [

View file

@ -1,4 +1,4 @@
{config, pkgs, lib, ...}: { pkgs, hyprland, ... }:
{ {
systemd.user.services.protonmail-bridge = { systemd.user.services.protonmail-bridge = {
@ -30,10 +30,10 @@
}; };
}; };
sessionPackages = [ sessionPackages = [
(builtins.getFlake "github:hyprwm/Hyprland").packages.x86_64-linux.default hyprland.packages.x86_64-linux.default
]; ];
defaultSession = "hyprland"; defaultSession = "hyprland";
autoLogin = { # logs out after a minute autoLogin = {
enable = true; enable = true;
user = "matt"; user = "matt";
}; };

View file

@ -1,4 +1,4 @@
{ config, pkgs, lib, ... }: { pkgs, lib, ... }:
{ {
services.fprintd.enable = true; services.fprintd.enable = true;

View file

@ -1,8 +1,7 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
imports = imports = [
[ # Include the results of the hardware scan.
./hardware-configuration.nix ./hardware-configuration.nix
./overlays/list.nix ./overlays/list.nix
./cfg/main.nix ./cfg/main.nix
@ -29,7 +28,6 @@
nix.settings.experimental-features = [ "nix-command" "flakes" ]; nix.settings.experimental-features = [ "nix-command" "flakes" ];
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
environment.sessionVariables = { environment.sessionVariables = {
NIXPKGS_ALLOW_UNFREE = "1"; NIXPKGS_ALLOW_UNFREE = "1";
GTK_THEME = "Dracula"; GTK_THEME = "Dracula";
@ -37,8 +35,6 @@
QT_FONT_DPI = "125"; QT_FONT_DPI = "125";
}; };
system.autoUpgrade.channel = "https://nixos.org/channels/nixos-unstable";
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions
# on your system were taken. It's perfectly fine and recommended to leave # on your system were taken. It's perfectly fine and recommended to leave
@ -46,5 +42,4 @@
# Before changing this value read the documentation for this option # Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "23.05"; # Did you read the comment? system.stateVersion = "23.05"; # Did you read the comment?
} }

BIN
nixos/flake.lock Normal file

Binary file not shown.

BIN
nixos/flake.nix Normal file

Binary file not shown.

View file

@ -1,27 +1,25 @@
# 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, modulesPath, ... }:
{ {
imports = imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "sd_mod" ]; boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/6ae4d722-dacf-485a-8d29-b276f540dc91"; device = "/dev/disk/by-uuid/6ae4d722-dacf-485a-8d29-b276f540dc91";
fsType = "btrfs"; fsType = "btrfs";
}; };
boot.initrd.luks.devices."root".device = "/dev/disk/by-uuid/ab82b477-2477-453f-b95f-28e5553ad10d"; boot.initrd.luks.devices."root".device = "/dev/disk/by-uuid/ab82b477-2477-453f-b95f-28e5553ad10d";
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/F6E1-006D"; device = "/dev/disk/by-uuid/F6E1-006D";
fsType = "vfat"; fsType = "vfat";
}; };

View file

@ -1,4 +1,4 @@
{ pkgs, ... }: { ... }:
{ {
programs.bash = { # TODO: deal with root dotfiles programs.bash = { # TODO: deal with root dotfiles
@ -29,8 +29,8 @@
"cdspell" "cdspell"
"dirspell" "dirspell"
"dotglob" "dotglob"
] ];
;
shellAliases = { shellAliases = {
sudo = "sudo "; sudo = "sudo ";
frick = "sudo $(fc -ln -1)"; frick = "sudo $(fc -ln -1)";

View file

@ -1,15 +1,5 @@
{ pkgs, config, ... }: let { pkgs, config, hyprland, hyprgrass, ags, ... }: let
configDir = "/home/matt/.nix/config"; configDir = "/home/matt/.nix/config";
flake-compat = builtins.fetchTarball "https://github.com/edolstra/flake-compat/archive/master.tar.gz";
hyprland = (import flake-compat {
src = builtins.fetchTarball "https://github.com/hyprwm/Hyprland/archive/master.tar.gz";
}).defaultNix;
ags = (builtins.getFlake "github:Aylur/ags");
in in
{ {
home.packages = [ home.packages = [
@ -25,15 +15,16 @@ in
programs.ags = { programs.ags = {
enable = true; enable = true;
package = ags.packages.x86_64-linux.default;
configDir = config.lib.file.mkOutOfStoreSymlink "${configDir}/ags"; configDir = config.lib.file.mkOutOfStoreSymlink "${configDir}/ags";
}; };
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
enable = true; enable = true;
package = (builtins.getFlake "github:horriblename/hyprgrass").inputs.hyprland.packages.x86_64-linux.default; package = hyprland.packages.x86_64-linux.default;
plugins = [ plugins = [
"${(builtins.getFlake "github:horriblename/hyprgrass").packages.x86_64-linux.default}/lib/libhyprgrass.so" "${hyprgrass.packages.x86_64-linux.default}/lib/libhyprgrass.so"
]; ];
extraConfig = '' extraConfig = ''

View file

@ -1,13 +1,10 @@
{ config, pkgs, ... }: { home-manager, ... }:
let
home-manager = builtins.fetchTarball "https://github.com/nix-community/home-manager/archive/master.tar.gz";
in
{ {
## Global config to add home-manager module ## Global config to add home-manager module
############################################################################# #############################################################################
imports = imports = [
[ home-manager.nixosModules.default
(import "${home-manager}/nixos")
]; ];
# Define a user account. Don't forget to set a password with 'passwd'. # Define a user account. Don't forget to set a password with 'passwd'.

View file

@ -40,6 +40,12 @@
(with plasma5Packages; [ (with plasma5Packages; [
polkit-kde-agent polkit-kde-agent
qtstyleplugin-kvantum qtstyleplugin-kvantum
ark
kcharselect
kdenlive
okular
# Dolphin & co
dolphin dolphin
dolphin-plugins dolphin-plugins
kdegraphics-thumbnailers kdegraphics-thumbnailers
@ -47,11 +53,7 @@
kio kio
kio-admin # needs to be both here and in system pkgs kio-admin # needs to be both here and in system pkgs
kio-extras kio-extras
ark
kcharselect
kdenlive
kmime kmime
okular
]) ++ ]) ++
(with gnome; [ (with gnome; [
@ -59,8 +61,8 @@
seahorse seahorse
adwaita-icon-theme adwaita-icon-theme
]) ++ ]) ++ [
[
(writeShellScriptBin "Gparted" '' (writeShellScriptBin "Gparted" ''
( (
sleep 1.5 sleep 1.5
@ -79,9 +81,10 @@
# School # School
virt-manager virt-manager
gradle gradle
gradle-completion gradle-completion # not working
jdk19_headless
#camunda-modeler #camunda-modeler
#
protonmail-bridge protonmail-bridge
thunderbird thunderbird
input-emulator input-emulator
@ -102,7 +105,6 @@
qt6.qtwayland qt6.qtwayland
bottles-unwrapped bottles-unwrapped
zscroll zscroll
httrack
lisgd lisgd
zeal zeal
acpi acpi
@ -115,7 +117,6 @@
xdg-utils xdg-utils
pavucontrol # TODO: open on left click pavucontrol # TODO: open on left click
gimp-with-plugins gimp-with-plugins
jdk19_headless
bluez-tools bluez-tools
vlc vlc
discord discord
@ -149,6 +150,5 @@
squeekboard squeekboard
glib glib
appimage-run appimage-run
gparted # doesn't open without sudo
]; ];
} }

View file

@ -1,4 +1,4 @@
{ config, pkgs, ... }: { neovim-nightly-overlay, ... }:
{ {
nixpkgs.overlays = [ nixpkgs.overlays = [
@ -25,8 +25,6 @@
coloryou = final.callPackage ./pkgs/coloryou/default.nix {}; coloryou = final.callPackage ./pkgs/coloryou/default.nix {};
}) })
(import (builtins.fetchTarball { neovim-nightly-overlay.overlay
url = "https://github.com/nix-community/neovim-nightly-overlay/archive/master.tar.gz";
}))
]; ];
} }

View file

@ -1,7 +1,6 @@
{ lib { lib
, stdenv , stdenv
, fetchFromGitHub , fetchFromGitHub
, pkgs
}: }:
stdenv.mkDerivation { stdenv.mkDerivation {

View file

@ -1,5 +1,4 @@
{ lib { stdenv
, stdenv
, meson , meson
, ninja , ninja
, pkg-config , pkg-config

View file

@ -1,8 +1,6 @@
### test package ### test package
{ lib { stdenv
, stdenv
, fetchFromGitHub , fetchFromGitHub
, pkgs
}: }:
stdenv.mkDerivation { stdenv.mkDerivation {

View file

@ -1,5 +1,4 @@
{ lib { stdenv
, stdenv
, meson , meson
, ninja , ninja
, pkg-config , pkg-config