formated whole config with alejandra

This commit is contained in:
Tomas Rivera
2026-03-08 19:02:23 +01:00
parent 0564b1d418
commit 5be7198efe
52 changed files with 3724 additions and 3623 deletions
+108 -113
View File
@@ -1,52 +1,52 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, pkgs-unstable, libs, inputs, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
inputs.home-manager.nixosModules.default
../../modules/nixos/battery.nix
config,
pkgs,
pkgs-unstable,
libs,
inputs,
...
}: {
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
inputs.home-manager.nixosModules.default
../../modules/nixos/battery.nix
#../../modules/nixos/ly.nix
../../modules/nixos/lyminimal.nix
../../modules/nixos/anki.nix
../../modules/nixos/udevsimple.nix
];
documentation.man.generateCaches = true; # used for the man script
documentation.man.generateCaches = true; # used for the man script
# grub theme
boot.loader.grub = {
# grub theme
boot.loader.grub = {
theme = inputs.nixos-grub-themes.packages.${pkgs.system}.nixos; # if you want to use nixos grub theme
};
};
nix.nixPath = [
"nixpkgs=${inputs.nixpkgs.outPath}"
"home-manager=${inputs.home-manager.outPath}"
]; #manix is unhappy without this
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users = {
tomasr = ./home.nix;
};
extraSpecialArgs = {inherit pkgs-unstable;};
};
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users = {
tomasr = ./home.nix;
};
extraSpecialArgs = { inherit pkgs-unstable; };
};
environment.pathsToLink = [
"/share/applications"
"/share/xdg-desktop-portal"
];
# removes uxterm
services.xserver.excludePackages = [ pkgs.xterm ];
environment.pathsToLink = [
"/share/applications"
"/share/xdg-desktop-portal"
];
# removes uxterm
services.xserver.excludePackages = [pkgs.xterm];
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
@@ -72,30 +72,27 @@ services.xserver.excludePackages = [ pkgs.xterm ];
# zsh dont want to work if it is not initialzed here.
programs.zsh.enable = true;
# Enable the GNOME Desktop Environment.
# services.displayManager.gdm.enable = true;
# services.desktopManager.gnome.enable = true;
# we dont use gnome but some utils yes -> see pckgs
#enable sddm
#services.displayManager.sddm = {
# enable = true;
# wayland.enable = true;
#};
# we use ly as the displayManager. see ../../modules/nixos/ly.nix
# Enable the GNOME Desktop Environment.
# services.displayManager.gdm.enable = true;
# services.desktopManager.gnome.enable = true;
# we dont use gnome but some utils yes -> see pckgs
#enable sddm
#services.displayManager.sddm = {
# enable = true;
# wayland.enable = true;
#};
# we use ly as the displayManager. see ../../modules/nixos/ly.nix
# enable hyprland WM
programs.hyprland = {
# enable hyprland WM
programs.hyprland = {
enable = true;
package = pkgs-unstable.hyprland; # we use the unstable branch to get the latest features
withUWSM = true;
xwayland.enable = true;
};
};
services.upower.enable = true;
services.upower.enable = true;
# Configure keymap in X11
services.xserver.xkb = {
@@ -132,13 +129,12 @@ services.upower.enable = true;
users.users.tomasr = {
isNormalUser = true;
description = "Tomas Rivera";
extraGroups = [ "networkmanager" "wheel" ]; #wheel allow to use sudo
extraGroups = ["networkmanager" "wheel"]; #wheel allow to use sudo
shell = pkgs.zsh;
};
#adds nixos experimental features:
nix.settings.experimental-features = [ "nix-command" "flakes" ];
#adds nixos experimental features:
nix.settings.experimental-features = ["nix-command" "flakes"];
# Garbage collector of generations
nix.gc = {
@@ -153,71 +149,71 @@ services.upower.enable = true;
# Allow unfree packages
nixpkgs.config.allowUnfree = false;
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
# use pkgs-unstable if you want the package from the unstable channel
#we need to install gnome and kde utils individually as we dont use gnome
gnome-calculator
snapshot
gnome-characters
gnome-disk-utility
kdePackages.okular
nautilus
gnome-font-viewer
wget
tree # shows dir in tree
zsh # better bash
brightnessctl # control brightness
pulseaudio # sound server
playerctl # controls media player
blueman # GTK-based Bluetooth Manager
udiskie # removable disk automounter for udisks
networkmanagerapplet # NetworkManager control applet
cliphist # Wayland clipboard manager
wl-clipboard # cli copy/past utilities for Wayland
jp # lightweight and flexible cli JSON parser
notepad-next
libnotify # Library that sends desktop notifications to a notification daemon
hyprkeys # keybind helper
cowsay
cmatrix
swww #wallpaper daemon
socat # Utility for bidirectional data transfer between two independent data channels (used to communicate between hyprland and swww to change wallpapers dinamically)
gcc # GNU C compiler
libreoffice
gruvbox-gtk-theme
hyprpicker
powertop
inetutils # collections of network programs such as telnet
python313Packages.pygments # used for ccat (comment of colorize plugin from oh-my-zsh)
fzf
jq # json parser used in some scripts
bottom # Cross-platform graphical process/system monitor with a customizable interface
cmatrix
tomato-c # pomodoro timer
pavucontrol # PulseAudio Volume Control
hyprshot
hyprcursor
vial # Open-source GUI and QMK fork for configuring your keyboard in real time
mplayer # Movie player that supports many video formats
chromium # used only to flash the firmware on my framework laptop 16 (keyboard.frame.work) as only chromium based browser support webHID.
capitaine-cursors-themed # cursor theme
usbutils # used for lsusb
# used for the framework 16 laptop
framework-tool
framework-tool-tui
# use pkgs-unstable if you want the package from the unstable channel
#we need to install gnome and kde utils individually as we dont use gnome
gnome-calculator
snapshot
gnome-characters
gnome-disk-utility
kdePackages.okular
nautilus
gnome-font-viewer
wget
tree # shows dir in tree
zsh # better bash
brightnessctl # control brightness
pulseaudio # sound server
playerctl # controls media player
blueman # GTK-based Bluetooth Manager
udiskie # removable disk automounter for udisks
networkmanagerapplet # NetworkManager control applet
cliphist # Wayland clipboard manager
wl-clipboard # cli copy/past utilities for Wayland
jp # lightweight and flexible cli JSON parser
notepad-next
libnotify # Library that sends desktop notifications to a notification daemon
hyprkeys # keybind helper
cowsay
cmatrix
swww #wallpaper daemon
socat # Utility for bidirectional data transfer between two independent data channels (used to communicate between hyprland and swww to change wallpapers dinamically)
gcc # GNU C compiler
libreoffice
gruvbox-gtk-theme
hyprpicker
powertop
inetutils # collections of network programs such as telnet
python313Packages.pygments # used for ccat (comment of colorize plugin from oh-my-zsh)
fzf
jq # json parser used in some scripts
bottom # Cross-platform graphical process/system monitor with a customizable interface
cmatrix
tomato-c # pomodoro timer
pavucontrol # PulseAudio Volume Control
hyprshot
hyprcursor
vial # Open-source GUI and QMK fork for configuring your keyboard in real time
mplayer # Movie player that supports many video formats
chromium # used only to flash the firmware on my framework laptop 16 (keyboard.frame.work) as only chromium based browser support webHID.
capitaine-cursors-themed # cursor theme
usbutils # used for lsusb
# used for the framework 16 laptop
framework-tool
framework-tool-tui
#some nix tools
manix
deadnix
];
#some nix tools
manix
deadnix
alejandra
];
# fonts
fonts.packages = with pkgs; [
nerd-fonts._0xproto
];
# fonts
fonts.packages = with pkgs; [
nerd-fonts._0xproto
];
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
@@ -236,7 +232,7 @@ nerd-fonts._0xproto
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
networking.firewall.enable = false;
networking.firewall.enable = false;
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
@@ -245,5 +241,4 @@ nerd-fonts._0xproto
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "25.11"; # Did you read the comment?
}
+23 -19
View File
@@ -1,30 +1,34 @@
# 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")
];
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "thunderbolt" "usb_storage" "usbhid" "sd_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/6aa664c2-8b23-4e20-b6e9-1806bf0f8df2";
fsType = "ext4";
};
fileSystems."/" = {
device = "/dev/disk/by-uuid/6aa664c2-8b23-4e20-b6e9-1806bf0f8df2";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/A59A-7AFA";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/A59A-7AFA";
fsType = "vfat";
options = ["fmask=0077" "dmask=0077"];
};
swapDevices = [ ];
swapDevices = [];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+135 -139
View File
@@ -1,163 +1,159 @@
{ config, pkgs, inputs, ... }:
{
# every import imports a specific module for an app. This module contains the enabling of this app and its settings.
# So if you want to add an home-manager app create a module which enables it and configures it and import it.
imports = [
# app modules
../../modules/home-manager/kitty.nix # terminal # use absolute path with --impure flag or go back to /etc/nixos and use relative
../../modules/home-manager/zoxide.nix # better cd
../../modules/home-manager/zsh.nix # better bash
../../modules/home-manager/git.nix
../../modules/home-manager/ssh.nix
../../modules/home-manager/fastfetch.nix
../../modules/home-manager/hyprland.nix
../../modules/home-manager/wlogout.nix # logout utility
../../modules/home-manager/rofi.nix # launcher and keybindings helper
../../modules/home-manager/swaync.nix # notification daemon
../../modules/home-manager/neovim.nix # dont use nixvim. broken
#../../modules/home-manager/neovim2.nix # ./neovim2.nix uses vim plug instead of the nix repository as with ./neovim.nix see the begining of neovim2 for an explanation
../../modules/home-manager/rclone.nix
../../modules/home-manager/waybar.nix
#../../modules/home-manager/oh-my-posh.nix # zsh customizer
../../modules/home-manager/oh-my-zsh.nix # another zsh customizer
../../modules/home-manager/hypridle.nix
../../modules/home-manager/swaylock.nix
../../modules/home-manager/anki.nix # we use only for some settings. see ../../modules/nixos/anki.nix for activating
../../modules/home-manager/librewolf.nix # privacy browser
../../modules/home-manager/cursor.nix # cursor (the icon not the app)
../../modules/home-manager/ripgrep.nix # better grep
];
config,
pkgs,
inputs,
...
}: {
# every import imports a specific module for an app. This module contains the enabling of this app and its settings.
# So if you want to add an home-manager app create a module which enables it and configures it and import it.
imports = [
# app modules
../../modules/home-manager/kitty.nix # terminal # use absolute path with --impure flag or go back to /etc/nixos and use relative
../../modules/home-manager/zoxide.nix # better cd
../../modules/home-manager/zsh.nix # better bash
../../modules/home-manager/git.nix
../../modules/home-manager/ssh.nix
../../modules/home-manager/fastfetch.nix
../../modules/home-manager/hyprland.nix
../../modules/home-manager/wlogout.nix # logout utility
../../modules/home-manager/rofi.nix # launcher and keybindings helper
../../modules/home-manager/swaync.nix # notification daemon
../../modules/home-manager/neovim.nix # dont use nixvim. broken
#../../modules/home-manager/neovim2.nix # ./neovim2.nix uses vim plug instead of the nix repository as with ./neovim.nix see the begining of neovim2 for an explanation
../../modules/home-manager/rclone.nix
../../modules/home-manager/waybar.nix
#../../modules/home-manager/oh-my-posh.nix # zsh customizer
../../modules/home-manager/oh-my-zsh.nix # another zsh customizer
../../modules/home-manager/hypridle.nix
../../modules/home-manager/swaylock.nix
../../modules/home-manager/anki.nix # we use only for some settings. see ../../modules/nixos/anki.nix for activating
../../modules/home-manager/librewolf.nix # privacy browser
../../modules/home-manager/cursor.nix # cursor (the icon not the app)
../../modules/home-manager/ripgrep.nix # better grep
];
#programs.nixvim = {
# enable = true;
# imports = [ ../../modules/nixvim/neovim.nix ];
# package = pkgs.neovim;
#};
# Home Manager needs a bit of information about you and the paths it should
#programs.nixvim = {
# enable = true;
# imports = [ ../../modules/nixvim/neovim.nix ];
# package = pkgs.neovim;
#};
# Home Manager needs a bit of information about you and the paths it should
# Required for Home Manager
home.username = "tomasr";
home.homeDirectory = "/home/tomasr";
home.stateVersion = "25.11"; # match your Home Manager release
home.stateVersion = "25.11"; # match your Home Manager release
# This value determines the Home Manager release that your configuration is
# compatible with. This helps avoid breakage when a new Home Manager release
# introduces backwards incompatible changes.
#
# You should not change this value, even if you update Home Manager. If you do
# want to update the value, then make sure to first check the Home Manager
# release notes.
# This value determines the Home Manager release that your configuration is
# compatible with. This helps avoid breakage when a new Home Manager release
# introduces backwards incompatible changes.
#
# You should not change this value, even if you update Home Manager. If you do
# want to update the value, then make sure to first check the Home Manager
# release notes.
# The home.packages option allows you to install Nix packages into your
# environment.
home.packages = [
#scritps
(pkgs.callPackage ../../modules/scripts/dontkillsteam.nix {}) # kill app (if it is steam put it in some background
(pkgs.callPackage ../../modules/scripts/batterynotify.nix {})
(pkgs.callPackage ../../modules/scripts/batterywarning.nix {})
(pkgs.callPackage ../../modules/scripts/weather.nix {})
(pkgs.callPackage ../../modules/scripts/cowsay.nix {})
(pkgs.callPackage ../../modules/scripts/wallpaper.nix {})
(pkgs.callPackage ../../modules/scripts/mountkdrive.nix {})
(pkgs.callPackage ../../modules/scripts/weatherwaybar.nix {})
(pkgs.callPackage ../../modules/scripts/colorpicker.nix {})
(pkgs.callPackage ../../modules/scripts/killall.nix {}) # kill all windows except focused window
(pkgs.callPackage ../../modules/scripts/launch.nix {}) # necessary for the apps i launch with hyprland at every start
(pkgs.callPackage ../../modules/scripts/gitnotify.nix {})
(pkgs.callPackage ../../modules/scripts/tomato.nix {})
(pkgs.callPackage ../../modules/scripts/librewolfprofiles.nix {})
(pkgs.callPackage ../../modules/scripts/performance-mode.nix {})
(pkgs.callPackage ../../modules/scripts/btm.nix {})
(pkgs.callPackage ../../modules/scripts/manix.nix {})
(pkgs.callPackage ../../modules/scripts/man.nix {})
#pkgs
pkgs.gruvbox-gtk-theme
# # Adds the 'hello' command to your environment. It prints a friendly
# # "Hello, world!" when run.
# pkgs.hello
# The home.packages option allows you to install Nix packages into your
# environment.
home.packages = [
#scritps
(pkgs.callPackage ../../modules/scripts/dontkillsteam.nix {}) # kill app (if it is steam put it in some background
(pkgs.callPackage ../../modules/scripts/batterynotify.nix {})
(pkgs.callPackage ../../modules/scripts/batterywarning.nix {})
(pkgs.callPackage ../../modules/scripts/weather.nix {})
(pkgs.callPackage ../../modules/scripts/cowsay.nix {})
(pkgs.callPackage ../../modules/scripts/wallpaper.nix {})
(pkgs.callPackage ../../modules/scripts/mountkdrive.nix {})
(pkgs.callPackage ../../modules/scripts/weatherwaybar.nix {})
(pkgs.callPackage ../../modules/scripts/colorpicker.nix {})
(pkgs.callPackage ../../modules/scripts/killall.nix {}) # kill all windows except focused window
(pkgs.callPackage ../../modules/scripts/launch.nix {}) # necessary for the apps i launch with hyprland at every start
(pkgs.callPackage ../../modules/scripts/gitnotify.nix {})
(pkgs.callPackage ../../modules/scripts/tomato.nix {})
(pkgs.callPackage ../../modules/scripts/librewolfprofiles.nix {})
(pkgs.callPackage ../../modules/scripts/performance-mode.nix {})
(pkgs.callPackage ../../modules/scripts/btm.nix {})
(pkgs.callPackage ../../modules/scripts/manix.nix {})
(pkgs.callPackage ../../modules/scripts/man.nix {})
#pkgs
pkgs.gruvbox-gtk-theme
# # Adds the 'hello' command to your environment. It prints a friendly
# # "Hello, world!" when run.
# pkgs.hello
# # It is sometimes useful to fine-tune packages, for example, by applying
# # overrides. You can do that directly here, just don't forget the
# # parentheses. Maybe you want to install Nerd Fonts with a limited number of
# # fonts?
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
# # It is sometimes useful to fine-tune packages, for example, by applying
# # overrides. You can do that directly here, just don't forget the
# # parentheses. Maybe you want to install Nerd Fonts with a limited number of
# # fonts?
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
# # You can also create simple shell scripts directly inside your
# # configuration. For example, this adds a command 'my-hello' to your
# # environment:
# (pkgs.writeShellScriptBin "my-hello" ''
# echo "Hello, ${config.home.username}!"
# '')
];
# # You can also create simple shell scripts directly inside your
# # configuration. For example, this adds a command 'my-hello' to your
# # environment:
# (pkgs.writeShellScriptBin "my-hello" ''
# echo "Hello, ${config.home.username}!"
# '')
];
#maybe migrate both of them in a separate file
# gtk config
gtk.theme = {
enable = true;
Gruvbox-GTK-Theme-BL-MB = {
enable = true;
name = "Gruvbox-GTK-Theme-BL-MB";
package = pkgs.gruvbox-gtk-theme;
};
};
#maybe migrate both of them in a separate file
# gtk config
gtk.theme = {
enable = true;
Gruvbox-GTK-Theme-BL-MB = {
enable = true;
name = "Gruvbox-GTK-Theme-BL-MB";
package = pkgs.gruvbox-gtk-theme;
};
};
# ssh config
# ssh config
programs.ssh.enable = true;
services.ssh-agent.enable = true;
programs.ssh.enable = true;
services.ssh-agent.enable = true;
home.file.".ssh/config".text = ''
Host *
AddKeysToAgent yes
IdentityFile ~/.ssh/id_ed25519
'';
home.file.".ssh/config".text = ''
Host *
AddKeysToAgent yes
IdentityFile ~/.ssh/id_ed25519
'';
# Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'.
home.file = {
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
# # symlink to the Nix store copy.
# ".screenrc".source = dotfiles/screenrc;
# Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'.
home.file = {
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
# # symlink to the Nix store copy.
# ".screenrc".source = dotfiles/screenrc;
# # You can also set the file content immediately.
# ".gradle/gradle.properties".text = ''
# org.gradle.console=verbose
# org.gradle.daemon.idletimeout=3600000
# '';
};
# # You can also set the file content immediately.
# ".gradle/gradle.properties".text = ''
# org.gradle.console=verbose
# org.gradle.daemon.idletimeout=3600000
# '';
};
# Home Manager can also manage your environment variables through
# 'home.sessionVariables'. These will be explicitly sourced when using a
# shell provided by Home Manager. If you don't want to manage your shell
# through Home Manager then you have to manually source 'hm-session-vars.sh'
# located at either
#
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
#
# or
#
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
#
# or
#
# /etc/profiles/per-user/tomasr/etc/profile.d/hm-session-vars.sh
#
home.sessionVariables = {
# Home Manager can also manage your environment variables through
# 'home.sessionVariables'. These will be explicitly sourced when using a
# shell provided by Home Manager. If you don't want to manage your shell
# through Home Manager then you have to manually source 'hm-session-vars.sh'
# located at either
#
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
#
# or
#
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
#
# or
#
# /etc/profiles/per-user/tomasr/etc/profile.d/hm-session-vars.sh
#
home.sessionVariables = {
EDITOR = "neovim";
# Git update function
# Prompts for commit message; defaults if empty
TERMINAL = "kitty";
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}