add everything

This commit is contained in:
lucyy 2025-12-05 11:59:27 +01:00
commit c02b368ecb
16 changed files with 1657 additions and 0 deletions

1
compile_commands.json Normal file
View File

@ -0,0 +1 @@
[]

167
configuration.nix Normal file
View File

@ -0,0 +1,167 @@
# 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, ... }:
{
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
./stylix.nix
];
fonts = {
packages = with pkgs; [
noto-fonts-cjk-sans
noto-fonts
nerd-fonts._0xproto
];
};
programs.hyprland.enable = true;
services.displayManager.gdm.enable = true;
services.desktopManager.gnome.enable = true;
# To disable installing GNOME's suite of applications
# and only be left with GNOME shell.
services.gnome.core-apps.enable = false;
services.gnome.core-developer-tools.enable = false;
services.gnome.games.enable = false;
environment.gnome.excludePackages = with pkgs; [
gnome-tour
gnome-user-docs
];
boot = {
plymouth = {
enable = true;
};
# Enable "Silent boot"
consoleLogLevel = 3;
initrd.verbose = false;
kernelParams = [
"quiet"
"splash"
"boot.shell_on_fail"
"udev.log_priority=3"
"rd.systemd.show_status=auto"
];
# Hide the OS choice for bootloaders.
# It's still possible to open the bootloader list by pressing any key
# It will just not appear on screen unless a key is pressed
loader.timeout = 0;
};
hardware.graphics.enable = true;
nix.extraOptions = "experimental-features = nix-command flakes";
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
security.sudo.enable = true;
# Use latest kernel.
boot.kernelPackages = pkgs.linuxPackages_latest;
services.power-profiles-daemon.enable = true;
services.upower.enable = true;
networking.hostName = "wired"; # 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";
# Sound
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
pulse.enable = true;
};
# Enable networking
networking.networkmanager.enable = true;
# Home manager angy grrr
# 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";
};
# Configure keymap in X11
services.xserver.xkb = {
layout = "de";
variant = "nodeadkeys";
};
# Configure console keymap
console.keyMap = "de-latin1-nodeadkeys";
# Define a user account. Don't forget to set a password with passwd.
users.users.lucy = {
isNormalUser = true;
description = "lucy";
extraGroups = [
"networkmanager"
"wheel"
];
};
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.pathsToLink = [
"/share/applications"
"/share/xdg-desktop-portal"
];
environment.systemPackages = with pkgs; [
openssl
fastfetch
];
programs.git.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;
# 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. Its 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?
}

581
flake.lock generated Normal file
View File

