- Formatted everything using Alejandra

- Added 'ncli format' as a quick command to format everything
This commit is contained in:
2026-03-11 16:03:16 +01:00
parent 25ecab4a70
commit c6862c78db
36 changed files with 987 additions and 839 deletions

View File

@ -1,22 +1,26 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}: {
boot = {
# silence first boot output
consoleLogLevel = 3;
initrd.verbose = false;
initrd.systemd.enable = true;
kernelParams = [
"quiet"
"splash"
"intremap=on"
"boot.shell_on_fail"
"udev.log_priority=3"
"rd.systemd.show_status=auto"
];
# silence first boot output
consoleLogLevel = 3;
initrd.verbose = false;
initrd.systemd.enable = true;
kernelParams = [
"quiet"
"splash"
"intremap=on"
"boot.shell_on_fail"
"udev.log_priority=3"
"rd.systemd.show_status=auto"
];
# plymouth, showing after LUKS unlock
plymouth.enable = true;
plymouth.font = "${pkgs.hack-font}/share/fonts/truetype/Hack-Regular.ttf";
plymouth.logo = "${pkgs.nixos-icons}/share/icons/hicolor/128x128/apps/nix-snowflake.png";
# plymouth, showing after LUKS unlock
plymouth.enable = true;
plymouth.font = "${pkgs.hack-font}/share/fonts/truetype/Hack-Regular.ttf";
plymouth.logo = "${pkgs.nixos-icons}/share/icons/hicolor/128x128/apps/nix-snowflake.png";
};
}

View File

