Initial commit of NixOS config
This commit is contained in:
41
autostart.nix
Normal file
41
autostart.nix
Normal file
@ -0,0 +1,41 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
systemd.user.services.set-wallpaper = {
|
||||
enable = true;
|
||||
description = "Set KDE Plasma wallpaper";
|
||||
#after = [ "plasma-desktop.service" ];
|
||||
serviceConfig.ExecStart = [ "/run/current-system/sw/bin/plasma-apply-wallpaperimage /etc/nixos/other/wallpaper.png" ];
|
||||
wantedBy = [ "graphical-session.target" ];
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
Restart = "on-failure";
|
||||
RestartSec = "5s";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.services.autostart-yakuake = {
|
||||
enable = false;
|
||||
description = "Automatically start Yakuake";
|
||||
#after = [ "plasma-desktop.service" ];
|
||||
serviceConfig.ExecStart = [ "${pkgs.kdePackages.yakuake}/bin/yakuake" ];
|
||||
wantedBy = [ "default.target" ];
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
Restart = "on-failure";
|
||||
RestartSec = "5s";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.services.autostart-trayscale = {
|
||||
enable = true;
|
||||
description = "Automatically start Trayscale";
|
||||
#after = [ "plasma-desktop.service" ];
|
||||
serviceConfig.ExecStart = [ "${pkgs.trayscale}/bin/trayscale --hide-window" ];
|
||||
wantedBy = [ "default.target" ];
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
Restart = "on-failure";
|
||||
RestartSec = "5s";
|
||||
};
|
||||
};
|
||||
}
|
||||
225
configuration.nix
Normal file
225
configuration.nix
Normal file
@ -0,0 +1,225 @@
|
||||
# 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’).
|
||||
|
||||
#Access Internet using:
|
||||
#nmcli device wifi list
|
||||
#nmcli device wifi connect <ssid> password <password>
|
||||
# or if no password (open wifi)
|
||||
#nmcli device wifi connect <ssid>
|
||||
|
||||
#Nix flake file limit: ulimit -n 500000
|
||||
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
|
||||
#Assign Swap to the PC
|
||||
#swapDevices = [{
|
||||
# device = "/swapfile";
|
||||
# size = 16 * 1024; # 16GB
|
||||
#}];
|
||||
|
||||
imports =
|
||||
[
|
||||
./hardware-configuration.nix
|
||||
#Moved to flake.nix
|
||||
#./packages.nix
|
||||
#./firefox.nix
|
||||
#./zsh.nix
|
||||
#./lockscreen.nix
|
||||
];
|
||||
|
||||
# Bootloader.
|
||||
boot.loader = {
|
||||
systemd-boot.enable = false;
|
||||
efi.canTouchEfiVariables = true;
|
||||
#boot.loader.efi.efiSysMountPoint = "/boot/efi";
|
||||
grub = {
|
||||
enable = true;
|
||||
device = "/dev/sdb"; #Needs to be changed when using a new computer! (Make grub partition - look below!)
|
||||
#devices = [ "nodev" ];
|
||||
efiSupport = true;
|
||||
useOSProber = true;
|
||||
};
|
||||
grub2-theme = {
|
||||
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.hostName = "nixos";
|
||||
# Define your hostname.
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
|
||||
# Configure network proxy if necessary
|
||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||
|
||||
# Enable networking
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Berlin";
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "de_DE.UTF-8";
|
||||
LC_IDENTIFICATION = "de_DE.UTF-8";
|
||||
LC_MEASUREMENT = "de_DE.UTF-8";
|
||||
LC_MONETARY = "de_DE.UTF-8";
|
||||
LC_NAME = "de_DE.UTF-8";
|
||||
LC_NUMERIC = "de_DE.UTF-8";
|
||||
LC_PAPER = "de_DE.UTF-8";
|
||||
LC_TELEPHONE = "de_DE.UTF-8";
|
||||
LC_TIME = "de_DE.UTF-8";
|
||||
};
|
||||
|
||||
# Enable the X11 windowing system.
|
||||
# You can disable this if you're only using the Wayland session.
|
||||
services.xserver.enable = true;
|
||||
|
||||
# Enable the KDE Plasma Desktop Environment.
|
||||
services.displayManager.sddm.enable = true;
|
||||
services.desktopManager.plasma6 = {
|
||||
enable = true;
|
||||
#Wallpaper options isnt available anymore in Plasma6
|
||||
#wallpaper = {
|
||||
# mode = "scale";
|
||||
# image = "/etc/nixos/other/wallpaper.png";
|
||||
#};
|
||||
};
|
||||
|
||||
services.ollama = {
|
||||
enable = true;
|
||||
# Optional: load models on startup
|
||||
#loadModels = [ ... ];
|
||||
};
|
||||
|
||||
services.locate = {
|
||||
enable = true;
|
||||
package = pkgs.plocate;
|
||||
#To get rid of warning
|
||||
#Depircated:
|
||||
#localuser = null;
|
||||
};
|
||||
|
||||
# Configure keymap in X11
|
||||
services.xserver.xkb = {
|
||||
layout = "de";
|
||||
variant = "";
|
||||
};
|
||||
|
||||
services.tailscale.enable = true;
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
font-awesome
|
||||
#TODO reconfigure nerd fonts!!!
|
||||
#nerd-fonts
|
||||
meslo-lgs-nf
|
||||
];
|
||||
|
||||
# Configure console keymap
|
||||
console.keyMap = "de";
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = true;
|
||||
|
||||
# Enable sound with pipewire.
|
||||
services.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
# If you want to use JACK applications, uncomment this
|
||||
#jack.enable = true;
|
||||
|
||||
# use the example session manager (no others are packaged yet so this is enabled by default,
|
||||
# no need to redefine it in your config for now)
|
||||
#media-session.enable = true;
|
||||
};
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
# services.xserver.libinput.enable = true;
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
users.users.cookiez = {
|
||||
isNormalUser = true;
|
||||
description = "Cookiez";
|
||||
extraGroups = [ "networkmanager" "wheel" ];
|
||||
packages = with pkgs; [
|
||||
#User Packages Here
|
||||
];
|
||||
};
|
||||
|
||||
#So no user in the group Wheel has to input the password in order to use sudo
|
||||
security.sudo.wheelNeedsPassword = false;
|
||||
|
||||
#theme-reminder uses a definitive /home/cookiez path!!!
|
||||
system.activationScripts.script.text = ''
|
||||
source /etc/nixos/other/colors.sh
|
||||
source /etc/nixos/other/pfp.sh
|
||||
|
||||
source /etc/nixos/other/theme-reminder.sh
|
||||
|
||||
echo -e "Use: $YELLOW'home-manager switch'$NOCOLOR or $DARKGRAY'home-upd'$NOCOLOR (if available) to update your home manager!"
|
||||
'';
|
||||
|
||||
|
||||
# #Install firefox.
|
||||
#programs.firefox.enable = true;
|
||||
#Enabled in a separate firefox.nix
|
||||
|
||||
#Allow Nix Commands
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
|
||||
#To allow the Flake to build all packages (Too many open files error)
|
||||
#systemd.services.nix-deamon.serviceConfig.LimitNOFILE = 100000;
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
programs.steam.enable = true;
|
||||
|
||||
# Some programs need SUID wrappers, can be configured further or are
|
||||
# started in user sessions.
|
||||
# programs.mtr.enable = true;
|
||||
# programs.gnupg.agent = {
|
||||
# enable = true;
|
||||
# enableSSHSupport = true;
|
||||
# };
|
||||
|
||||
# List services that you want to enable:
|
||||
|
||||
# Enable the OpenSSH daemon.
|
||||
services.openssh.enable = true;
|
||||
|
||||
environment.variables = {
|
||||
EDITOR = "micro";
|
||||
# XKB_DEFAULT_LAYOUT = "de";
|
||||
};
|
||||
|
||||
# Open ports in the firewall.
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
# Or disable the firewall altogether.
|
||||
# networking.firewall.enable = false;
|
||||
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||
# this value at the release version of the first install of this system.
|
||||
# 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.05"; # Did you read the comment?
|
||||
}
|
||||
100
firefox.nix
Normal file
100
firefox.nix
Normal file
@ -0,0 +1,100 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
let
|
||||
lock-false = {
|
||||
Value = false;
|
||||
Status = "locked";
|
||||
};
|
||||
lock-true = {
|
||||
Value = true;
|
||||
Status = "locked";
|
||||
};
|
||||
in
|
||||
|
||||
{
|
||||
programs = {
|
||||
firefox = {
|
||||
enable = true;
|
||||
languagePacks = [ "de" "en-US" ];
|
||||
|
||||
/* ---- POLICIES ---- */
|
||||
# Check about:policies#documentation for options.
|
||||
policies = {
|
||||
PasswordManagerEnabled = false;
|
||||
DisableTelemetry = true;
|
||||
DisableFirefoxStudies = true;
|
||||
EnableTrackingProtection = {
|
||||
Value= true;
|
||||
Locked = true;
|
||||
Cryptomining = true;
|
||||
Fingerprinting = true;
|
||||
};
|
||||
DisablePocket = true;
|
||||
#DisableFirefoxAccounts = true;
|
||||
#DisableAccounts = true;
|
||||
#DisableFirefoxScreenshots = true;
|
||||
OverrideFirstRunPage = "";
|
||||
OverridePostUpdatePage = "";
|
||||
DontCheckDefaultBrowser = true;
|
||||
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
|
||||
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
|
||||
SearchBar = "unified"; # alternative: "separate"
|
||||
|
||||
/* ---- 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";
|
||||
};
|
||||
};
|
||||
in
|
||||
listToAttrs [
|
||||
(extension "ublock-origin" "uBlock0@raymondhill.net")
|
||||
(extension "bitwarden-password-manager" "{446900e4-71c2-419f-a6a7-df9c091e268b}")
|
||||
#(extension "2fas-two-factor-authentication" "admin@2fas.com")
|
||||
(extension "sponsorblock" "sponsorBlocker@ajay.app")
|
||||
#(extension "dearrow" "deArrow@ajay.app")
|
||||
#(extension "enhancer-for-youtube" "enhancerforyoutube@maximerf.addons.mozilla.org")
|
||||
#(extension "tabliss" "extension@tabliss.io")
|
||||
#(extension "don-t-fuck-with-paste" "DontFuckWithPaste@raim.ist")
|
||||
#(extension "clearurls" "{74145f27-f039-47ce-a470-a662b129930a}")
|
||||
#(extension "react-devtools" "@react-devtools")
|
||||
(extension "keepa" "amptra@keepa.com")
|
||||
(extension "redditUntranslate" "reddit-url-redirector@kichkoupi.com")
|
||||
];
|
||||
|
||||
/* ---- PREFERENCES ---- */
|
||||
# Check about:config for options.
|
||||
Preferences = {
|
||||
"browser.contentblocking.category" = { Value = "strict"; Status = "locked"; };
|
||||
"extensions.pocket.enabled" = lock-false;
|
||||
"extensions.screenshots.disabled" = lock-true;
|
||||
"browser.topsites.contile.enabled" = lock-false;
|
||||
#"browser.formfill.enable" = lock-false;
|
||||
#"browser.search.suggest.enabled" = lock-false;
|
||||
#"browser.search.suggest.enabled.private" = lock-false;
|
||||
#"browser.urlbar.suggest.searches" = lock-false;
|
||||
"browser.urlbar.showSearchSuggestionsFirst" = lock-false;
|
||||
"browser.newtabpage.activity-stream.feeds.section.topstories" = lock-false;
|
||||
"browser.newtabpage.activity-stream.feeds.snippets" = lock-false;
|
||||
"browser.newtabpage.activity-stream.section.highlights.includePocket" = lock-false;
|
||||
"browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = lock-false;
|
||||
"browser.newtabpage.activity-stream.section.highlights.includeDownloads" = lock-false;
|
||||
"browser.newtabpage.activity-stream.section.highlights.includeVisited" = lock-false;
|
||||
"browser.newtabpage.activity-stream.showSponsored" = lock-false;
|
||||
"browser.newtabpage.activity-stream.system.showSponsored" = lock-false;
|
||||
"browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
105
flake.lock
generated
Normal file
105
flake.lock
generated
Normal file
@ -0,0 +1,105 @@
|
||||
{
|
||||
"nodes": {
|
||||
"grub2-themes": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1734412921,
|
||||
"narHash": "sha256-JeMqc7lLowKn6klrCcOkcOg38yNqF7MPbN4Elh6Xvq0=",
|
||||
"owner": "vinceliuice",
|
||||
"repo": "grub2-themes",
|
||||
"rev": "f6ab2438e124f60a340a526543e498e5e33b3c53",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "vinceliuice",
|
||||
"repo": "grub2-themes",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1753592768,
|
||||
"narHash": "sha256-oV695RvbAE4+R9pcsT9shmp6zE/+IZe6evHWX63f2Qg=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "fc3add429f21450359369af74c2375cb34a2d204",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-25.05",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1747299480,
|
||||
"narHash": "sha256-jh2mqZ//3dul63Hdc/xm0elMv3lBd3WH0Z9YTDM+PJU=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a7b6b1ea1abb5f0b630bd9a1765bdb99ae19c313",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "master",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1753489912,
|
||||
"narHash": "sha256-uDCFHeXdRIgJpYmtcUxGEsZ+hYlLPBhR83fdU+vbC1s=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "13e8d35b7d6028b7198f8186bc0347c6abaa2701",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-25.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"grub2-themes": "grub2-themes",
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"zen-browser": "zen-browser"
|
||||
}
|
||||
},
|
||||
"zen-browser": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1747282003,
|
||||
"narHash": "sha256-UlCfXNncIYwUvPxHngoH6pY4fiZlU8Z2Ve/gUEn6h+o=",
|
||||
"owner": "youwen5",
|
||||
"repo": "zen-browser-flake",
|
||||
"rev": "952ca99903f19a7096a3709f2938d9c7840a5f91",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "youwen5",
|
||||
"repo": "zen-browser-flake",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
49
flake.nix
Normal file
49
flake.nix
Normal file
@ -0,0 +1,49 @@
|
||||
{
|
||||
description = "NixOS configuration";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
|
||||
home-manager.url = "github:nix-community/home-manager/release-25.05";
|
||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||
#zen-browser.url = "github:MarceColl/zen-browser-flake";
|
||||
zen-browser.url = "github:youwen5/zen-browser-flake";
|
||||
zen-browser.inputs.nixpkgs.follows = "nixpkgs";
|
||||
grub2-themes = { url = "github:vinceliuice/grub2-themes"; };
|
||||
};
|
||||
|
||||
outputs = inputs@{ nixpkgs, home-manager, zen-browser, grub2-themes, ... }:
|
||||
let
|
||||
username = "cookiez";
|
||||
version = "25.05";
|
||||
in
|
||||
{
|
||||
nixosConfigurations = {
|
||||
#Replace the below with your hostname!!! Like: {hostname} = nixpkgs.lib.nixosSystem {
|
||||
nixos = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {
|
||||
inherit inputs username version;
|
||||
};
|
||||
modules = [
|
||||
./configuration.nix
|
||||
./firefox.nix
|
||||
./zsh.nix
|
||||
./autostart.nix
|
||||
#./virtual-machine.nix
|
||||
#./zen.nix
|
||||
#./neovim.nix
|
||||
./packages.nix
|
||||
./lockscreen.nix
|
||||
grub2-themes.nixosModules.default
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.${username} = ./home.nix;
|
||||
home-manager.extraSpecialArgs = { inherit inputs username version; system = "x86_64-linux"; };
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
41
hardware-configuration.nix
Normal file
41
hardware-configuration.nix
Normal file
@ -0,0 +1,41 @@
|
||||
# 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")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "uas" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/22a6fa16-0657-4df8-b3e2-7f95fbae778c";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/868C-A59D";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/cb5dbfc0-7c90-41f7-9cad-8c75d84c9d18"; }
|
||||
];
|
||||
|
||||
# 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
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.eno1.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
28
home.nix
Normal file
28
home.nix
Normal file
@ -0,0 +1,28 @@
|
||||
{ inputs, config, pkgs, username, version, ... }:
|
||||
{
|
||||
|
||||
# Home Manager needs a bit of information about you and the
|
||||
# paths it should manage.
|
||||
home.username = username;
|
||||
home.homeDirectory = "/home/${username}";
|
||||
|
||||
# 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 can update Home Manager without changing this value. See
|
||||
# the Home Manager release notes for a list of state version
|
||||
# changes in each release.
|
||||
home.stateVersion = version;
|
||||
|
||||
# Let Home Manager install and manage itself.
|
||||
programs = {
|
||||
home-manager.enable = true;
|
||||
git = {
|
||||
enable = true;
|
||||
userName = "Cookiez";
|
||||
userEmail = "jaden-puerkenauer@web.de";
|
||||
};
|
||||
};
|
||||
}
|
||||
37
hyprland.nix
Normal file
37
hyprland.nix
Normal file
@ -0,0 +1,37 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs;
|
||||
[
|
||||
(waybar.overrideAttrs (oldAttrs: {
|
||||
mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ];
|
||||
})
|
||||
)
|
||||
dunst
|
||||
libnotify
|
||||
hyprpaper
|
||||
|
||||
kitty #Terminal
|
||||
rofi-wayland
|
||||
];
|
||||
|
||||
#programs.hyprland.enable = true;
|
||||
#programs.hyprland = {
|
||||
# enable = true;
|
||||
# xwayland.enable = true;
|
||||
#};
|
||||
|
||||
#xdg.portal = {
|
||||
# enable = true;
|
||||
# extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||
#};
|
||||
|
||||
#sound.enable = true;
|
||||
#security.rtkit.enable = true;
|
||||
#services.pipewire = {
|
||||
# enable = true;
|
||||
# alsa.enable = true;
|
||||
# alsa.support3Bbit = true;
|
||||
# pulse.enable = true;
|
||||
# jack.enable = true;
|
||||
#}
|
||||
}
|
||||
29
lockscreen.nix
Normal file
29
lockscreen.nix
Normal file
@ -0,0 +1,29 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
# Define the custom background package with the correct relative path
|
||||
background-package = pkgs.stdenvNoCC.mkDerivation {
|
||||
name = "background-image";
|
||||
src = ./other/wallpaper.png; # Place wallpaper.jpg in the same directory as this config file
|
||||
dontUnpack = true;
|
||||
installPhase = ''
|
||||
cp $src $out
|
||||
'';
|
||||
};
|
||||
in
|
||||
|
||||
{
|
||||
# X11 and KDE Plasma configuration
|
||||
#services.xserver.enable = true;
|
||||
services.displayManager.sddm = {
|
||||
enable = lib.mkDefault true;
|
||||
theme = "breeze";
|
||||
wayland.enable = true;
|
||||
};
|
||||
environment.systemPackages = with pkgs; [
|
||||
(pkgs.writeTextDir "share/sddm/themes/breeze/theme.conf.user" ''
|
||||
[General]
|
||||
background = "${background-package}"
|
||||
'')
|
||||
];
|
||||
}
|
||||
25
neovim.nix
Normal file
25
neovim.nix
Normal file
@ -0,0 +1,25 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
{
|
||||
programs.neovim = {
|
||||
# ...
|
||||
plugins = with pkgs.vimPlugins; [
|
||||
lazy-nvim
|
||||
];
|
||||
|
||||
extraLuaConfig =
|
||||
# lua
|
||||
''
|
||||
require("lazy").setup({
|
||||
-- disable all update / install features
|
||||
-- this is handled by nix
|
||||
rocks = { enabled = false },
|
||||
pkg = { enabled = false },
|
||||
install = { missing = false },
|
||||
change_detection = { enabled = false },
|
||||
spec = {
|
||||
-- TODO
|
||||
},
|
||||
})
|
||||
'';
|
||||
};
|
||||
}
|
||||
35
other/aliases
Normal file
35
other/aliases
Normal file
@ -0,0 +1,35 @@
|
||||
#----------
|
||||
# Commands that will be used as aliases for zsh and bash
|
||||
#----------
|
||||
|
||||
# Common commands
|
||||
#-----
|
||||
alias py="python3"
|
||||
alias mcrow="sudo micro"
|
||||
|
||||
|
||||
|
||||
|
||||
alias neofetch="fastfetch"
|
||||
|
||||
|
||||
|
||||
# Nix Specific commands
|
||||
#-----
|
||||
alias nix-upd="sudo nixos-rebuild switch --flake /etc/nixos"
|
||||
alias nix-update="sudo nixos-rebuild switch --flake /etc/nixos"
|
||||
alias nix-edit="sudoedit /etc/nixos/configuration.nix"
|
||||
alias nix-packages="sudoedit /etc/nixos/packages.nix"
|
||||
alias nix-pkgs="sudoedit /etc/nixos/packages.nix"
|
||||
alias nix-flake="sudoedit /etc/nixos/flake.nix"
|
||||
alias nix-edit-flake="sudoedit /etc/nixos/flake.nix"
|
||||
alias nix-zsh="sudoedit /etc/nixos/zsh.nix"
|
||||
alias nix-edit-zsh="sudoedit /etc/nixos/zsh.nix"
|
||||
alias nix-aliases="sudoedit /etc/nixos/other/aliases"
|
||||
alias nix-edit-aliases="sudoedit /etc/nixos/other/aliases"
|
||||
alias nix-regenerate-config="sudo nixos-generate-config"
|
||||
alias nix-home="echo To edit home manager run command \'home-edit\'"
|
||||
alias home-edit="sudoedit /etc/nixos/home.nix"
|
||||
alias home-upd="home-manager switch"
|
||||
alias home-update="home-manager switch"
|
||||
alias cd-nix="cd /etc/nixos/"
|
||||
12
other/bookmarks-default
Normal file
12
other/bookmarks-default
Normal file
@ -0,0 +1,12 @@
|
||||
[
|
||||
{
|
||||
name = "Bookmarks Toolbar";
|
||||
toolbar = true;
|
||||
bookmarks = [
|
||||
{
|
||||
name = "NixOS Packages";
|
||||
url = "https://search.nixos.org/packages";
|
||||
}
|
||||
];
|
||||
}
|
||||
]
|
||||
16
other/colors.sh
Normal file
16
other/colors.sh
Normal file
@ -0,0 +1,16 @@
|
||||
NOCOLOR='\033[0m'
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
ORANGE='\033[0;33m'
|
||||
BLUE='\033[0;34m'
|
||||
PURPLE='\033[0;35m'
|
||||
CYAN='\033[0;36m'
|
||||
LIGHTGRAY='\033[0;37m'
|
||||
DARKGRAY='\033[1;30m'
|
||||
LIGHTRED='\033[1;31m'
|
||||
LIGHTGREEN='\033[1;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
LIGHTBLUE='\033[1;34m'
|
||||
LIGHTPURPLE='\033[1;35m'
|
||||
LIGHTCYAN='\033[1;36m'
|
||||
WHITE='\033[1;37m'
|
||||
38
other/konsave.sh
Normal file
38
other/konsave.sh
Normal file
@ -0,0 +1,38 @@
|
||||
source /etc/nixos/other/colors.sh
|
||||
FLAG_FILE="/home/cookiez/.flags/theme-flag"
|
||||
|
||||
/run/current-system/sw/bin/konsave -i /etc/nixos/other/theme.knsv
|
||||
/run/current-system/sw/bin/konsave -i /etc/nixos/other/theme.knsv
|
||||
/run/current-system/sw/bin/konsave -a theme
|
||||
|
||||
progress_bar() {
|
||||
local duration=$1
|
||||
local interval=0.25
|
||||
local total_intervals=$((duration / interval))
|
||||
local progress=""
|
||||
local bar_length=10
|
||||
|
||||
for ((i=0; i<total_intervals; i++)); do
|
||||
progress="${progress}-"
|
||||
printf "\rApplying: [%-${bar_length}s]" "$progress"
|
||||
sleep $interval
|
||||
done
|
||||
echo -ne "\r[${progress}] Done!\n"
|
||||
}
|
||||
|
||||
mkdir -p "$(dirname "$FLAG_FILE")"
|
||||
touch "$FLAG_FILE"
|
||||
echo "Flag for knowing weather the Default theme packaged with this NixOS install was actually applied! (If this exists than it should be applied already)" > "$FLAG_FILE"
|
||||
|
||||
echo -e "Use ${RED}'sudo reboot -h 0'${NOCOLOR} to successfully apply the theme, if logging out manually ${YELLOW}doesn't${NOCOLOR} work!"
|
||||
progress_bar 2.5
|
||||
|
||||
echo ""
|
||||
echo -n "Do you want to reboot now? (y/n): "
|
||||
read -r answer
|
||||
if [ -z "$answer" ] || [ "$answer" = "y" ] || [ "$answer" = "Y" ]; then
|
||||
echo "Rebooting! ..."
|
||||
sudo shutdown -r now
|
||||
else
|
||||
echo "Make sure to log out/reboot later!"
|
||||
fi
|
||||
BIN
other/pfp.png
Normal file
BIN
other/pfp.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 211 KiB |
9
other/pfp.sh
Normal file
9
other/pfp.sh
Normal file
@ -0,0 +1,9 @@
|
||||
mkdir -p /var/lib/AccountsService/{icons,users}
|
||||
cp /etc/nixos/other/pfp.png /var/lib/AccountsService/icons/cookiez
|
||||
echo -e "[User]\nIcon=/var/lib/AccountsService/icons/cookiez\n" > /var/lib/AccountsService/users/cookiez
|
||||
|
||||
chown root:root /var/lib/AccountsService/users/cookiez
|
||||
chmod 0600 /var/lib/AccountsService/users/cookiez
|
||||
|
||||
chown root:root /var/lib/AccountsService/icons/cookiez
|
||||
chmod 0444 /var/lib/AccountsService/icons/cookiez
|
||||
3
other/sway-config
Normal file
3
other/sway-config
Normal file
@ -0,0 +1,3 @@
|
||||
input * {
|
||||
xkb_layout de
|
||||
}
|
||||
9
other/theme-reminder.sh
Normal file
9
other/theme-reminder.sh
Normal file
@ -0,0 +1,9 @@
|
||||
source /etc/nixos/other/colors.sh
|
||||
FLAG_FILE="/home/cookiez/.flags/theme-flag"
|
||||
|
||||
if [ ! -f "$FLAG_FILE" ]; then
|
||||
echo -e "${RED}Warning: Make sure to apply the custom system theme!${NOCOLOR} (source '/etc/nixos/other/konsave.sh')"
|
||||
fi
|
||||
#else
|
||||
# echo "Flag file exists - Theme should be applied already!"
|
||||
#fi
|
||||
BIN
other/theme.knsv
Normal file
BIN
other/theme.knsv
Normal file
Binary file not shown.
BIN
other/wallpaper.png
Normal file
BIN
other/wallpaper.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 8.9 MiB |
80
packages.nix
Normal file
80
packages.nix
Normal file
@ -0,0 +1,80 @@
|
||||
{config, pkgs, libs, inputs, ...}:
|
||||
{
|
||||
environment.systemPackages = with pkgs;
|
||||
[
|
||||
#Essentials (CLI Only)
|
||||
wget #A tool for quickly downloading things from the Web
|
||||
micro-with-xclip
|
||||
vimPlugins.LazyVim
|
||||
neovim
|
||||
#vimPlugins.vim-wayland-clipboard
|
||||
thefuck #Error correction in case commands are wrong. Type: 'fuck'
|
||||
jdk23 #Java Development Kit 23
|
||||
python312 #Python 3.12
|
||||
python312Packages.pip #Pip for Python 3.12
|
||||
python312Packages.cmake #The CMake tool to manage project build configurations
|
||||
fastfetch #A utility to see information about your machine
|
||||
btop #A replacement for htop, see your machines resources
|
||||
git #Git ... no need to explain
|
||||
efibootmgr
|
||||
zip #A utility for ZIP archives
|
||||
unzip
|
||||
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
|
||||
ocs-url
|
||||
kdePackages.plasma-workspace
|
||||
openssh #SSH
|
||||
zoxide #Alternatice to cd, browse files
|
||||
fzf-zsh #Search for file names
|
||||
sway
|
||||
coreutils-full
|
||||
multipath-tools
|
||||
|
||||
#Programming
|
||||
jetbrains.pycharm-community #The PyCharm IDE to edit Python code
|
||||
jetbrains.idea-community #The IntelliJ IDE to edit Java code
|
||||
jetbrains.clion #The CLion IDE to edit and compile c/c++ code
|
||||
racket #The racket Programming language, with DrRacket IDE, for University (*Not* because it's my favourite)
|
||||
rustup
|
||||
|
||||
#Desktop Applications
|
||||
vlc
|
||||
steam
|
||||
#heroic
|
||||
#putty Need to find alternative as it sucks on linux
|
||||
mission-center
|
||||
trayscale
|
||||
spotify
|
||||
rpi-imager
|
||||
kdePackages.yakuake
|
||||
atlauncher
|
||||
discord
|
||||
whatsapp-for-linux
|
||||
obs-studio
|
||||
i2p
|
||||
gparted
|
||||
#rustdesk
|
||||
mediawriter
|
||||
#inputs.zen-browser.packages.${pkgs.system}.default
|
||||
realvnc-vnc-viewer
|
||||
|
||||
#CLI tools
|
||||
eddie #AirVPN client for CLI and Desktop
|
||||
yt-dlp
|
||||
tailscale
|
||||
speedtest-cli
|
||||
duplicati
|
||||
ollama
|
||||
cloudflare-warp
|
||||
ddrescue
|
||||
];
|
||||
|
||||
nixpkgs.config.permittedInsecurePackages = [
|
||||
"dotnet-sdk-6.0.428"
|
||||
"dotnet-runtime-6.0.36"
|
||||
];
|
||||
}
|
||||
30
virtual-machine.nix
Normal file
30
virtual-machine.nix
Normal file
@ -0,0 +1,30 @@
|
||||
{config, pkgs, ... }:
|
||||
{
|
||||
programs.dconf.enable = true;
|
||||
|
||||
users.users.cookiez.extraGroups = [ "libvirtd" ];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
virt-manager
|
||||
virt-viewer
|
||||
spice
|
||||
spice-gtk
|
||||
spice-protocol
|
||||
win-virtio
|
||||
win-spice
|
||||
gnome.adwaita-icon-theme
|
||||
];
|
||||
|
||||
virtualisation = {
|
||||
libvirtd = {
|
||||
enable = true;
|
||||
qemu = {
|
||||
swtpm.enable = true;
|
||||
ovmf.enable = true;
|
||||
ovmf.packages = [ pkgs.OVMFFull.fd ];
|
||||
};
|
||||
};
|
||||
spiceUSBRedirection.enable = true;
|
||||
};
|
||||
services.spice-vdagentd.enable = true;
|
||||
}
|
||||
55
zen.nix
Normal file
55
zen.nix
Normal file
@ -0,0 +1,55 @@
|
||||
{ config, pkgs, inputs, ... }:
|
||||
let
|
||||
username = "cookiez";
|
||||
in
|
||||
{
|
||||
#Copy from https://github.com/0x006E/dotfiles/blob/main/home.nix
|
||||
zen-browser = {
|
||||
enable = true;
|
||||
package = inputs.zen-browser.packages.${pkgs.system}.default;
|
||||
profiles = {
|
||||
${username} = {
|
||||
id = 0;
|
||||
name = "${username}";
|
||||
# profileAvatarPath = "chrome://browser/content/zen-avatars/avatar-57.svg";
|
||||
path = "${username}.default";
|
||||
isDefault = true;
|
||||
settings = {
|
||||
|
||||
};
|
||||
};
|
||||
};
|
||||
policies = {
|
||||
PasswordManagerEnabled = false;
|
||||
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
|
||||
listToAttrs [
|
||||
(extension "ublock-origin" "uBlock0@raymondhill.net")
|
||||
(extension "bitwarden-password-manager" "{446900e4-71c2-419f-a6a7-df9c091e268b}")
|
||||
#(extension "2fas-two-factor-authentication" "admin@2fas.com")
|
||||
(extension "sponsorblock" "sponsorBlocker@ajay.app")
|
||||
#(extension "dearrow" "deArrow@ajay.app")
|
||||
#(extension "enhancer-for-youtube" "enhancerforyoutube@maximerf.addons.mozilla.org")
|
||||
#(extension "tabliss" "extension@tabliss.io")
|
||||
#(extension "don-t-fuck-with-paste" "DontFuckWithPaste@raim.ist")
|
||||
#(extension "clearurls" "{74145f27-f039-47ce-a470-a662b129930a}")
|
||||
#(extension "react-devtools" "@react-devtools")
|
||||
(extension "keepa" "amptra@keepa.com")
|
||||
];
|
||||
# To add additional extensions, find it on addons.mozilla.org, find
|
||||
# the short ID in the url (like https=//addons.mozilla.org/en-US/firefox/addon/!SHORT_ID!/)
|
||||
# Then, download the XPI by filling it in to the install_url template, unzip it,
|
||||
# run `jq .browser_specific_settings.gecko.id manifest.json` or
|
||||
# `jq .applications.gecko.id manifest.json` to get the UUID
|
||||
};
|
||||
};
|
||||
}
|
||||
29
zsh.nix
Normal file
29
zsh.nix
Normal file
@ -0,0 +1,29 @@
|
||||
{ config, pkgs, ... }: {
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
|
||||
ohMyZsh = {
|
||||
enable = true;
|
||||
plugins = [ "git" ];
|
||||
};
|
||||
|
||||
shellInit = ''
|
||||
source /etc/nixos/other/aliases
|
||||
source /etc/nixos/other/theme-reminder.sh
|
||||
'';
|
||||
|
||||
promptInit = ''
|
||||
source ${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme
|
||||
'';
|
||||
};
|
||||
|
||||
users.users.cookiez.shell = pkgs.zsh;
|
||||
environment.systemPackages = [
|
||||
pkgs.oh-my-zsh
|
||||
pkgs.zsh
|
||||
pkgs.zsh-completions
|
||||
pkgs.zsh-powerlevel10k
|
||||
pkgs.zsh-syntax-highlighting
|
||||
pkgs.zsh-autocomplete
|
||||
];
|
||||
}
|
||||
Reference in New Issue
Block a user