commit 5bce8472bc11d00dc3bc0f0fbe1e9b903e1b2fa5 Author: lucy Date: Fri Jul 3 00:02:10 2026 +0200 initial commit diff --git a/configuration.nix b/configuration.nix new file mode 100644 index 0000000..a813703 --- /dev/null +++ b/configuration.nix @@ -0,0 +1,112 @@ +{ config, pkgs, ... }: +{ + imports = [ + ./hardware-configuration.nix + ./easyroam.nix + ./stylix.nix + ./nixvim.nix + ]; + + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + boot.kernelPackages = pkgs.linuxPackages_latest; + nix.settings.experimental-features = [ + "nix-command" + "flakes" + ]; + networking.hostName = "nixos"; # Define your hostname. + networking.networkmanager.enable = true; + networking.wireless.enable = true; + time.timeZone = "Europe/Berlin"; + 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"; + }; + services.xserver.enable = true; + services.displayManager.gdm.enable = true; + services.desktopManager.gnome.enable = true; + services.xserver.xkb = { + layout = "eu"; + variant = ""; + }; + security.doas.enable = true; + security.sudo.enable = false; + security.doas.extraRules = [ + { + users = [ + "lucy" + "root" + ]; + keepEnv = true; + persist = true; # Optional, only require password verification a single time + } + ]; + + programs.bash.interactiveShellInit = '' + complete -F _command doas + ''; + # 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; + }; + + # Enable touchpad support (enabled default in most desktopManager). + services.libinput.enable = true; + hardware.opentabletdriver = { + enable = true; + daemon.enable = true; + }; + + # Define a user account. Don't forget to set a password with ‘passwd’. + fonts.packages = with pkgs; [ + noto-fonts + noto-fonts-cjk-sans + noto-fonts-color-emoji + iosevka + nerd-fonts.symbols-only + ]; + users.users."lucy" = { + isNormalUser = true; + description = "lucy"; + extraGroups = [ + "networkmanager" + "wheel" + ]; + }; + + # Allow unfree packages + nixpkgs.config.allowUnfree = true; + + environment.systemPackages = with pkgs; [ + git + clang-tools + gcc + cargo + lua-language-server + rust-analyzer + nixd + nixfmt + gnomeExtensions.user-themes + gnomeExtensions.blur-my-shell + ]; + + # DO NOT CHANGE!! + system.stateVersion = "26.05"; # Did you read the comment? + +} diff --git a/easyroam.nix b/easyroam.nix new file mode 100644 index 0000000..dc052fd --- /dev/null +++ b/easyroam.nix @@ -0,0 +1,13 @@ +{ + services.easyroam = { + enable = true; + pkcsFile = "/home/lucy/.certs/nixos-manual.p12"; + privateKeyPassPhrase = "67"; + networkmanager = { + enable = true; + }; + wpa-supplicant = { + enable = true; + }; + }; +} diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..23395b1 --- /dev/null +++ b/flake.lock @@ -0,0 +1,548 @@ +{ + "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": 1765809053, + "narHash": "sha256-XCUQLoLfBJ8saWms2HCIj4NEN+xNsWBlU1NrEPcQG4s=", + "owner": "tomyun", + "repo": "base16-fish", + "rev": "86cbea4dca62e08fb7fd83a70e96472f92574782", + "type": "github" + }, + "original": { + "owner": "tomyun", + "repo": "base16-fish", + "rev": "86cbea4dca62e08fb7fd83a70e96472f92574782", + "type": "github" + } + }, + "base16-helix": { + "flake": false, + "locked": { + "lastModified": 1776754714, + "narHash": "sha256-E3OAK27smtATTmX45uoTSRsVD+Y+ZiVVfgM/tjpbtYg=", + "owner": "tinted-theming", + "repo": "base16-helix", + "rev": "4d508123037e7851ad36ebf7d9c48b0e9e1eb581", + "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": 1779670703, + "narHash": "sha256-UdfMivNMwCCqQsYDg5pSz8X2IOaOrIZLIIy+Bg3CO2o=", + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "rev": "942159e73e40bf785816f7f1f5feed9ef3d7c8f9", + "type": "github" + }, + "original": { + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "type": "github" + } + }, + "flake-compat": { + "locked": { + "lastModified": 1733328505, + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", + "revCount": 69, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" + } + }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1778716662, + "narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1778716662, + "narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_3": { + "inputs": { + "nixpkgs-lib": [ + "stylix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1778716662, + "narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "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": { + "lastModified": 1767737596, + "narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=", + "owner": "GNOME", + "repo": "gnome-shell", + "rev": "ef02db02bf0ff342734d525b5767814770d85b49", + "type": "github" + }, + "original": { + "owner": "GNOME", + "repo": "gnome-shell", + "rev": "ef02db02bf0ff342734d525b5767814770d85b49", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1782964450, + "narHash": "sha256-2rwNd77TzZ4sDDvMam0IXFXN5IfC35mifoeKS0uAc/4=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "ebc87daabc8d3f595e9a8b67107eaaa8115ad582", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "nix-easyroam": { + "inputs": { + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1781526487, + "narHash": "sha256-pZ8xS3GGXUyzEN8JicUSpW7qRa22wPIPHOO15pS7jd4=", + "owner": "0x5a4", + "repo": "nix-easyroam", + "rev": "e519fa1db92ee5f3ffb1aabe504ca9863febc6dc", + "type": "github" + }, + "original": { + "owner": "0x5a4", + "repo": "nix-easyroam", + "type": "github" + } + }, + "nixcord": { + "inputs": { + "flake-compat": "flake-compat", + "flake-parts": "flake-parts", + "nixpkgs": "nixpkgs_3", + "nixpkgs-nixcord": "nixpkgs-nixcord" + }, + "locked": { + "lastModified": 1782989434, + "narHash": "sha256-jZl7iUaYxMiaECMisifcrxM5zW6NTQgxrTWS6RHOOxk=", + "owner": "FlameFlag", + "repo": "nixcord", + "rev": "fc88a8644fe0798de630f375626a1b12460e5934", + "type": "github" + }, + "original": { + "owner": "FlameFlag", + "repo": "nixcord", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1782175435, + "narHash": "sha256-EMzXKmnOtBQ2MnvpiNOm7E+kOMvdPrIKaeg52Tip2Uk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "89570f24e97e614aa34aa9ab1c927b6578a43775", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1777168982, + "narHash": "sha256-GOkGPcboWE9BmGCRMLX3worL4EMnsnG8MyKmXNeYuhQ=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "f5901329dade4a6ea039af1433fb087bd9c1fe14", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, + "nixpkgs-nixcord": { + "locked": { + "lastModified": 1781216227, + "narHash": "sha256-9mUW6gNwoN2SWc/l0fW4svPNOulXLl8ijqKyeSOGgJE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a0374025a863d007d98e3297f6aa46cc3141c2f0", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-26.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1735268880, + "narHash": "sha256-7QEFnKkzD13SPxs+UFR5bUFN2fRw+GlL0am72ZjNre4=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "7cc0bff31a3a705d3ac4fdceb030a17239412210", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1781216227, + "narHash": "sha256-9mUW6gNwoN2SWc/l0fW4svPNOulXLl8ijqKyeSOGgJE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a0374025a863d007d98e3297f6aa46cc3141c2f0", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-26.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1782918843, + "narHash": "sha256-ETYnV9U7Sr+A45dohzZdfCZKOss4qrTkO+wgNZNvEc0=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "e8273b29fe1390ec8d4603f2477357555291432e", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { + "locked": { + "lastModified": 1781607440, + "narHash": "sha256-rxO+uc/KFbSJp+pgyXRuAX6QlG9hJdnt0BXpEQRXY+U=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "3e41b24abd260e8f71dbe2f5737d24122f972158", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixvim": { + "inputs": { + "flake-parts": "flake-parts_2", + "nixpkgs": "nixpkgs_5", + "systems": "systems" + }, + "locked": { + "lastModified": 1782919563, + "narHash": "sha256-vVYo8fbgTgXBU47dLmnUcfetOI/MLui+wXU44x3ZeqM=", + "owner": "nix-community", + "repo": "nixvim", + "rev": "702008d2b3dd1d032a953e3bdd2532531aac0639", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixvim", + "type": "github" + } + }, + "nur": { + "inputs": { + "flake-parts": [ + "stylix", + "flake-parts" + ], + "nixpkgs": [ + "stylix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1780281641, + "narHash": "sha256-M/+hUKoKbHXpV0xGVfELbN1Ds1aoe3pL5p5/t46YhVo=", + "owner": "nix-community", + "repo": "NUR", + "rev": "30f9ae2f04174de63ba8bcf3580ca90843b28a01", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NUR", + "type": "github" + } + }, + "root": { + "inputs": { + "home-manager": "home-manager", + "nix-easyroam": "nix-easyroam", + "nixcord": "nixcord", + "nixpkgs": "nixpkgs_4", + "nixvim": "nixvim", + "stylix": "stylix" + } + }, + "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_3", + "gnome-shell": "gnome-shell", + "nixpkgs": [ + "nixpkgs" + ], + "nur": "nur", + "systems": "systems_2", + "tinted-kitty": "tinted-kitty", + "tinted-schemes": "tinted-schemes", + "tinted-tmux": "tinted-tmux", + "tinted-zed": "tinted-zed" + }, + "locked": { + "lastModified": 1782920579, + "narHash": "sha256-ZXFvKfh6u0s+jGiT7sbq8ZTyxNgSASkrrllWBuARl4I=", + "owner": "nix-community", + "repo": "stylix", + "rev": "8bca95e381f44aea7f1bd98dd10ee0ca7b26e8c1", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "stylix", + "type": "github" + } + }, + "systems": { + "locked": { + "lastModified": 1774449309, + "narHash": "sha256-brhZ8DmuGtzkCYHJg4HEd602amKm89Y9ytsFZ5uWD1w=", + "owner": "nix-systems", + "repo": "default", + "rev": "c29398b59d2048c4ab79345812849c9bd15e9150", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "ref": "future-26.11", + "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" + } + }, + "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": 1777806186, + "narHash": "sha256-PDF0/wObw4nIsSBeXVYLsloXOiphXCgIdsrNcVXguKs=", + "owner": "tinted-theming", + "repo": "schemes", + "rev": "0c94645546f4f3ddac77a1a5fce54eb95bf50795", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "schemes", + "type": "github" + } + }, + "tinted-tmux": { + "flake": false, + "locked": { + "lastModified": 1778379944, + "narHash": "sha256-wPDFzMGSlARlw0Sfsn48Q2+jPSfk6N0Ng6BC/d+7Q24=", + "owner": "tinted-theming", + "repo": "tinted-tmux", + "rev": "fe0203a198690e71a5ff11e08812a4673de3678d", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-tmux", + "type": "github" + } + }, + "tinted-zed": { + "flake": false, + "locked": { + "lastModified": 1778378178, + "narHash": "sha256-OXPXRIQgGwV77HjYRryOHguh4ALX96jkg+tseLkGgHA=", + "owner": "tinted-theming", + "repo": "base16-zed", + "rev": "9cd816033ff969415b190722cddf134e78a5665f", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-zed", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..4d1a68a --- /dev/null +++ b/flake.nix @@ -0,0 +1,52 @@ +{ + description = "NixOS configuration"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; + home-manager.url = "github:nix-community/home-manager"; + nix-easyroam.url = "github:0x5a4/nix-easyroam"; + nixvim.url = "github:nix-community/nixvim"; + nixcord.url = "github:FlameFlag/nixcord"; + stylix = { + url = "github:nix-community/stylix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + + outputs = + inputs@{ + nixpkgs, + home-manager, + nix-easyroam, + stylix, + nixvim, + nixcord, + ... + }: + { + nixosConfigurations.nixos = nixpkgs.lib.nixosSystem { + modules = [ + ./configuration.nix + ./nixvim.nix + nix-easyroam.nixosModules.nix-easyroam + stylix.nixosModules.stylix + nixvim.nixosModules.nixvim + home-manager.nixosModules.home-manager { + home-manager.users.lucy = ./home/home.nix; +# home-manager.useUserPackages = true; +# home-manager.useGlobalPkgs = true; + home-manager.extraSpecialArgs = { inherit inputs; }; + } + ]; + }; + homeConfigurations."lucy" = home-manager.lib.homeManagerConfiguration { + pkgs = nixpkgs.legacyPackages.x86_64-linux; + modules = [ + ./home/home.nix + stylix.homeModules.stylix + nixvim.homeModules.nixvim + nixcord.homeModules.nixcord + ]; + }; + }; +} diff --git a/hardware-configuration.nix b/hardware-configuration.nix new file mode 100644 index 0000000..c3d407a --- /dev/null +++ b/hardware-configuration.nix @@ -0,0 +1,33 @@ +# 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/624609f3-6d1c-4e9c-adcb-0c4d66de25c3"; + fsType = "xfs"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/298C-5081"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/9d98be55-ea0d-465f-967e-29c83c4127a9"; } + ]; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/home/home.nix b/home/home.nix new file mode 100644 index 0000000..d642d97 --- /dev/null +++ b/home/home.nix @@ -0,0 +1,53 @@ +{ + inputs, + config, + pkgs, + ... +}: + +{ + imports = [ + ./stylix.nix + inputs.nixcord.homeModules.nixcord + ]; + # Home Manager needs a bit of information about you and the + # paths it should manage. + home.packages = with pkgs; [ + rnote + ]; + home.username = "lucy"; + home.homeDirectory = "/home/lucy"; + services.syncthing.enable = true; + programs.nixcord = { + enable = true; + discord.vencord.enable = true; + config = { + plugins = { + messageClickActions.enable = true; + messageLogger.enable = true; + }; + }; + }; + nixpkgs.config.allowUnfree = true; + programs.firefox = { + enable = true; + profiles = { + lucy = { + isDefault = true; + extensions.force = true; + path = "lucy"; + id = 0; + settings = { + default = true; + "toolkit.legacyUserProfileCustomizations.stylesheets" = true; + }; + }; + }; + }; + programs.ghostty = { + enable = true; + }; + # DANGER ZONE + programs.home-manager.enable = true; + home.stateVersion = "26.05"; +} diff --git a/home/stylix.nix b/home/stylix.nix new file mode 100644 index 0000000..29b65ee --- /dev/null +++ b/home/stylix.nix @@ -0,0 +1,16 @@ +{ + stylix = { + enable = true; + autoEnable = false; + targets = { + gnome.enable = true; + gtk.enable = true; + ghostty.enable = true; + firefox.enable = true; + firefox.profileNames = [ "lucy" ]; + firefox.colorTheme.enable = true; + nixcord.enable = true; + }; + }; + +} diff --git a/nixvim.nix b/nixvim.nix new file mode 100644 index 0000000..fcbe839 --- /dev/null +++ b/nixvim.nix @@ -0,0 +1,136 @@ +{ + config, + lib, + pkgs, + ... +}: +{ + programs.nixvim = { + enable = true; + extraConfigLuaPost = '' + local map = vim.keymap.set + for i = 1, 10 do + map('n', '', ' LualineBuffersJump! ' .. i .. '') + end + ''; + opts = { + relativenumber = true; + tabstop = 8; + shiftwidth = 8; + expandtab = true; + swapfile = false; + }; + extraPackages = with pkgs; [ + nixfmt + ]; + lsp = { + inlayHints.enable = true; + servers = { + clangd.enable = true; + qmlls.enable = true; + lua-language-server.enable = true; + rust_analyzer.enable = true; + nixd = { + enable = true; + config = { + formatting = { + command = "nixfmt"; + }; + }; + }; + }; + }; + plugins = { + lspconfig.enable = true; + blink-cmp = { + enable = true; + }; + blink-indent = { + enable = true; + }; + cord = { + enable = true; + settings = { + display = { + theme = "atom"; + }; + editor = { + tooltip = "ur gay :3"; + }; + }; + }; + lualine = { + enable = true; + settings = { + options = { + section_separators = { + left = ""; + right = ""; + }; + component_separators = { + left = ""; + right = ""; + }; + }; + sections = { + lualine_a = [ + "mode" + ]; + lualine_b = [ + "filename" + "filetype" + ]; + lualine_c = [ + "diagnostics" + ]; + lualine_x = [ + "lsp_status" + ]; + lualine_y = [ ]; + lualine_z = [ + "location" + ]; + }; + tabline = { + lualine_a = [ "buffers" ]; + lualine_b = [ "branch" ]; + lualine_c = [ ]; + lualine_x = [ ]; + lualine_y = [ ]; + lualine_z = [ "tabs" ]; + }; + }; + }; + }; + globals = { + mapleader = " "; + }; + diagnostic = { + settings = { + virtual_text = { + spacing = 4; + source = true; + }; + }; + }; + keymaps = [ + { + key = ""; + action = " lua vim.lsp.buf.format() "; + } + { + key = "t"; + action = " terminal "; + } + { + key = ""; + action = ""; + mode = "t"; + } + { + key = ""; + action = " lua bdelete! "; + } + ]; + }; +} diff --git a/stylix.nix b/stylix.nix new file mode 100644 index 0000000..85661f9 --- /dev/null +++ b/stylix.nix @@ -0,0 +1,62 @@ +{ + config, + lib, + pkgs, + ... +}: +{ + stylix.opacity = { + terminal = 0.8; + desktop = 1.0; + popups = 1.0; + }; + stylix.cursor = { + name = "capitaine-cursors"; + package = pkgs.capitaine-cursors; + size = 24; + }; + stylix.icons = { + enable = true; + dark = "Papirus-Dark"; + light = "Papirus-Light"; + package = pkgs.papirus-icon-theme; + }; + stylix = { + enable = true; + autoEnable = false; + base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-soft.yaml"; + polarity = "dark"; + image = ./wallpaper.png; + targets = { + console.enable = true; + gnome.enable = true; + gtk.enable = true; + qt.enable = true; + nixvim.enable = true; + }; + fonts = { + sizes = { + terminal = 12; + 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.iosevka; + name = "Iosevka"; + }; + + emoji = { + package = pkgs.noto-fonts-color-emoji; + name = "Noto Color Emoji"; + }; + }; + }; +} diff --git a/wallpaper.png b/wallpaper.png new file mode 100644 index 0000000..8bd45d6 Binary files /dev/null and b/wallpaper.png differ