This commit is contained in:
iofq 2023-12-24 00:33:04 -06:00
parent fe3dde6667
commit d37834a164
30 changed files with 245 additions and 179 deletions

12
flake.lock generated
View file

@ -25,11 +25,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1701433070, "lastModified": 1701609479,
"narHash": "sha256-Gf9JStfENaUQ7YWFz3V7x/srIwr4nlnVteqaAxtwpgM=", "narHash": "sha256-mcEnMz7XB3K57ZX16VXoEkswljSNGXdMuUu5+g8a8R8=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "4a8545f5e737a6338814a4676dc8e18c7f43fc57", "rev": "e504e8d01f950776c3a3160ba38c5957a1b89e66",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -40,11 +40,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1701250978, "lastModified": 1701598471,
"narHash": "sha256-ohu3cz4edjpGxs2qUTgbs0WrnewOX4crnUJNEB6Jox4=", "narHash": "sha256-kHdJ2qc4qKeMTzUIHEcP41ah/dBIhCgvWgrjllt2G78=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "8772491ed75f150f02552c60694e1beff9f46013", "rev": "a89745edd5f657e2e5be5ed1bea86725ca78d92e",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -19,11 +19,33 @@
}; };
outputs = { self, nixpkgs, home-manager, nixos-hardware, nvim, ... } @inputs: outputs = { self, nixpkgs, home-manager, nixos-hardware, nvim, ... } @inputs:
let let
attrs = {
username = "e"; username = "e";
};
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
overlays = [
(final: prev: {
inherit (inputs.nvim.packages.${final.system}) full;
inherit (inputs.tfa.packages.${final.system}) twofa;
})
];
};
in { in {
nixosConfigurations = ( import ./nixos { inherit inputs; } ); nixosConfigurations = (
homeConfigurations = ( import ./nixos { inherit inputs pkgs attrs; }
import ./home { inherit inputs; }
); );
homeConfigurations = (
import ./home-manager { inherit inputs pkgs attrs; }
);
devShells.${system}.default = pkgs.mkShell {
buildInputs = [
pkgs.nix
pkgs.home-manager
pkgs.git
];
};
}; };
} }

31
home-manager/default.nix Normal file
View file

@ -0,0 +1,31 @@
{ inputs, pkgs, attrs, ...}:
{
"e" = inputs.home-manager.lib.homeManagerConfiguration {
inherit pkgs;
extraSpecialArgs = {
inherit inputs attrs;
host = {
hostName = "t14";
username = attrs.username;
};
};
modules = [
./t14/home.nix
./home.nix
];
};
"minimal" = inputs.home-manager.lib.homeManagerConfiguration {
inherit pkgs;
extraSpecialArgs = {
inherit inputs attrs;
host = {
hostName = "e";
username = attrs.username;
};
};
modules = [
./home.nix
];
};
}

12
home-manager/home.nix Executable file
View file

@ -0,0 +1,12 @@
{ inputs, pkgs, ... }:
{
programs.home-manager.enable = true;
nix = {
registry.nixpkgs.flake = inputs.nixpkgs;
};
home = {
stateVersion = "22.11";
};
imports = [ ./shared/programs/min.nix ];
xdg.enable = true;
}

View file

@ -0,0 +1,10 @@
{ home-manager, config, lib, pkgs, ... }:
{
imports = [
./dev
./nvim
./shell
./2fa
./warrior
];
}

View file

@ -0,0 +1,6 @@
{ home-manager, config, lib, pkgs, ... }:
{
imports = [
./shell
];
}

View file

