refactor: yet another redo of the entire config to try and minimize issues

This commit is contained in:
Ruben 2024-04-18 09:40:51 -05:00
commit ee6c740f68
No known key found for this signature in database
GPG key ID: AE181294E97E4802
11 changed files with 138 additions and 171 deletions

20
users/ruben/default.nix Normal file
View file

@ -0,0 +1,20 @@
# default config loads everything else
{ config, pkgs, lib, ... }:
{
home-manager.users.ruben = ./home.nix;
# myself :D
users.users."ruben" = {
isNormalUser = true;
description = "Ruben";
shell = pkgs.zsh;
extraGroups = [ "wheel" "plugdev" "dialout" "libvirtd" ] ++ (lib.optional config.networking.networkmanager.enable "networkmanager");
initialHashedPassword = "changeme";
openssh.authorizedKeys.keys = [ ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO+V3b6oKMTLEBq8AKjdNF5ZwJGXuWTrS2u9QaEypBYP sneexy@disroot.org'' ];
};
programs.zsh.enable = true;
environment.shells = with pkgs; [ zsh ];
}

225
users/ruben/home.nix Normal file
View file

@ -0,0 +1,225 @@
# This is your home-manager configuration file
# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix)
{
inputs,
lib,
config,
pkgs,
...
}: {
# You can import other home-manager modules here
imports = [
# import the flatpaks home-manager nix
flatpaks.homeManagerModules.nix-flatpak
# If you want to use home-manager modules from other flakes (such as nix-colors):
# inputs.nix-colors.homeManagerModule
# You can also split up your configuration and import pieces of it here:
# ./nvim.nix
];
nixpkgs = {
# You can add overlays here
overlays = [
# If you want to use overlays exported from other flakes:
# neovim-nightly-overlay.overlays.default
# Or define it inline, for example:
# (final: prev: {
# hi = final.hello.overrideAttrs (oldAttrs: {
# patches = [ ./change-hello-to-hi.patch ];
# });
# })
];
# Configure your nixpkgs instance
config = {
# Disable if you don't want unfree packages
allowUnfree = true;
# Workaround for https://github.com/nix-community/home-manager/issues/2942
allowUnfreePredicate = _: true;
};
};
home = {
username = "ruben";
homeDirectory = "/home/ruben";
};
# Add stuff for your user as you see fit:
programs.neovim.enable = true;
home.packages = with pkgs; [
btop
bat
duf
fastfetch
fd
delta
lsd
ripgrep
sd
starship
zoxide
usbutils
jq
ffmpeg_6-full
imagemagick
yt-dlp
firefox
thunderbird
birdtray
libreoffice
inkscape gimp
kdenlive krita
nicotine-plus
okteta
obsidian
obs-studio
gpu-screen-recorder-gtk
gajim
cinny-desktop
revolt-desktop
vesktop
signal-desktop
cartridges
prismlauncher
retroarch-with-cores
pcsx2
dolphin-emu
dosbox-staging
bottles
protonup-qt
protontricks
mpv
qbittorrent
watchmate
nextcloud-client
ventoy
];
# fuzzy command finder, required by a decent amount of things
programs.fzf = {
enable = true;
enableZshIntegration = true;
catppuccin.enable = true;
};
# my preferred shell customized to my needs
# TODO: theres only oh-my-zsh support out of the box, figure out
# how to customize sheldon and starship
programs.zsh = {
enable = true;
history.size = 50000;
syntaxHighlighting.enable = true;
};
programs.git = {
enable = true;
userName = "Sneexy";
userEmail = "sneexy@disroot.org";
signing.signByDefault = true;
#signing.key = ""; # TODO: fill this out
extraConfig = {
commit.verbose = true;
init.defaultBranch = "main";
};
};
programs.vscode = {
enable = true;
package = pkgs.vscodium;
extensions = with pkgs.vscode-extensions; [
vscodevim.vim
catppuccin.catppuccin-vsc
catppuccin.catppuccin-vsc-icons
arrterian.nix-env-selector
donjayamanne.githistory
];
userSettings = {
"editor.fontFamily" = "\'JetBrainsMono Nerd Font\', \'Terminus (TTF)\', \'Droid Sans Mono\', \'monospace\', monospace";
"editor.fontSize" = 16;
"workbench.colorTheme" = "Catppuccin Mocha";
#"workbench.iconTheme" = "material-icon-theme";
"files.eol" = "\n";
"editor.cursorBlinking" = "phase";
};
};
# this is a got damn NEO VIMME HOUSE !!
home.sessionVariables = {
EDITOR = "nvim";
};
# flatpaks
# TODO: unsure if i should even bother using flatpaks in a configuration/distro like this...
# maybe i can fully embrace flatpaks once i've figured out how to remove default packages
#services.flatpak.remotes = lib.mkOptionDefault [{
# name = "flathub";
# location = "https://dl.flathub.org/repo/#flathub.flatpakrepo";
#}];
#
#services.flatpak.update.auto.enable = true;
#services.flatpak.uninstallUnmanaged = true;
# flatpak user packages
#services.flatpak.packages = [
#{ appId = "com.brave.Browser"; origin = "flathub"; }
#"com.obsproject.Studio"
#"im.riot.Riot"
#];
# music!!
services.mpd = {
enable = true;
extraConfig = ''
''audio_output {
type "pipewire"
name "PipeWire"
}''
'';
};
xdg.userDirs.enable = true;
# catppuccin flavour
catppuccin.flavour = "mocha";
# catppuccin's gtk theme
gtk = {
enable = true;
theme = {
name = "Catppuccin-Mocha-Compact-Green-Dark";
package = pkgs.catppuccin-gtk.override {
accents = [ "green" ];
size = "compact";
#tweaks = [ "rimless" "black" ];
variant = "mocha";
};
};
};
# required for catppuccin's gtk4 theme
xdg.configFile = {
"gtk-4.0/assets".source = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}/gtk-4.0/assets";
"gtk-4.0/gtk.css".source = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}/gtk-4.0/gtk.css";
"gtk-4.0/gtk-dark.css".source = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}/gtk-4.0/gtk-dark.css";
};
# Nicely reload system units when changing configs
systemd.user.startServices = "sd-switch";
# Enable home-manager
programs.home-manager.enable = true;
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
home.stateVersion = "23.05";
}