@ -3,17 +3,25 @@
#nmcli device wifi connect <ssid> password <password>
# or if no password (open wifi)
#nmcli device wifi connect <ssid>
{ inputs, config, pkgs, lib, username, project, host, version, system, ... }:
{
inputs,
config,
pkgs,
lib,
username,
project,
host,
version,
system,
...
}: {
#Assign Swap to the PC
#swapDevices = [{
# device = "/swapfile";
# size = 16 * 1024; # 16GB
#}];
imports =
[
imports = [
inputs.home-manager.nixosModules.home-manager
inputs.grub2-themes.nixosModules.default
inputs.nix-flatpak.nixosModules.nix-flatpak
@ -28,10 +36,10 @@
# Bootloader.
boot = {
kernelParams = [ "quiet" "splash" ];
kernelParams = ["quiet" "splash"];
initrd = {
verbose = false;
kernelModules = [ "amdgpu" ];
kernelModules = ["amdgpu"];
};
loader = {
systemd-boot.enable = false;
@ -40,7 +48,7 @@
grub = {
enable = true;
device = "/dev/nvme0n1"; #Needs to be changed when using a new computer! (Make grub partition - look below!)
device = "/dev/nvme0n1"; #Needs to be changed when using a new computer! (Make grub partition - look below!)
#devices = [ "nodev" ];
efiSupport = true;
useOSProber = true;
@ -48,22 +56,21 @@
};
grub2-theme = {
enable = true;
theme = "whitesur";
footer = true;
enable = true;
theme = "whitesur";
footer = true;
};
timeout = 10;
};
};
#Ensure there is a grub_bios partition: (gparted)
#Create a new parititon. File System: Unformatted - Size: ~5 Mib
#Apply
#Manage flags -> Add bios_grub
networking = {
# Enable networking
networkmanager.enable = true;
@ -90,9 +97,9 @@
useGlobalPkgs = true;
useUserPackages = true;
users.${username} = ./home.nix;
backupFileExtension = "backup"; # Automatically backs up conflicting files during activation
extraSpecialArgs = { inherit inputs username project version system host; };
sharedModules = [ inputs.plasma-manager.homeModules.plasma-manager ];
backupFileExtension = "backup"; # Automatically backs up conflicting files during activation
extraSpecialArgs = {inherit inputs username project version system host;};
sharedModules = [inputs.plasma-manager.homeModules.plasma-manager];
};
# Set your time zone.
@ -112,7 +119,7 @@
LC_TELEPHONE = "de_DE.UTF-8";
LC_TIME = "de_DE.UTF-8";
};
# List services that you want to enable:
services = {
ollama = {
@ -134,8 +141,8 @@
fprintd.enable = true;
fprintd.tod.enable = true;
fprintd.tod.driver = pkgs.libfprint-2-tod1-goodix;
fwupd.enable = true; #Allows BIOS updates
fwupd.enable = true; #Allows BIOS updates
locate = {
enable = true;
@ -146,8 +153,8 @@
enable = true;
useRoutingFeatures = "client";
extraSetFlags = [
"--operator=${username}"
"--accept-routes"
"--operator=${username}"
"--accept-routes"
];
};
@ -165,8 +172,8 @@
"10-bluez-monitor.properties" = {
"bluez5.msbc-support" = false;
"bluez5.hfphsp-support" = false;
"bluez5.hfphsp-backend" = "none"; # Key addition: no backend
"bluez5.roles" = [ "a2dp_sink" ];
"bluez5.hfphsp-backend" = "none"; # Key addition: no backend
"bluez5.roles" = ["a2dp_sink"];
};
"11-bluetooth-policy" = {
"wireplumber.settings" = {
@ -175,16 +182,16 @@
};
};
};
#Enable CUPS to print documents.
printing.enable = true;
# Enable the OpenSSH daemon.
openssh.enable = true;
};
systemd.services.fprintd = {
wantedBy = [ "multi-user.target" ];
wantedBy = ["multi-user.target"];
serviceConfig.Type = "simple";
};
@ -201,11 +208,11 @@
fontconfig = {
enable = true;
defaultFonts = {
monospace = [ "JetBrainsMono Nerd Font" "MesloLGS NF" ];
sansSerif = [ "Inter" "Noto Sans" ];
serif = [ "Noto Serif" ];
monospace = ["JetBrainsMono Nerd Font" "MesloLGS NF"];
sansSerif = ["Inter" "Noto Sans"];
serif = ["Noto Serif"];
};
};
};
@ -267,7 +274,7 @@
users.users.${username} = {
isNormalUser = true;
description = "Cookiez";
extraGroups = [ "networkmanager" "wheel" "docker" ];
extraGroups = ["networkmanager" "wheel" "docker"];
packages = with pkgs; [
#User Packages Here
];
@ -296,7 +303,7 @@
};
sessionVariables = {
NIXOS_OZONE_WL = "1"; #For chromium to work under wayland and with virtual Keyboards (Only really needed for virtual keyboards, but doest hurt ...)
NIXOS_OZONE_WL = "1"; #For chromium to work under wayland and with virtual Keyboards (Only really needed for virtual keyboards, but doest hurt ...)
TERMINAL = "kitty";
};
};
@ -306,20 +313,20 @@
sudo.wheelNeedsPassword = false;
pam.services = {
sddm.fprintAuth = false; #Because of the bug with 30 seconds on sddm login
sddm-autologin.fprintAuth = false; #Same as above
sddm.fprintAuth = false; #Because of the bug with 30 seconds on sddm login
sddm-autologin.fprintAuth = false; #Same as above
login.fprintAuth = false;
sudo.fprintAuth = false; #Disabled because of security risk: https://nvd.nist.gov/vuln/detail/cve-2024-37408
sudo.fprintAuth = false; #Disabled because of security risk: https://nvd.nist.gov/vuln/detail/cve-2024-37408
kscreenlocker.fprintAuth = true;
polkit-1.fprintAuth = false; #Disabled because of security risk: https://nvd.nist.gov/vuln/detail/cve-2024-37408
polkit-1.fprintAuth = false; #Disabled because of security risk: https://nvd.nist.gov/vuln/detail/cve-2024-37408
kde.fprintAuth = false;
hyprlock = {};
};
};
#Allow Nix Commands
nix.settings.experimental-features = [ "nix-command" "flakes" ];
nix.settings.experimental-features = ["nix-command" "flakes"];
# Allow unfree packages
nixpkgs.config.allowUnfree = true;

View File

@ -1,5 +1,4 @@
{ config, ... }:
{
{config, ...}: {
imports = [
./configuration.nix
@ -21,16 +20,16 @@
};
};
# "minimal" = {
# inheritParentConfig = false;
# configuration = {
# imports = [
# ./minimal.nix
# ];
#
# environment.etc."nixos-tags".text = "minimal";
# };
# };
# "minimal" = {
# inheritParentConfig = false;
# configuration = {
# imports = [
# ./minimal.nix
# ];
#
# environment.etc."nixos-tags".text = "minimal";
# };
# };
"niri" = {
inheritParentConfig = false;
@ -43,6 +42,5 @@
environment.etc."nixos-tags".text = "niri";
};
};
};
};
}

View File