@ -0,0 +1,581 @@
{
"nodes": {
"base16": {
"inputs": {
"fromYaml": "fromYaml"
},
"locked": {
"lastModified": 1755819240,
"narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=",
"owner": "SenchoPens",
"repo": "base16.nix",
"rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6",
"type": "github"
},
"original": {
"owner": "SenchoPens",
"repo": "base16.nix",
"type": "github"
}
},
"base16-fish": {
"flake": false,
"locked": {
"lastModified": 1754405784,
"narHash": "sha256-l9xHIy+85FN+bEo6yquq2IjD1rSg9fjfjpyGP1W8YXo=",
"owner": "tomyun",
"repo": "base16-fish",
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
"type": "github"
},
"original": {
"owner": "tomyun",
"repo": "base16-fish",
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
"type": "github"
}
},
"base16-helix": {
"flake": false,
"locked": {
"lastModified": 1760703920,
"narHash": "sha256-m82fGUYns4uHd+ZTdoLX2vlHikzwzdu2s2rYM2bNwzw=",
"owner": "tinted-theming",
"repo": "base16-helix",
"rev": "d646af9b7d14bff08824538164af99d0c521b185",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-helix",
"type": "github"
}
},
"base16-vim": {
"flake": false,
"locked": {
"lastModified": 1732806396,
"narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=",
"owner": "tinted-theming",
"repo": "base16-vim",
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-vim",
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
"type": "github"
}
},
"firefox-gnome-theme": {
"flake": false,
"locked": {
"lastModified": 1764724327,
"narHash": "sha256-OkFLrD3pFR952TrjQi1+Vdj604KLcMnkpa7lkW7XskI=",
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"rev": "66b7c635763d8e6eb86bd766de5a1e1fbfcc1047",
"type": "github"
},
"original": {
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1763759067,
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"stylix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1763759067,
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"fromYaml": {
"flake": false,
"locked": {
"lastModified": 1731966426,
"narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=",
"owner": "SenchoPens",
"repo": "fromYaml",
"rev": "106af9e2f715e2d828df706c386a685698f3223b",
"type": "github"
},
"original": {
"owner": "SenchoPens",
"repo": "fromYaml",
"type": "github"
}
},
"gnome-shell": {
"flake": false,
"locked": {
"host": "gitlab.gnome.org",
"lastModified": 1764524476,
"narHash": "sha256-bTmNn3Q4tMQ0J/P0O5BfTQwqEnCiQIzOGef9/aqAZvk=",
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "c0e1ad9f0f703fd0519033b8f46c3267aab51a22",
"type": "gitlab"
},
"original": {
"host": "gitlab.gnome.org",
"owner": "GNOME",
"ref": "gnome-49",
"repo": "gnome-shell",
"type": "gitlab"
}
},
"home-manager": {
"inputs": {
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1764912896,
"narHash": "sha256-ftxQocr098v5ngqB3SXa9tW6aqovBSBOEdIRcLEj44c=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "6bcb2395ab9ed05616052262da526cd7c5b4b123",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"ixx": {
"inputs": {
"flake-utils": [
"nixvim",
"nuschtosSearch",
"flake-utils"
],
"nixpkgs": [
"nixvim",
"nuschtosSearch",
"nixpkgs"
]
},
"locked": {
"lastModified": 1754860581,
"narHash": "sha256-EM0IE63OHxXCOpDHXaTyHIOk2cNvMCGPqLt/IdtVxgk=",
"owner": "NuschtOS",
"repo": "ixx",
"rev": "babfe85a876162c4acc9ab6fb4483df88fa1f281",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"ref": "v0.1.1",
"repo": "ixx",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1764517877,
"narHash": "sha256-pp3uT4hHijIC8JUK5MEqeAWmParJrgBVzHLNfJDZxg4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "2d293cbfa5a793b4c50d17c05ef9e385b90edf6c",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1764667669,
"narHash": "sha256-7WUCZfmqLAssbDqwg9cUDAXrSoXN79eEEq17qhTNM/Y=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "418468ac9527e799809c900eda37cbff999199b6",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1764794580,
"narHash": "sha256-UMVihg0OQ980YqmOAPz+zkuCEb9hpE5Xj2v+ZGNjQ+M=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "ebc94f855ef25347c314258c10393a92794e7ab9",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1764517877,
"narHash": "sha256-pp3uT4hHijIC8JUK5MEqeAWmParJrgBVzHLNfJDZxg4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "2d293cbfa5a793b4c50d17c05ef9e385b90edf6c",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1764517877,
"narHash": "sha256-pp3uT4hHijIC8JUK5MEqeAWmParJrgBVzHLNfJDZxg4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "2d293cbfa5a793b4c50d17c05ef9e385b90edf6c",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixvim": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": "nixpkgs_3",
"nuschtosSearch": "nuschtosSearch",
"systems": "systems_2"
},
"locked": {
"lastModified": 1764892502,
"narHash": "sha256-xMDuLmD77k1ZoGjTPA/BELJEGNPDOR1ise6KltYOLtk=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "8e85c25143e5bc625197b96a0265cd6cec3634fc",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixvim",
"type": "github"
}
},
"nur": {
"inputs": {
"flake-parts": [
"stylix",
"flake-parts"
],
"nixpkgs": [
"stylix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1764773531,
"narHash": "sha256-mCBl7MD1WZ7yCG6bR9MmpPO2VydpNkWFgnslJRIT1YU=",
"owner": "nix-community",
"repo": "NUR",
"rev": "1d9616689e98beded059ad0384b9951e967a17fa",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "NUR",
"type": "github"
}
},
"nuschtosSearch": {
"inputs": {
"flake-utils": "flake-utils",
"ixx": "ixx",
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1761730856,
"narHash": "sha256-t1i5p/vSWwueZSC0Z2BImxx3BjoUDNKyC2mk24krcMY=",
"owner": "NuschtOS",
"repo": "search",
"rev": "e29de6db0cb3182e9aee75a3b1fd1919d995d85b",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"repo": "search",
"type": "github"
}
},
"root": {
"inputs": {
"home-manager": "home-manager",
"nixpkgs": "nixpkgs_2",
"nixvim": "nixvim",
"spicetify-nix": "spicetify-nix",
"stylix": "stylix"
}
},
"spicetify-nix": {
"inputs": {
"nixpkgs": "nixpkgs_4",
"systems": "systems_3"
},
"locked": {
"lastModified": 1764698597,
"narHash": "sha256-4f0y9Fo3AChngd/qRQ7wbcy6FH33NFZbyFXn7IeUI14=",
"owner": "Gerg-L",
"repo": "spicetify-nix",
"rev": "1da6ebbbcf0301ff773e9c43bdd4c051af9523f7",
"type": "github"
},
"original": {
"owner": "Gerg-L",
"repo": "spicetify-nix",
"type": "github"
}
},
"stylix": {
"inputs": {
"base16": "base16",
"base16-fish": "base16-fish",
"base16-helix": "base16-helix",
"base16-vim": "base16-vim",
"firefox-gnome-theme": "firefox-gnome-theme",
"flake-parts": "flake-parts_2",
"gnome-shell": "gnome-shell",
"nixpkgs": "nixpkgs_5",
"nur": "nur",
"systems": "systems_4",
"tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes",
"tinted-tmux": "tinted-tmux",
"tinted-zed": "tinted-zed"
},
"locked": {
"lastModified": 1764860352,
"narHash": "sha256-bWrh2T6EPiiZC7jY0jK5cWRwkG0hltnPT1etfHIHiXM=",
"owner": "danth",
"repo": "stylix",
"rev": "61a01b75f0a7e58dac486ddf022c628a71528399",
"type": "github"
},
"original": {
"owner": "danth",
"repo": "stylix",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_4": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"tinted-foot": {
"flake": false,
"locked": {
"lastModified": 1726913040,
"narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
}
},
"tinted-kitty": {
"flake": false,
"locked": {
"lastModified": 1735730497,
"narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
"owner": "tinted-theming",
"repo": "tinted-kitty",
"rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-kitty",
"type": "github"
}
},
"tinted-schemes": {
"flake": false,
"locked": {
"lastModified": 1763914658,
"narHash": "sha256-Hju0WtMf3iForxtOwXqGp3Ynipo0EYx1AqMKLPp9BJw=",
"owner": "tinted-theming",
"repo": "schemes",
"rev": "0f6be815d258e435c9b137befe5ef4ff24bea32c",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "schemes",
"type": "github"
}
},
"tinted-tmux": {
"flake": false,
"locked": {
"lastModified": 1764465359,
"narHash": "sha256-lbSVPqLEk2SqMrnpvWuKYGCaAlfWFMA6MVmcOFJjdjE=",
"owner": "tinted-theming",
"repo": "tinted-tmux",
"rev": "edf89a780e239263cc691a987721f786ddc4f6aa",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-tmux",
"type": "github"
}
},
"tinted-zed": {
"flake": false,
"locked": {
"lastModified": 1764464512,
"narHash": "sha256-rCD/pAhkMdCx6blsFwxIyvBJbPZZ1oL2sVFrH07lmqg=",
"owner": "tinted-theming",
"repo": "base16-zed",
"rev": "907dbba5fb8cf69ebfd90b00813418a412d0a29a",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-zed",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

61
flake.nix Normal file
View File

@ -0,0 +1,61 @@
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
stylix.url = "github:danth/stylix";
spicetify-nix.url = "github:Gerg-L/spicetify-nix";
nixvim.url = "github:nix-community/nixvim";
home-manager.url = "github:nix-community/home-manager";
};
outputs =
{
self,
nixpkgs,
stylix,
spicetify-nix,
nixvim,
home-manager,
...
}:
let
system = "x86_64-linux";
pkgs = import nixpkgs { inherit system; };
spicetify = spicetify-nix.lib.mkSpicetify pkgs { };
in
{
nixosConfigurations.wired = nixpkgs.lib.nixosSystem {
inherit system;
modules = [
stylix.nixosModules.stylix
home-manager.nixosModules.home-manager
./configuration.nix
{
home-manager.useUserPackages = true;
home-manager.useGlobalPkgs = true;
home-manager.users.lucy = {
imports = [
#stylix.homeModules.stylix
nixvim.homeModules.nixvim
spicetify-nix.homeManagerModules.spicetify
./home/home.nix
];
};
}
];
};
homeConfigurations.lucy = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules = [
#stylix.homeModules.stylix
nixvim.homeModules.nixvim
./home/home.nix
./home/programs.nix
];
};
};
}

View File

@ -0,0 +1,53 @@
# 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"
"nvme"
"usb_storage"
"sd_mod"
"sdhci_pci"
];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" = {
device = "/dev/disk/by-uuid/c16b01ac-175e-4b33-b0e6-6e3324e5d3a7";
fsType = "ext4";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/FB24-02BA";
fsType = "vfat";
options = [
"fmask=0077"
"dmask=0077"
];
};
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
# 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.wlp3s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

27
home/home.nix Normal file
View File

@ -0,0 +1,27 @@
{ config, pkgs, ... }:
{
imports = [
./hyprland.nix
./programs.nix
./waybar.nix
./nixvim/nixvim.nix
./stylix.nix
];
home.username = "lucy";
home.homeDirectory = "/home/lucy";
# 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.
programs.bash.enable = true;
home.stateVersion = "24.05"; # Please read the comment before changing.
home.shell.enableShellIntegration = true;
home.shellAliases = {
nrs = "sudo nixos-rebuild switch --flake /home/lucy/nixos-conf/";
};
}

136
home/hyprland.nix Normal file
View File

@ -0,0 +1,136 @@
{ config, ... }:
{
wayland.windowManager.hyprland.enable = true;
wayland.windowManager.hyprland.settings = {
"$mod" = "SUPER";
"monitor" = ",preferred,auto,1";
general = {
border_size = 2;
gaps_in = 5;
gaps_out = 10;
layout = "dwindle";
};
decoration = {
rounding = 0;
blur = {
enabled = false;
size = 3;
passes = 2;
ignore_opacity = 0;
};
shadow = {
enabled = false;
};
};
animations = {
enabled = true;
bezier = [
"smoothIn, 0.25, 1, 0.5, 1"
"smoothOut, 0.25, 1, 0.5, 1"
"overshot, 0.4, 0.8, 0.5, 1"
"candy, 0.68, -0.6, 0.32, 1.5"
];
animation = [
"fade, 1, 10, overshot"
"fadeIn, 1, 5, overshot"
"fadeOut, 1, 5, overshot"
"fadeDim, 1, 5, overshot"
"windows, 0, 1, smoothIn, gnomed"
"border, 1, 10, default"
"workspaces, 1, 6, overshot, fade"
"specialWorkspace, 1, 8, smoothOut, slidevert"
];
};
input = {
kb_layout = "de";
kb_options = "nodeadkeys";
sensitivity = 0.3;
accel_profile = "flat";
natural_scroll = true;
};
exec-once = [
"swww-daemon"
"dunst"
];
"bind" = [
"$mod, Return, exec, foot"
"$mod, space, exec, wofi --show drun"
"$mod, Q, killactive"
"$mod, v, togglefloating"
"$mod, w, exec, waypaper"
"$mod SHIFT, Q, exit"
"$mod, J, togglesplit"
"$mod, minus, togglespecialworkspace, magic"
"$mod SHIFT, minus, movetoworkspace, special:magic"
"$mod, B, exec, pkill -SIGUSR1 waybar"
"$mod, 1, workspace, 1"
"$mod, 2, workspace, 2"
"$mod, 3, workspace, 3"
"$mod, 4, workspace, 4"
"$mod, 5, workspace, 5"
"$mod, 6, workspace, 6"
"$mod, 7, workspace, 7"
"$mod, 8, workspace, 8"
"$mod, 9, workspace, 9"
"$mod, 0, workspace, 10"
"$mod SHIFT, 1, movetoworkspace, 1"
"$mod SHIFT, 2, movetoworkspace, 2"
"$mod SHIFT, 3, movetoworkspace, 3"
"$mod SHIFT, 4, movetoworkspace, 4"
"$mod SHIFT, 5, movetoworkspace, 5"
"$mod SHIFT, 6, movetoworkspace, 6"
"$mod SHIFT, 7, movetoworkspace, 7"
"$mod SHIFT, 8, movetoworkspace, 8"
"$mod SHIFT, 9, movetoworkspace, 9"
"$mod SHIFT, 0, movetoworkspace, 10"
# Screenshots
"Alt, S, exec, hyprshot -m output -m active --clipboard-only --freeze"
"$mod SHIFT, S, exec, hyprshot -m region --clipboard-only --freeze"
"Control_L&Alt, S, exec, hyprshot -m window --clipboard-only --freeze"
"$mod, left, movefocus, l"
"$mod, right, movefocus, r"
"$mod, up, movefocus, u"
"$mod, down, movefocus, d"
"$mod SHIFT, left, movewindow, l"
"$mod SHIFT, right, movewindow, r"
"$mod SHIFT, up, movewindow, u"
"$mod SHIFT, down, movewindow, d"
"$mod, P, exec, /home/lucy/.local/bin/powermenu"
];
binde = [
", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+"
", XF86AudioLowerVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%-"
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
", XF86AudioNext, exec, playerctl next"
", XF86AudioPause, exec, playerctl play-pause"
", XF86AudioPlay, exec, playerctl play-pause"
", XF86AudioPrev, exec, playerctl previous"
", XF86MonBrightnessDown, exec, brightnessctl s 10%-"
", XF86MonBrightnessUp, exec, brightnessctl s 10%+"
];
bindm = [
"$mod, mouse:272, movewindow"
"alt, mouse:272, resizewindow"
];
layerrule = [
"noanim, walker"
];
windowrule = [
"float, class:^(waypaper)"
"float, class:^(Ryujinx)"
"suppressevent maximize, class:.*"
"nofocus, class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0"
];
};
}

70
home/nixvim/coding.nix Normal file
View File

@ -0,0 +1,70 @@
{ pkgs, ... }:
{
programs.nixvim = {
diagnostic.settings = {
virtual_text = true;
};
plugins = {
lsp = {
enable = true;
inlayHints = true;
servers = {
bashls.enable = true;
clangd.enable = true;
clangd.package = null;
nixd.enable = true;
};
};
conform-nvim = {
enable = true;
settings = {
format_on_save = {
lspFormat = "fallback";
timeoutMs = 500;
};
formatters_by_ft = {
lua = [ "stylua" ];
nix = [ "nixfmt" ];
python = [ "ruff_format" ];
javascript = [ "prettier" ];
typescript = [ "prettier" ];
svelte = [ "prettier" ];
css = [ "prettier" ];
json = [ "prettier" ];
html = [ "prettier" ];
};
};
};
cmp = {
enable = true;
autoEnableSources = true;
settings = {
sources = [
{ name = "nvim_lsp"; }
{ name = "path"; }
{ name = "buffer"; }
];
mapping = {
"<C-b>" = "cmp.mapping.scroll_docs(-4)";
"<C-f>" = "cmp.mapping.scroll_docs(4)";
"<C-Space>" = "cmp.mapping.complete()";
"<C-e>" = "cmp.mapping.abort()";
"<CR>" = "cmp.mapping.confirm({ select = true })";
"<Tab>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
"<S-Tab>" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})";
};
window.completion.border = "rounded";
window.documentation.border = "rounded";
};
};
};
};
}

75
home/nixvim/keymaps.nix Normal file
View File

@ -0,0 +1,75 @@
{
programs.nixvim.keymaps = [
{
key = "<ESC>";
mode = "t";
action = ''<C-\><C-n>'';
options.silent = true;
}
{
key = "<A-1>";
mode = "n";
action = ":BufferLineGoToBuffer 1<CR>";
}
{
key = "<A-2>";
mode = "n";
action = ":BufferLineGoToBuffer 2<CR>";
}
{
key = "<A-3>";
mode = "n";
action = ":BufferLineGoToBuffer 3<CR>";
}
{
key = "<A-4>";
mode = "n";
action = ":BufferLineGoToBuffer 4<CR>";
}
{
key = "<A-5>";
mode = "n";
action = ":BufferLineGoToBuffer 5<CR>";
}
{
key = "<A-6>";
mode = "n";
action = ":BufferLineGoToBuffer 6<CR>";
}
{
key = "<A-7>";
mode = "n";
action = ":BufferLineGoToBuffer 7<CR>";
}
{
key = "<A-8>";
mode = "n";
action = ":BufferLineGoToBuffer 8<CR>";
}
{
key = "<A-9>";
mode = "n";
action = ":BufferLineGoToBuffer 9<CR>";
}
{
key = "<A-0>";
mode = "n";
action = ":BufferLineGoToBuffer last<CR>";
}
{
key = "<A-S-e>";
mode = "n";
action = ":NvimTreeFocus<CR>";
}
{
key = "<A-e>";
mode = "n";
action = ":NvimTreeToggle<CR>";
}
{
key = "<C-F>";
mode = "n";
action = "<Cmd>lua vim.lsp.buf.format()<CR>";
}
];
}

30
home/nixvim/nixvim.nix Normal file
View File

@ -0,0 +1,30 @@
{
config,
pkgs,
lib,
...
}:
{
imports = [
./plugins.nix
./keymaps.nix
./coding.nix
];
programs.nixvim = {
enable = true;
extraPackages = with pkgs; [
nixd
nixpkgs-fmt
];
globals.mapleader = " ";
defaultEditor = true;
wrapRc = true;
opts = {
number = true;
relativenumber = true;
shiftwidth = 4;
termguicolors = true;
cursorline = true;
};
};
}

152
home/nixvim/plugins.nix Normal file
View File

@ -0,0 +1,152 @@
{
programs.nixvim.plugins = {
neocord.enable = true;
colorizer.enable = true;
nvim-autopairs.enable = true;
treesitter = {
enable = true;
settings = {
highlighting.enable = true;
auto_install = true;
ignore_install = [ "ipkg" ];
};
};
alpha = {
enable = true;
settings.layout = [
{
type = "padding";
val = 20;
}
{
type = "text";
val = [
" "
" "
" "
" "
" "
" "
];
opts = {
position = "center";
hl = "Type";
};
}
{
type = "padding";
val = 2;
}
{
type = "group";
val = [
{
type = "button";
val = " new file";
on_press.__raw = "function() vim.cmd[[ene]] end";
opts = {
position = "center";
hl = "Keyword";
};
}
{
type = "padding";
val = 2;
}
{
type = "button";
val = " search files";
on_press.__raw = "function() vim.cmd[[Telescope find_files]] end";
opts = {
position = "center";
hl = "Keyword";
};
}
{
type = "padding";
val = 2;
}
{
type = "button";
val = " live grep";
on_press.__raw = "function() vim.cmd[[Telescope live_grep]] end";
opts = {
position = "center";
hl = "Keyword";
};
}
{
type = "padding";
val = 2;
}
{
type = "button";
val = " quit neovim";
on_press.__raw = "function() vim.cmd[[qa]] end";
opts = {
position = "center";
hl = "Keyword";
};
}
];
opts = {
position = "center";
hl = "Keyword";
};
}
];
};
nvim-tree.enable = true;
telescope = {
enable = true;
settings = {
pickers = {
find_files = {
find_command = [ "fd" "--unrestricted" "--no-ignore" ];
};
};
defaults = {
sorting_strategy = "ascending";
selection_caret = "> ";
};
};
keymaps = {
"<leader>fg" = "live_grep";
"<leader>ff" = "find_files";
};
};
lualine = {
enable = true;
settings = {
options = {
section_separators = {
left = "";
right = "";
a = "";
b = "";
c = "";
x = "";
y = "";
z = "";
};
};
sections = {
lualine_a = [ "mode" ];
lualine_b = [ "branch" ];
lualine_c = [ "filename" ];
lualine_x = [ "diagnostics" "filetype" ];
lualine_y = [ "progress" ];
lualine_z = [ "location" ];
};
};
};
bufferline.enable = true;
web-devicons.enable = true;
};
}

82
home/programs.nix Normal file
View File

@ -0,0 +1,82 @@
{
config,
pkgs,
...
}:
{
home.packages = with pkgs; [
nixfmt
google-chrome
swww
waypaper
nemo
cava
pavucontrol
brightnessctl
hyprshot
evince
dconf
fd
wofi
ripgrep
];
programs.git = {
enable = true;
settings = {
user.name = "lucy";
user.email = "lucykaufmann@protonmail.com";
};
};
programs.spicetify.enable = true;
programs.foot = {
enable = true;
settings = {
cursor = {
style = "underline";
};
main = {
pad = "20x20";
initial-window-size-pixels = "800x600";
};
};
};
programs.fuzzel = {
enable = true;
settings = {
main = {
lines = 10;
horizontal-pad = 30;
vertical-pad = 15;
};
border = {
width = 2;
radius = 0;
};
};
};
programs.vesktop = {
enable = true;
settings = {
staticTitle = true;
arRPC = true;
};
vencord.settings.plugins = {
MessageLogger.enabled = true;
MessageClickActions.enabled = true;
};
};
services.dunst = {
enable = true;
settings = {
global = {
offset = "10x32";
corner_radius = config.wayland.windowManager.hyprland.settings.decoration.rounding;
frame_width = config.wayland.windowManager.hyprland.settings.general.border_size;
};
};
};
}

16
home/stylix.nix Normal file
View File

@ -0,0 +1,16 @@
{
config,
pkgs,
...
}:
{
stylix = {
image = ./wallpaper.png;
targets = {
waybar.enable = true;
waybar.addCss = false;
hyprland.enable = true;
hyprland.hyprpaper.enable = false;
};
};
}

BIN
home/wallpaper.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

152
home/waybar.nix Normal file
View File

@ -0,0 +1,152 @@
{ config, ... }:
{
programs.waybar = {
enable = true;
systemd.enable = true;
style = ''
* {
font-family: "0xProto Nerd Font Propo";
font-size: 14px;
font-weight: 600;
}
window#waybar {
background-color: transparent;
}
#workspaces button {
all: unset;
padding: 1px 6px;
margin: 2px;
color: alpha(@base05, 0.5);
border-radius: 1em;
}
#workspaces button.active {
color: @base00;
background-color: @base05;
}
#workspaces {
margin: 0px;
padding: 2px;
background-color: @base00;
border-radius: 1em;
}
#mpris,
#backlight,
#tray,
#pulseaudio,
#window,
#upower,
#clock,
#power-profiles-daemon {
margin: 0px;
padding: 2px 14px;
border-radius: 1em;
background-color: @base00;
color: @base05;
}
#tray {
padding: 0px 6px 0px 6px;
}
window#waybar.empty #window {
background: none;
}
'';
settings = {
mainBar = {
layer = "top";
position = "top";
margin-top = 5;
margin-right = 5;
margin-left = 5;
spacing = 5;
modules-left = [
"hyprland/workspaces"
"hyprland/window"
];
modules-right = [
"mpris"
"backlight"
"pulseaudio"
"upower"
"power-profiles-daemon"
"clock"
"tray"
];
"mpris" = {
player = "spotify";
format = "{title} - {artist}";
};
"hyprland/window" = {
format = "{}";
max-length = 40;
};
"tray" = {
spacing = 10;
icon-size = 16;
};
"hyprland/workspaces" = {
format = "{name}";
};
"upower" = {
format = "{percentage}";
format-alt = "{time}";
icon-size = 12;
hide-if-empty = true;
tooltip = false;
tooltip-spacing = 20;
};
"power-profiles-daemon" = {
format = "{profile}";
format-tooltip = "Power profile: {profile}\nDriver: {driver}";
};
"backlight" = {
format = "{icon} {percent}%";
format-icons = [
""
""
""
""
""
""
""
""
""
];
};
"pulseaudio" = {
format = "{icon} {volume}%";
format-muted = "󰝟 {volume}%";
on-click = "pavucontrol";
format-icons = [
"󰕿"
"󰖀"
"󰕾"
];
};
"clock" = {
interval = 1;
format = "{:%H:%M:%S | %d.%m.%Y}";
format-alt = "{:%H:%M:%S | %d.%m.%Y}";
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
};
};
};
};
}

54
stylix.nix Normal file
View File

@ -0,0 +1,54 @@
{
config,
pkgs,
...
}:
{
stylix.opacity = {
terminal = 0.8;
desktop = 1.0;
popups = 1.0;
};
stylix.cursor = {
name = "macOS";
package = pkgs.apple-cursor;
size = 24;
};
stylix.icons = {
enable = true;
dark = "Papirus-Dark";
light = "Papirus-Light";
package = pkgs.papirus-icon-theme;
};
stylix = {
enable = true;
autoEnable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml";
polarity = "dark";
image = ./home/wallpaper.png;
fonts = {
sizes = {
terminal = 10;
popups = 10;
desktop = 10;
};
serif = {
package = config.stylix.fonts.monospace.package;
name = config.stylix.fonts.monospace.name;
};
sansSerif = {
package = config.stylix.fonts.monospace.package;
name = config.stylix.fonts.monospace.name;
};
monospace = {
package = pkgs.nerd-fonts._0xproto;
name = "0xProto Nerd Font Propo";
};
emoji = {
package = pkgs.noto-fonts-color-emoji;
name = "Noto Color Emoji";
};
};
};
}