@ -1,15 +1,14 @@
{ pkgs, host, ...}: { pkgs, host, ...}:
{ {
imports = [ imports = [
(import ./tmux.nix) ./tmux.nix
./git.nix
]; ];
programs.bash = { programs.bash = {
enable = true; enable = true;
enableCompletion = true; enableCompletion = true;
historyControl = [ "ignorespace" ]; historyControl = [ "ignorespace" ];
historyIgnore = [ historyIgnore = [
"ls"
"cd"
":q" ":q"
"exit" "exit"
]; ];
@ -22,6 +21,8 @@
hms = "home-manager switch --flake $NIX_FLAKE#${host.username}"; hms = "home-manager switch --flake $NIX_FLAKE#${host.username}";
rbs = "sudo nixos-rebuild switch --flake $NIX_FLAKE#${host.hostName}"; rbs = "sudo nixos-rebuild switch --flake $NIX_FLAKE#${host.hostName}";
nvim-dev = "nix run ~/dev/nvim.nix"; nvim-dev = "nix run ~/dev/nvim.nix";
g = "git";
k = "kubectl";
}; };
shellOptions = [ shellOptions = [
"cmdhist" "cmdhist"
@ -67,6 +68,7 @@
}; };
programs.fzf = { programs.fzf = {
enable = true; enable = true;
historyWidgetOptions = ["--height 60% --preview ''"];
fileWidgetCommand = "command find -L . -mindepth 1 -o -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' -o -fstype 'proc' -prune"; fileWidgetCommand = "command find -L . -mindepth 1 -o -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' -o -fstype 'proc' -prune";
}; };
} }

View file

@ -0,0 +1,26 @@
{ ... }:
{
programs.git= {
enable = true;
userEmail = "cjriddz@protonmail.com";
userName = "iofq";
delta = {
enable = true;
options = {
side-by-side = true;
line-numbers = true;
};
};
extraConfig = {
core.editor = "nvim";
};
aliases = {
a = "add . -p";
s = "status";
f = "fetch";
d = "diff";
cm = "commit -m";
rb = "rebase -i";
};
};
}

View file

@ -0,0 +1,9 @@
{pkgs, ... }:
{
home.packages = with pkgs; [
pulseaudio
pulsemixer
alsa-utils
mpv
];
}

View file

@ -0,0 +1,10 @@
{ home-manager, config, lib, pkgs, ... }:
{
imports = [
./librewolf
./alacritty
(import ./sway)
./xdg
./audio
];
}

View file