@ -1,5 +1,9 @@
{ pkgs, username, project, ...}:
{
pkgs,
username,
project,
...
}: {
xdg = {
desktopEntries.youtube = {
name = "YouTube";
@ -7,16 +11,16 @@
terminal = false;
type = "Application";
icon = "applications-multimedia";
categories = [ "AudioVideo" "Player" "Network" ];
categories = ["AudioVideo" "Player" "Network"];
};
desktopEntries."org.kde.konsole" = {
name = "Konsole";
noDisplay = true;
};
desktopEntries."discord" = {
categories = [ "Network" "InstantMessaging" "Chat" ];
categories = ["Network" "InstantMessaging" "Chat"];
exec = "vesktop %U";
genericName = "Internet Messenger";
icon = "/home/${username}/${project}/other/discord.app.png";
@ -26,7 +30,7 @@
desktopEntries."vesktop" = {
noDisplay = true;
categories = [ "Network" "InstantMessaging" "Chat" ];
categories = ["Network" "InstantMessaging" "Chat"];
exec = "vesktop %U";
genericName = "Internet Messenger";
name = "Vesktop";
@ -39,7 +43,7 @@
comment = "Fast, feature-rich, GPU based terminal";
exec = "kitty";
terminal = false;
categories = [ "System" "TerminalEmulator" ];
categories = ["System" "TerminalEmulator"];
icon = "/home/${username}/${project}/other/kitty.app.png";
};
@ -107,6 +111,5 @@
name = "Discover";
noDisplay = true;
};
};
}

View File

@ -1,11 +1,10 @@
{ username, ... }:
{
{username, ...}: {
programs.firefox = {
enable = true;
profiles = {
"${username}" = {
extensions.force = true;
};
extensions.force = true;
};
};
};

View File

@ -1,17 +1,17 @@
{ config, pkgs, ... }:
let
lock-false = {
Value = false;
Status = "locked";
};
lock-true = {
Value = true;
Status = "locked";
};
in
{
config,
pkgs,
...
}: let
lock-false = {
Value = false;
Status = "locked";
};
lock-true = {
Value = true;
Status = "locked";
};
in {
home-manager.sharedModules = [
./firefox-home.nix
];
@ -19,16 +19,18 @@
programs = {
firefox = {
enable = true;
languagePacks = [ "de" "en-US" ];
languagePacks = ["de" "en-US"];
/* ---- POLICIES ---- */
/*
---- POLICIES ----
*/
# Check about:policies#documentation for options.
policies = {
PasswordManagerEnabled = false;
DisableTelemetry = true;
DisableFirefoxStudies = true;
EnableTrackingProtection = {
Value= true;
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
@ -44,23 +46,23 @@
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
SearchBar = "unified"; # alternative: "separate"
/* ---- EXTENSIONS ---- */
/*
---- EXTENSIONS ----
*/
# Check about:support for extension/add-on ID strings.
# Valid strings for installation_mode are "allowed", "blocked",
# "force_installed" and "normal_installed".
# How to: https://discourse.nixos.org/t/declare-firefox-extensions-and-settings/36265
ExtensionSettings =
with builtins;
let
extension = shortId: uuid: {
name = uuid;
value = {
install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi";
installation_mode = "normal_installed";
};
ExtensionSettings = with builtins; let
extension = shortId: uuid: {
name = uuid;
value = {
install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi";
installation_mode = "normal_installed";
};
in
};
in
listToAttrs [
(extension "ublock-origin" "uBlock0@raymondhill.net")
(extension "bitwarden-password-manager" "{446900e4-71c2-419f-a6a7-df9c091e268b}")
@ -76,11 +78,16 @@
(extension "redditUntranslate" "reddit-url-redirector@kichkoupi.com")
(extension "darkreader" "addon@darkreader.org")
];
/* ---- PREFERENCES ---- */
/*
---- PREFERENCES ----
*/
# Check about:config for options.
Preferences = {
"browser.contentblocking.category" = { Value = "strict"; Status = "locked"; };
Preferences = {
"browser.contentblocking.category" = {
Value = "strict";
Status = "locked";
};
"extensions.pocket.enabled" = lock-false;
"extensions.screenshots.disabled" = lock-true;
"browser.topsites.contile.enabled" = lock-false;

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" "uas" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "thunderbolt" "uas" "usbhid" "sd_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/af8fdb25-74d8-4b33-8413-bdcb66e0d22a";
fsType = "ext4";
};
fileSystems."/" = {
device = "/dev/disk/by-uuid/af8fdb25-74d8-4b33-8413-bdcb66e0d22a";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/58D5-0C06";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/58D5-0C06";
fsType = "vfat";
options = ["fmask=0077" "dmask=0077"];
};
swapDevices = [ ];
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

View File

@ -1,25 +1,37 @@
{ lib, inputs, config, pkgs, username, project, host, version, ... }:
{
lib,
inputs,
config,
pkgs,
username,
project,
host,
version,
...
}: {
# Home Manager needs a bit of information about you and the
# paths it should manage.
home.username = username;
home.homeDirectory = "/home/${username}";
home.packages = [
(import ./ncli.nix { inherit pkgs host project; backupFiles = [
".gtkrc-2.0.backup"
".config/gtk-3.0/gtk.css.backup"
".config/gtk-3.0/settings.ini.backup"
".config/gtk-4.0/gtk.css.backup"
".config/gtk-4.0/settings.ini.backup"
".config/niri/config.kdl"
]; })
(import ./ncli.nix {
inherit pkgs host project;
backupFiles = [
".gtkrc-2.0.backup"
".config/gtk-3.0/gtk.css.backup"
".config/gtk-3.0/settings.ini.backup"
".config/gtk-4.0/gtk.css.backup"
".config/gtk-4.0/settings.ini.backup"
".config/niri/config.kdl"
];
})
];
imports = [
inputs.zen-browser.homeModules.beta
# or inputs.zen-browser.homeModules.twilight
# or inputs.zen-browser.homeModules.twilight-official
#./neovim-home.nix
#./neovim-home.nix
./desktop-entries.nix
];
@ -35,9 +47,8 @@
# Let Home Manager install and manage itself.
programs = {
home-manager = { enable = true; };
home-manager = {enable = true;};
zoxide = {
enable = true;
#enableZshIntegration = true;
@ -56,9 +67,8 @@
};
};
git = {
enable = true;
git = {
enable = true;
settings = {
user = {
name = "Cookiez";
@ -69,9 +79,9 @@
};
};
zen-browser = {
enable = false;
#package = inputs.zen-browser.packages.${pkgs.system}.default;
zen-browser = {
enable = false;
#package = inputs.zen-browser.packages.${pkgs.system}.default;
profiles = {
${username} = {
id = 0;
@ -80,7 +90,6 @@
path = "${username}.default";
isDefault = true;
settings = {
};
};
};
@ -100,18 +109,16 @@
};
OfferToSaveLogins = false;
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
ExtensionSettings =
with builtins;
let
extension = shortId: uuid: {
name = uuid;
value = {
install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi";
installation_mode = "force_installed";
};
ExtensionSettings = with builtins; let
extension = shortId: uuid: {
name = uuid;
value = {
install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi";
installation_mode = "force_installed";
};
in
};
in
listToAttrs [
(extension "ublock-origin" "uBlock0@raymondhill.net")
(extension "bitwarden-password-manager" "{446900e4-71c2-419f-a6a7-df9c091e268b}")
@ -132,11 +139,11 @@
# run `jq .browser_specific_settings.gecko.id manifest.json` or
# `jq .applications.gecko.id manifest.json` to get the UUID
Preferences = {
#"browser.contentblocking.category" = { Value = "strict"; Status = "locked"; };
"browser.urlbar.showSearchSuggestionsFirst" = false;
"browser.sessionstore.resume_session_once" = false;
#"browser.contentblocking.category" = { Value = "strict"; Status = "locked"; };
"browser.urlbar.showSearchSuggestionsFirst" = false;
"browser.sessionstore.resume_session_once" = false;
};
};
};
};
}; #End of programs = {};
}

View File

@ -1,14 +1,17 @@
{ config, inputs, pkgs, ... }:
{
config,
inputs,
pkgs,
...
}: {
imports = [
];
home-manager.sharedModules = [
./home.nix
];
environment.systemPackages = with pkgs;
[
environment.systemPackages = with pkgs; [
hyprlock
];
}

View File

@ -1,10 +1,13 @@
{pkgs, inputs, username, ...}:
{
pkgs,
inputs,
username,
...
}: {
imports = [
];
programs = {
hyprlock.enable = true;
hyprlock.enable = true;
};
}

View File

@ -1,14 +1,17 @@
{ config, inputs, pkgs, ... }:
{
config,
inputs,
pkgs,
...
}: {
imports = [
];
home-manager.sharedModules = [
./home.nix
];
environment.systemPackages = with pkgs;
[
environment.systemPackages = with pkgs; [
hyprpaper
];
}

View File

@ -1,13 +1,17 @@
{pkgs, inputs, username, project, ...}:
{
pkgs,
inputs,
username,
project,
...
}: {
imports = [
];
services = {
hyprpaper = {
enable = false;
settings = {
preload = [
#"/home/${username}/${project}/other/wallpaper1.png"

View File

@ -3,17 +3,21 @@
#nmcli device wifi connect <ssid> password <password>
# or if no password (open wifi)
#nmcli device wifi connect <ssid>
{ config, pkgs, lib, username, version, ... }:
{
imports =
[
./hardware-configuration.nix
./zsh.nix
#./ncli.nix
#./neovim.nix
./packages.nix
];
config,
pkgs,
lib,
username,
version,
...
}: {
imports = [
./hardware-configuration.nix
./zsh.nix
#./ncli.nix
#./neovim.nix
./packages.nix
];
#networking.hostName = "nixos";
# Define your hostname.
@ -38,7 +42,7 @@
LC_TELEPHONE = "de_DE.UTF-8";
LC_TIME = "de_DE.UTF-8";
};
services = {
# Enable the OpenSSH daemon.
openssh.enable = true;
@ -51,7 +55,7 @@
users.users.cookiez = {
isNormalUser = true;
description = "Cookiez";
extraGroups = [ "networkmanager" "wheel" "docker" ];
extraGroups = ["networkmanager" "wheel" "docker"];
packages = with pkgs; [
#User Packages Here
];
@ -60,21 +64,21 @@
virtualisation.docker.enable = true;
#So no user in the group Wheel has to input the password in order to use sudo
security.sudo.wheelNeedsPassword = false;
security.sudo.wheelNeedsPassword = false;
#Allow Nix Commands
nix.settings.experimental-features = [ "nix-command" "flakes" ];
nix.settings.experimental-features = ["nix-command" "flakes"];
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
environment.variables = {
EDITOR = "nvim";
# XKB_DEFAULT_LAYOUT = "de";
EDITOR = "nvim";
# XKB_DEFAULT_LAYOUT = "de";
};
environment.sessionVariables = {
NIXOS_OZONE_WL = "1"; #For chromium to work under wayland and with virtual Keyboards (Only really needed for virtual keyboards, but doest hurt ...)
NIXOS_OZONE_WL = "1"; #For chromium to work under wayland and with virtual Keyboards (Only really needed for virtual keyboards, but doest hurt ...)
TERMINAL = "kitty";
};

View File

@ -1,7 +1,7 @@
{
pkgs,
host,
backupFiles ? [ ".config/mimeapps.list.backup" ],
backupFiles ? [".config/mimeapps.list.backup"],
project,
...
}: let
@ -146,7 +146,7 @@ in
else
echo "No specialization tag found, staying on default system."
fi
genn=$(sudo nix-env --list-generations --profile /nix/var/nix/profiles/system | grep current | awk '{print $1}')
echo -e "Running on new generation: $YELLOW $geno $NOCOLOR-> $GREEN$genn$NOCOLOR"
@ -261,6 +261,9 @@ in
cd "$HOME/$PROJECT" || { echo "Error: Could not change to $HOME/$PROJECT"; exit 1; }
git status
;;
format)
nix fmt .
;;
trim)
echo "Running 'sudo fstrim -v /' may take a few minutes and impact system performance."
read -p "Enter to run now or enter to exit (y/N): " -n 1 -r

View File

@ -1,20 +1,23 @@
{ inputs, config, lib, pkgs, ... }:
{
environment.systemPackages = with pkgs;
[
neovim
vimPlugins.LazyVim
vimPlugins.lazygit-nvim
wl-clipboard
xclip
inputs,
config,
lib,
pkgs,
...
}: {
environment.systemPackages = with pkgs; [
neovim
vimPlugins.LazyVim
vimPlugins.lazygit-nvim
wl-clipboard
xclip
];
home-manager.sharedModules = [
./home.nix
];
# programs.neovim = {
# enable = true;
#};
# programs.neovim = {
# enable = true;
#};
}

View File

@ -1,34 +1,39 @@
{ inputs, config, lib, pkgs, ... }:
{
inputs,
config,
lib,
pkgs,
...
}: {
imports = [
inputs.nixvim.homeModules.nixvim
];
programs.nixvim = {
enable = true;
waylandSupport = true;
# Basic options
opts = {
autoindent = true;
autoindent = true;
clipboard = "unnamedplus";
shiftwidth = 2;
mousescroll = "ver:0,hor:0";
expandtab = true; # Always insert spaces, never hard tab characters
tabstop = 2; # Make hard tabs display as 2 columns (matches shiftwidth)
softtabstop = 2; # Backspace deletes 2 spaces at a time
expandtab = true; # Always insert spaces, never hard tab characters
tabstop = 2; # Make hard tabs display as 2 columns (matches shiftwidth)
softtabstop = 2; # Backspace deletes 2 spaces at a time
number = true;
relativenumber = true;
cursorline = true; # Highlights the entire current line
cursorlineopt = "both"; # Highlights both the line AND the line number
cursorline = true; # Highlights the entire current line
cursorlineopt = "both"; # Highlights both the line AND the line number
termguicolors = true;
};
colorschemes.catppuccin = {
enable = true;
settings = {
@ -36,29 +41,29 @@
term_colors = true;
styles = {
booleans = [ "bold" "italic" ];
conditionals = [ "bold" ];
functions = [ "bold" ];
keywords = [ "italic" ];
booleans = ["bold" "italic"];
conditionals = ["bold"];
functions = ["bold"];
keywords = ["italic"];
};
};
};
keymaps = [
{
mode = "v";
key = ">";
action = ">gv";
options.desc = "Indent and keep selection";
}
{
mode = "v";
key = "<";
action = "<gv";
options.desc = "Unindent and keep selection";
}
];
keymaps = [
{
mode = "v";
key = ">";
action = ">gv";
options.desc = "Indent and keep selection";
}
{
mode = "v";
key = "<";
action = "<gv";
options.desc = "Unindent and keep selection";
}
];
plugins = {
# Statusline at the bottom of the screen
lualine.enable = true;
@ -90,24 +95,24 @@
settings = {
indent = {
char = "";
tab_char = ""; # Explicitly define the tab indent guide character
tab_char = ""; # Explicitly define the tab indent guide character
};
scope = {
enabled = true;
};
whitespace = {
remove_blankline_trail = false;
};
whitespace = {
remove_blankline_trail = false;
};
};
};
# Highlights and searches TODO/FIXME/HACK comments
todo-comments.enable = true;
nvim-autopairs = {
enable = true;
settings = {
check_ts = true; # Use treesitter to avoid pairing inside strings/comments
};
};
nvim-autopairs = {
enable = true;
settings = {
check_ts = true; # Use treesitter to avoid pairing inside strings/comments
};
};
};
extraPlugins = with pkgs.vimPlugins; [
@ -115,8 +120,8 @@
# Additional Lua configuration
extraConfigLua = ''
-- Custom Lua config here
vim.opt.cpoptions:append('I')
'';
-- Custom Lua config here
vim.opt.cpoptions:append('I')
'';
};
}

View File

@ -1,22 +1,27 @@
{config, pkgs, libs, inputs, ...}:
{
config,
pkgs,
libs,
inputs,
...
}: {
environment.systemPackages = with pkgs; [
#CLI tools
pdftk #PDF toolkit
yt-dlp #YouTube and others video downloader
tailscale #VPN
speedtest-cli #Internet speed tester
pdftk #PDF toolkit
yt-dlp #YouTube and others video downloader
tailscale #VPN
speedtest-cli #Internet speed tester
#duplicati
ollama-rocm
open-webui
cloudflare-warp
ddrescue
texliveFull #LaTeX PDF maker
lazygit #Git CLI tool with TUI
gtypist #Typing tutor
powertop #Power consumption monitor and optimizer
file #File type identifier
hashcat #Password recovery/cracking tool
packwiz #A Minecraft modpack editor
texliveFull #LaTeX PDF maker
lazygit #Git CLI tool with TUI
gtypist #Typing tutor
powertop #Power consumption monitor and optimizer
file #File type identifier
hashcat #Password recovery/cracking tool
packwiz #A Minecraft modpack editor
];
}

View File

@ -1,5 +1,4 @@
{ ... }:
{
{...}: {
imports = [
./desktop.nix
./cli.nix

View File

@ -1,57 +1,61 @@
{config, pkgs, libs, inputs, ...}:
{
config,
pkgs,
libs,
inputs,
...
}: {
environment.systemPackages = with pkgs; [
#Programming
jetbrains.pycharm #The PyCharm IDE to edit Python code
jetbrains.idea #The IntelliJ IDE to edit Java code
jetbrains.clion #The CLion IDE to edit and compile c/c++ code
jetbrains.datagrip #The DataGrip IDE to manage Databases
jetbrains.pycharm #The PyCharm IDE to edit Python code
jetbrains.idea #The IntelliJ IDE to edit Java code
jetbrains.clion #The CLion IDE to edit and compile c/c++ code
jetbrains.datagrip #The DataGrip IDE to manage Databases
#jetbrains-toolbox
#racket #The racket Programming language, with DrRacket IDE, for University (*Not* because it's my favourite)
rustup #Rust Programming Toolchain
rustup #Rust Programming Toolchain
#go #Go Programming Language
gcc #C/C++ Compiler
gcc #C/C++ Compiler
pkg-config
vscode #Editor for all kinds of programms
nodejs_22 #NodeJS for JavaScript programming
vscode #Editor for all kinds of programms
nodejs_22 #NodeJS for JavaScript programming
#Hochschule
postgresql #Database system
dbeaver-bin #Database Management Tool
sqlite #Lightweight Database system
postgresql #Database system
dbeaver-bin #Database Management Tool
sqlite #Lightweight Database system
#Desktop Applications
drawio
ryubing #Nintendo Switch Emulator
vlc #VLC Media Player
lutris #Gaming Platform
mission-center #For a Task Manager like GUI
trayscale #Tailscale unofficial GUI
spotify #Spotify Music Client
rpi-imager #Raspberry Pi Imager
atlauncher #Minecraft Launcher
ryubing #Nintendo Switch Emulator
vlc #VLC Media Player
lutris #Gaming Platform
mission-center #For a Task Manager like GUI
trayscale #Tailscale unofficial GUI
spotify #Spotify Music Client
rpi-imager #Raspberry Pi Imager
atlauncher #Minecraft Launcher
#discord
vesktop #Aternative for discord on Wayland
vesktop #Aternative for discord on Wayland
wineWow64Packages.stagingFull
winetricks
wasistlos #Whatsapp
wasistlos #Whatsapp
#obs-studio #Screen Recorder
gparted #Disk partition Manager
gparted #Disk partition Manager
#rustdesk #Remote Desktop Client
realvnc-vnc-viewer #VNC Remote Desktop Client
eddie #AirVPN desktop client
chromium #Chromium browser for Youtube app to work
moonlight-qt #Game Streaming Client
kitty #Kitty Terminal Emulator
wmctrl #To Force windows into fullscreen
kdePackages.dolphin #KDE File Browser
libreoffice-still #Office Suite
realvnc-vnc-viewer #VNC Remote Desktop Client
eddie #AirVPN desktop client
chromium #Chromium browser for Youtube app to work
moonlight-qt #Game Streaming Client
kitty #Kitty Terminal Emulator
wmctrl #To Force windows into fullscreen
kdePackages.dolphin #KDE File Browser
libreoffice-still #Office Suite
kdePackages.kservice
qbittorrent #Torrent Client
waydroid #Android emulator on Linux
gimp2-with-plugins #Image Editor
kdePackages.filelight #Disk Usage Analyzer
qbittorrent #Torrent Client
waydroid #Android emulator on Linux
gimp2-with-plugins #Image Editor
kdePackages.filelight #Disk Usage Analyzer
filezilla
audacity
freecad

View File

@ -1,43 +1,50 @@
{config, pkgs, libs, inputs, system, alejandra, ...}:
{
config,
pkgs,
libs,
inputs,
system,
alejandra,
...
}: {
environment.systemPackages = with pkgs; [
#Essentials (CLI Only)
wget #A tool for quickly downloading things from the Web
javaPackages.compiler.openjdk25 #Java Development Kit 25
python314 #Python
python314Packages.pip #Pip for Python 3.12
python314Packages.cmake #The CMake tool to manage project build configurations
fastfetch #A utility to see information about your machine
btop #A replacement for htop to see your machines resources
git #Git ... no need to explain
efibootmgr #A tool to manage UEFI boot entries
zip #A utility for ZIP archives
unzip #A utility for ZIP archives
rar #A utility for RAR archives
gnutar #A utility for .tar archives
cron #A tool to set up commands to run scheduled
tmux #A tool to let command windows contiune to run in the background
home-manager #A package to also edit the user Configuration, like with nix
konsave #A package to transfer the look and feel of KDE Plasma to other machines
openssh #SSH
zoxide #Alternatice to cd, browse files
zsh #Search for file names
coreutils-full #Full set of coreutils, including some missing ones
wget #A tool for quickly downloading things from the Web
javaPackages.compiler.openjdk25 #Java Development Kit 25
python314 #Python
python314Packages.pip #Pip for Python 3.12
python314Packages.cmake #The CMake tool to manage project build configurations
fastfetch #A utility to see information about your machine
btop #A replacement for htop to see your machines resources
git #Git ... no need to explain
efibootmgr #A tool to manage UEFI boot entries
zip #A utility for ZIP archives
unzip #A utility for ZIP archives
rar #A utility for RAR archives
gnutar #A utility for .tar archives
cron #A tool to set up commands to run scheduled
tmux #A tool to let command windows contiune to run in the background
home-manager #A package to also edit the user Configuration, like with nix
konsave #A package to transfer the look and feel of KDE Plasma to other machines
openssh #SSH
zoxide #Alternatice to cd, browse files
zsh #Search for file names
coreutils-full #Full set of coreutils, including some missing ones
multipath-tools
docker #Docker ... no need to explain
docker-compose #Docker Compose for docker
plymouth #Boot Splash screen
mesa #Graphics drivers
fprintd #Fingerprint reader support
nh
whois #To find out domain information
networkmanagerapplet #For managing network manager connections
zoxide #Alternative to cd, browse files
pocl #Portable OpenCL implementation
clinfo #OpenCL info tool
rocmPackages.rocm-runtime #AMD ROCm runtime
ripgrep #Alternative to grep search for text in files
pipewire #Multimedia handling
docker #Docker ... no need to explain
docker-compose #Docker Compose for docker
plymouth #Boot Splash screen
mesa #Graphics drivers
fprintd #Fingerprint reader support
nh
whois #To find out domain information
networkmanagerapplet #For managing network manager connections
zoxide #Alternative to cd, browse files
pocl #Portable OpenCL implementation
clinfo #OpenCL info tool
rocmPackages.rocm-runtime #AMD ROCm runtime
ripgrep #Alternative to grep search for text in files
pipewire #Multimedia handling
distrobox
dbus
cifs-utils

View File

@ -1,20 +1,26 @@
{config, pkgs, libs, inputs, nix-flatpak, ...}:
{
services.flatpak = {
enable = true;
config,
pkgs,
libs,
inputs,
nix-flatpak,
...
}: {
services.flatpak = {
enable = true;
remotes = [
{
name = "flathub";
location = "https://dl.flathub.org/repo/flathub.flatpakrepo";
}
];
packages = [
{
appId = "org.vinegarhq.Sober";
origin = "flathub";
#commit = "e28fd81675b0871614ccdc8fc66c6da6761dd11333a65900a0451edf07ef0ea6";
}
];
};
remotes = [
{
name = "flathub";
location = "https://dl.flathub.org/repo/flathub.flatpakrepo";
}
];
packages = [
{
appId = "org.vinegarhq.Sober";
origin = "flathub";
#commit = "e28fd81675b0871614ccdc8fc66c6da6761dd11333a65900a0451edf07ef0ea6";
}
];
};
}

View File

@ -1,8 +1,10 @@
{ pkgs, inputs, username, ... }:
{
imports =
[
pkgs,
inputs,
username,
...
}: {
imports = [
inputs.stylix.nixosModules.stylix
];
@ -12,7 +14,7 @@
stylix = {
enable = true;
autoEnable = false; #So I can choose my programs it targets myself!
autoEnable = false; #So I can choose my programs it targets myself!
#image = ../../other/wallpaper2.png;
#autoEnable = true; #Auto generate theme based on wallpaper
base16Scheme = "${pkgs.base16-schemes}/share/themes/dracula.yaml";
@ -39,7 +41,7 @@
targets = {
plymouth.enable = true;
plymouth.logoAnimated = true;
console.enable = true; #Default console without desktop environment! (NOT KITTY!)
console.enable = true; #Default console without desktop environment! (NOT KITTY!)
grub.enable = false;
#qt.enable = false;
};

View File

@ -1,12 +1,15 @@
{pkgs, inputs, username, ...}:
{
pkgs,
inputs,
username,
...
}: {
imports = [
];
services = {
};
stylix = {
targets = {
kitty.enable = false;
@ -18,7 +21,7 @@
qt.enable = true;
qt.platform = "kde";
#kde.enable = false;
zen-browser.profileNames = [ "${username}" ];
zen-browser.profileNames = ["${username}"];
};
};
}

View File

@ -1,5 +1,4 @@
{ ... }:
{
# xdg.configFile."waybar/config.jsonc".source = ./config.jsonc;
# xdg.configFile."waybar/style.css".source = ./style.css;
{...}: {
# xdg.configFile."waybar/config.jsonc".source = ./config.jsonc;
# xdg.configFile."waybar/style.css".source = ./style.css;
}

View File

@ -1,15 +1,21 @@
{ config, pkgs, username, project, ... }: {
{
config,
pkgs,
username,
project,
...
}: {
programs.zsh = {
enable = true;
enableCompletion = false;
autosuggestions = {
enable = true;
highlightStyle = "fg=242"; # Lighter gray shadow (0-255 scale)
highlightStyle = "fg=242"; # Lighter gray shadow (0-255 scale)
};
ohMyZsh = {
enable = true;
plugins = [ "git" ];
plugins = ["git"];
};
shellInit = ''
@ -17,7 +23,7 @@
eval "$(${pkgs.zoxide}/bin/zoxide init zsh --cmd cd)"
'';
#To reset powerlevel10k, write 'p10k configure' in shell!
#To reset powerlevel10k, write 'p10k configure' in shell!
promptInit = ''
source ${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme
@ -26,7 +32,7 @@
bindkey -M menuselect '^[[C' .forward-char '^[OC' .forward-char
'';
};
users.users.cookiez.shell = pkgs.zsh;
environment.systemPackages = [
pkgs.oh-my-zsh