@ -1,4 +1,4 @@
{ home-manager, username, config, lib, pkgs, ... }: { home-manager, config, lib, pkgs, ... }:
{ {
home.packages = with pkgs; [ home.packages = with pkgs; [
wl-clipboard wl-clipboard
@ -61,6 +61,8 @@
keybindings = let keybindings = let
modifier = config.wayland.windowManager.sway.config.modifier; modifier = config.wayland.windowManager.sway.config.modifier;
in lib.mkOptionDefault { in lib.mkOptionDefault {
Prior = "nop";
Next = "nop";
"${modifier}+x" = "kill"; "${modifier}+x" = "kill";
"${modifier}+space" = "exec ${pkgs.dmenu}/bin/dmenu_path | ${pkgs.dmenu}/bin/dmenu | ${pkgs.findutils}/bin/xargs swaymsg exec --"; "${modifier}+space" = "exec ${pkgs.dmenu}/bin/dmenu_path | ${pkgs.dmenu}/bin/dmenu | ${pkgs.findutils}/bin/xargs swaymsg exec --";
"${modifier}+bracketleft" = "exec --no-startup-id grimshot --notify save area /tmp/scrot-$(date \"+%Y-%m-%d\"T\"%H:%M:%S\").png"; "${modifier}+bracketleft" = "exec --no-startup-id grimshot --notify save area /tmp/scrot-$(date \"+%Y-%m-%d\"T\"%H:%M:%S\").png";

View file

@ -0,0 +1,42 @@
{pkgs, ... }:
{
home.packages = with pkgs; [
xdg-utils
];
xdg.configFile."mimeapps.list".force = true;
xdg.mimeApps = {
enable = true;
defaultApplications = {
"x-scheme-handler/http" = "librewolf.desktop";
"x-scheme-handler/https" = "librewolf.desktop";
"x-scheme-handler/chrome" = "librewolf.desktop";
"video/mp4" = "librewolf.desktop";
"video/mkv" = "librewolf.desktop";
"image/jpeg" = "librewolf.desktop";
"image/jpg" = "librewolf.desktop";
"image/png" = "librewolf.desktop";
"application/epub" = "librewolf.desktop";
"application/pdf" = "librewolf.desktop";
"application/x-extension-htm" = "librewolf.desktop";
"application/x-extension-html" = "librewolf.desktop";
"application/x-extension-shtml" = "librewolf.desktop";
"application/xhtml+xml" = "librewolf.desktop";
"application/x-extension-xhtml" = "librewolf.desktop";
"application/x-extension-xht" = "librewolf.desktop";
"x-scheme-handler/about" = "librewolf.desktop";
"x-scheme-handler/unknown" = "librewolf.desktop";
};
associations.added = {
"x-scheme-handler/http" = "librewolf.desktop";
"x-scheme-handler/https" = "librewolf.desktop";
"x-scheme-handler/chrome" = "librewolf.desktop";
"text/html" = "librewolf.desktop;";
"application/x-extension-htm" = "librewolf.desktop;";
"application/x-extension-html" = "librewolf.desktop;";
"application/x-extension-shtml" = "librewolf.desktop;";
"application/xhtml+xml" = "librewolf.desktop;";
"application/x-extension-xhtml" = "librewolf.desktop;";
"application/x-extension-xht" = "librewolf.desktop;";
};
};
}

35
home-manager/t14/home.nix Executable file
View file

@ -0,0 +1,35 @@
{ pkgs, attrs, ... }:
{
imports = [
../shared/programs/default.nix
../shared/wayland/default.nix
];
home = {
username = attrs.username;
homeDirectory = "/home/" + attrs.username;
packages = with pkgs; [
# gaming
prismlauncher
runelite
jdk17
# comms
signal-desktop
discord
# apps
framesh
chromium
# font
spleen
# sysutils
appimage-run
wireguard-tools
];
};
fonts.fontconfig.enable = true;
systemd.user.startServices = "sd-switch";
}

View file

@ -1,32 +0,0 @@
{ inputs, pkgs, ... }:
{
programs.home-manager.enable = true;
nixpkgs.config.allowUnfree = true;
nix = {
settings = {
auto-optimise-store = true;
};
package = pkgs.nixFlakes;
registry.nixpkgs.flake = inputs.nixpkgs;
extraOptions = ''
experimental-features = nix-command flakes
'';
};
home = {
stateVersion = "22.11";
packages = with pkgs; [
pulseaudio
pulsemixer
alsa-utils
appimage-run
wireguard-tools
spleen
mpv
];
};
imports = ( import ../modules/programs );
xdg.enable = true;
xdg.configFile."mimeapps.list".force = true;
fonts.fontconfig.enable = true;
systemd.user.startServices = "sd-switch";
}

View file

@ -1,27 +0,0 @@
{ inputs, ...}:
{
"e" = inputs.home-manager.lib.homeManagerConfiguration {
pkgs = import inputs.nixpkgs {
system = "x86_64-linux";
config.allowUnfree = true;
overlays = [
(final: prev: {
inherit (inputs.nvim.packages.${final.system}) full;
inherit (inputs.tfa.packages.${final.system}) twofa;
})
];
};
extraSpecialArgs = {
inherit inputs;
host = {
hostName = "t14";
username = "e";
};
};
modules = [
./t14/home.nix
./common.nix
];
};
}

View file

@ -1,21 +0,0 @@
{ pkgs, ... }:
{
imports = [
../../modules/wayland
../../modules/librewolf
];
home = {
username = "e";
homeDirectory = "/home/e";
packages = with pkgs; [
discord
signal-desktop
runelite
framesh
ledger-live-desktop
prismlauncher
chromium
jdk17
];
};
}

View file

@ -1,11 +0,0 @@
[
./dev.nix
./alacritty
./nvim
./shell
./git
./2fa
./direnv
./xdg
./warrior
]

View file

@ -1,8 +0,0 @@
{ ... }:
{
programs.git= {
enable = true;
userEmail = "cjriddz@protonmail.com";
userName = "iofq";
};
}

View file

@ -1,41 +0,0 @@
{pkgs, ... }:
{
home.packages = with pkgs; [
xdg-utils
];
xdg.mimeApps = {
enable = true;
defaultApplications = {
"x-scheme-handler/http" = "io.gitlab.librewolf-community.desktop";
"x-scheme-handler/https" = "io.gitlab.librewolf-community.desktop";
"x-scheme-handler/chrome" = "io.gitlab.librewolf-community.desktop";
"video/mp4" = "io.gitlab.librewolf-community.desktop";
"video/mkv" = "io.gitlab.librewolf-community.desktop";
"image/jpeg" = "io.gitlab.librewolf-community.desktop";
"image/jpg" = "io.gitlab.librewolf-community.desktop";
"image/png" = "io.gitlab.librewolf-community.desktop";
"application/epub" = "io.gitlab.librewolf-community.desktop";
"application/pdf" = "io.gitlab.librewolf-community.desktop";
"application/x-extension-htm" = "io.gitlab.librewolf-community.desktop";
"application/x-extension-html" = "io.gitlab.librewolf-community.desktop";
"application/x-extension-shtml" = "io.gitlab.librewolf-community.desktop";
"application/xhtml+xml" = "io.gitlab.librewolf-community.desktop";
"application/x-extension-xhtml" = "io.gitlab.librewolf-community.desktop";
"application/x-extension-xht" = "io.gitlab.librewolf-community.desktop";
"x-scheme-handler/about" = "io.gitlab.librewolf-community.desktop";
"x-scheme-handler/unknown" = "io.gitlab.librewolf-community.desktop";
};
associations.added = {
"x-scheme-handler/http" = "io.gitlab.librewolf-community.desktop";
"x-scheme-handler/https" = "io.gitlab.librewolf-community.desktop";
"x-scheme-handler/chrome" = "io.gitlab.librewolf-community.desktop";
"text/html" = "io.gitlab.librewolf-community.desktop;";
"application/x-extension-htm" = "io.gitlab.librewolf-community.desktop;";
"application/x-extension-html" = "io.gitlab.librewolf-community.desktop;";
"application/x-extension-shtml" = "io.gitlab.librewolf-community.desktop;";
"application/xhtml+xml" = "io.gitlab.librewolf-community.desktop;";
"application/x-extension-xhtml" = "io.gitlab.librewolf-community.desktop;";
"application/x-extension-xht" = "io.gitlab.librewolf-community.desktop;";
};
};
}

View file

@ -10,8 +10,9 @@
networking.hostName = host.hostName; networking.hostName = host.hostName;
networking.firewall = { networking.firewall = {
enable = true; enable = true;
allowedTCPPorts = []; allowedTCPPorts = [11111];
allowedUDPPorts = []; allowedUDPPorts = [];
logRefusedConnections = true;
}; };
users.users.${host.username} = { users.users.${host.username} = {
isNormalUser = true; isNormalUser = true;
@ -25,13 +26,15 @@
time.timeZone = "America/Chicago"; time.timeZone = "America/Chicago";
# Enable flakes and unfree packages # Enable flakes and unfree packages
nix.settings.experimental-features = [ "nix-command" "flakes" ]; nix.settings = {
auto-optimise-store = true;
experimental-features = [ "nix-command" "flakes" ];
};
nix.gc = { nix.gc = {
automatic = true; automatic = true;
dates = "00:00"; dates = "00:00";
options = "--delete-older-than 14d"; options = "--delete-older-than 14d";
}; };
nixpkgs.config.allowUnfree = true;
system.stateVersion = "22.11"; system.stateVersion = "22.11";
} }

View file

@ -24,16 +24,27 @@
startAgent = true; startAgent = true;
}; };
services.flatpak.enable = true; services.flatpak.enable = true;
services.dbus.enable = true;
xdg = { xdg = {
portal = { portal = {
enable = true; enable = true;
extraPortals = with pkgs; [ xdgOpenUsePortal = true;
xdg-desktop-portal-wlr wlr.enable = true;
xdg-desktop-portal-gtk config = {
common = {
default = [
"wlr"
]; ];
}; };
}; };
};
};
hardware.opengl.enable = true; hardware.opengl.enable = true;
hardware.opengl.extraPackages = [
pkgs.mesa.drivers
pkgs.libGL
];
hardware.opengl.setLdLibraryPath = true;
boot.kernelPackages = pkgs.linuxPackages_latest; boot.kernelPackages = pkgs.linuxPackages_latest;
system.stateVersion = "22.11"; system.stateVersion = "22.11";

View file

@ -1,15 +0,0 @@
# devshell for bootstrapping nixos and home-manager
# nix develop
{ pkgs }: {
default = pkgs.mkShell {
NIX_CONFIG = "experimental-features = nix-command flakes";
nativeBuildInputs = with pkgs; [
nix
home-manager
git
vim
];
};
}