From a4e5b89f0e884306517516dad7f731fe5f722690 Mon Sep 17 00:00:00 2001 From: tulg Date: Mon, 20 Oct 2025 22:09:41 +0300 Subject: [PATCH] alejandra, nix lsp --- flake.nix | 153 +++++++++++++++--------------- hosts/archangel/configuration.nix | 68 +++++++------ modules/home.nix | 87 +++++++++-------- 3 files changed, 157 insertions(+), 151 deletions(-) diff --git a/flake.nix b/flake.nix index 7b8b6fa..e622505 100644 --- a/flake.nix +++ b/flake.nix @@ -23,79 +23,84 @@ }; }; - outputs = { self, nixpkgs, home-manager, nix-colors, disko, ... } @ inputs: - let - system = "x86_64-linux"; - pkgs = import nixpkgs { - inherit system; - config.allowUnfree = true; - }; - in - { - nixosConfigurations.virgil = nixpkgs.lib.nixosSystem { - inherit system; - specialArgs = { inherit inputs; }; - modules = [ - ./hosts/virgil/configuration.nix - home-manager.nixosModules.home-manager - inputs.disko.nixosModules.disko - { - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - extraSpecialArgs = { inherit inputs nix-colors; }; - backupFileExtension = "backup"; - - users.tulg = { - imports = [ ./modules/home.nix ]; - }; - }; - } - ]; - }; - - nixosConfigurations.archangel = nixpkgs.lib.nixosSystem { - inherit system; - specialArgs = { inherit inputs; }; - modules = [ - ./hosts/archangel/configuration.nix - home-manager.nixosModules.home-manager - inputs.disko.nixosModules.disko - { - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - extraSpecialArgs = { inherit inputs nix-colors; }; - backupFileExtension = "backup"; - - users.tulg = { - imports = [ ./modules/home.nix ]; - }; - }; - } - ]; - }; - #placeholder - nixosConfigurations.phoenix = nixpkgs.lib.nixosSystem { - inherit system; - specialArgs = { inherit inputs; }; - modules = [ - ./hosts/phoenix/configuration.nix - home-manager.nixosModules.home-manager - inputs.disko.nixosModules.disko - { - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - extraSpecialArgs = { inherit inputs nix-colors; }; - backupFileExtension = "backup"; - - users.tulg = { - imports = [ ./modules/home.nix ]; - }; - }; - } - ]; - }; + outputs = { + self, + nixpkgs, + home-manager, + nix-colors, + disko, + ... + } @ inputs: let + system = "x86_64-linux"; + pkgs = import nixpkgs { + inherit system; + config.allowUnfree = true; }; + in { + nixosConfigurations.virgil = nixpkgs.lib.nixosSystem { + inherit system; + specialArgs = {inherit inputs;}; + modules = [ + ./hosts/virgil/configuration.nix + home-manager.nixosModules.home-manager + inputs.disko.nixosModules.disko + { + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + extraSpecialArgs = {inherit inputs nix-colors;}; + backupFileExtension = "backup"; + + users.tulg = { + imports = [./modules/home.nix]; + }; + }; + } + ]; + }; + + nixosConfigurations.archangel = nixpkgs.lib.nixosSystem { + inherit system; + specialArgs = {inherit inputs;}; + modules = [ + ./hosts/archangel/configuration.nix + home-manager.nixosModules.home-manager + inputs.disko.nixosModules.disko + { + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + extraSpecialArgs = {inherit inputs nix-colors;}; + backupFileExtension = "backup"; + + users.tulg = { + imports = [./modules/home.nix]; + }; + }; + } + ]; + }; + #placeholder + nixosConfigurations.phoenix = nixpkgs.lib.nixosSystem { + inherit system; + specialArgs = {inherit inputs;}; + modules = [ + ./hosts/phoenix/configuration.nix + home-manager.nixosModules.home-manager + inputs.disko.nixosModules.disko + { + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + extraSpecialArgs = {inherit inputs nix-colors;}; + backupFileExtension = "backup"; + + users.tulg = { + imports = [./modules/home.nix]; + }; + }; + } + ]; + }; + }; } diff --git a/hosts/archangel/configuration.nix b/hosts/archangel/configuration.nix index d2794ab..b12dc2e 100644 --- a/hosts/archangel/configuration.nix +++ b/hosts/archangel/configuration.nix @@ -1,17 +1,17 @@ # 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, self, ... }: - { - imports = - [ # Include the results of the hardware scan. -# ./disko.nix - ./hardware-configuration.nix - ]; - - + config, + pkgs, + self, + ... +}: { + imports = [ + # Include the results of the hardware scan. + # ./disko.nix + ./hardware-configuration.nix + ]; # Bootloader. boot.loader.systemd-boot.enable = true; @@ -20,8 +20,8 @@ networking = { hostName = "archangel"; nameservers = ["127.0.0.1" "::1"]; - }; - + }; + services.dnscrypt-proxy2 = { enable = true; settings = { @@ -37,7 +37,7 @@ ]; }; - networking.networkmanager.enable = true; # Enables wireless support via wpa_supplicant. + networking.networkmanager.enable = true; # Enables wireless support via wpa_supplicant. # Configure network proxy if necessary # networking.proxy.default = "http://user:password@proxy:port/"; @@ -51,14 +51,14 @@ # Select internationalisation properties. services.getty.autologinUser = "tulg"; programs.hyprland = { - enable = true; - xwayland.enable = true; + enable = true; + xwayland.enable = true; }; # Define a user account. Don't forget to set a password with ‘passwd’. users.users.tulg = { isNormalUser = true; description = "Tulga"; - extraGroups = [ "networkmanager" "network ""wheel" ]; + extraGroups = ["networkmanager" "network " "wheel"]; packages = with pkgs; []; }; @@ -67,10 +67,10 @@ # List packages installed in system profile. To search, run: # $ nix search wget environment.systemPackages = with pkgs; [ - # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. - # wget - git - rose-pine-gtk-theme + # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. + # wget + git + rose-pine-gtk-theme ]; # Some programs need SUID wrappers, can be configured further or are @@ -87,11 +87,11 @@ services.openssh = { enable = true; settings = { - PasswordAuthentication = true; - PermitRootLogin = "yes"; + PasswordAuthentication = true; + PermitRootLogin = "yes"; }; - }; - fonts = { + }; + fonts = { packages = with pkgs; [ noto-fonts noto-fonts-cjk-sans @@ -109,14 +109,13 @@ fontconfig = { enable = true; defaultFonts = { - sansSerif = [ "Fira Sans Regular" ]; - serif = [ "Fira Sans Regular" ]; - monospace = [ "Fira Mono Regular" ]; + sansSerif = ["Fira Sans Regular"]; + serif = ["Fira Sans Regular"]; + monospace = ["Fira Mono Regular"]; }; }; }; - powerManagement.powertop.enable = true; services = { power-profiles-daemon.enable = false; @@ -130,18 +129,18 @@ STOP_CHARGE_THRESH_BAT0 = 95; }; }; - }; + }; # Open ports in the firewall. # networking.firewall.allowedTCPPorts = [ ... ]; # networking.firewall.allowedUDPPorts = [ ... ]; # Or disable the firewall altogether. # networking.firewall.enable = false; - users.users."root".openssh.authorizedKeys.keys = [ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDIefprdYz4gFgBqGlrkycWcTYxFttQHRjDQmREtQTiGyqK1gQiB4z4Cbiayt7Emq224sbaobQPlNSyhlBCSo/Wf0bmZMz8NwNdwhFSkDnyD6LPaHg8fv9FXnWW0wBMl4oSD2wfGbMQBrecjgHXfJ64UiHyyhDllDDtWGgoY75wwfWHzX/NiGaEi0LHCQ8dsgp7H+BhssTkJPZbv6BJcA34yfb6dISjvW2S/QGKMwgYr9ArfGLUTWPbj+EbL7Bf9VsTFe9nP+FnYqEu4+oBIbY2heXWA+FCi0zxmMY4oYJxT5cJi1nffVOxboKLm4kIT93gv1WdcDiQDVdy5sJ1q0gJyiRt1HfJW4l8jn36VJ0FvdGmRliOTzSfeER0gbIsOcxeArHRV3ff/CoSocnSs0To5vFKgjlGwhdE8sJsqILgZnIoKwVvOXuDOz/RhbdBPpVsG7upk7bLJtLv9P5h0h/gUIWA1iktaYBSDL0UofjSrfNhZH6M0P+soIuooanSlVGivTlASw1pd+gjvebbc9ksvGZVqPQT0XegIvZkwfu8moERZUqv/xhNcyWTEGfFKoeHt5ub8Ac0LOe9Ak6N+p8xDjTdkmUgte5J/CNL1JL3JA/iqocAo+VvmIbPatbrOwUNcROOS3WeFg8MfNrbDyYCVNbZWAyM6wwfLB2fIUB2jw== tulg@highcommand" # content of authorized_keys file + users.users."root".openssh.authorizedKeys.keys = [ + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDIefprdYz4gFgBqGlrkycWcTYxFttQHRjDQmREtQTiGyqK1gQiB4z4Cbiayt7Emq224sbaobQPlNSyhlBCSo/Wf0bmZMz8NwNdwhFSkDnyD6LPaHg8fv9FXnWW0wBMl4oSD2wfGbMQBrecjgHXfJ64UiHyyhDllDDtWGgoY75wwfWHzX/NiGaEi0LHCQ8dsgp7H+BhssTkJPZbv6BJcA34yfb6dISjvW2S/QGKMwgYr9ArfGLUTWPbj+EbL7Bf9VsTFe9nP+FnYqEu4+oBIbY2heXWA+FCi0zxmMY4oYJxT5cJi1nffVOxboKLm4kIT93gv1WdcDiQDVdy5sJ1q0gJyiRt1HfJW4l8jn36VJ0FvdGmRliOTzSfeER0gbIsOcxeArHRV3ff/CoSocnSs0To5vFKgjlGwhdE8sJsqILgZnIoKwVvOXuDOz/RhbdBPpVsG7upk7bLJtLv9P5h0h/gUIWA1iktaYBSDL0UofjSrfNhZH6M0P+soIuooanSlVGivTlASw1pd+gjvebbc9ksvGZVqPQT0XegIvZkwfu8moERZUqv/xhNcyWTEGfFKoeHt5ub8Ac0LOe9Ak6N+p8xDjTdkmUgte5J/CNL1JL3JA/iqocAo+VvmIbPatbrOwUNcROOS3WeFg8MfNrbDyYCVNbZWAyM6wwfLB2fIUB2jw== tulg@highcommand" # content of authorized_keys file ]; - users.users."tulg".openssh.authorizedKeys.keys = [ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDIefprdYz4gFgBqGlrkycWcTYxFttQHRjDQmREtQTiGyqK1gQiB4z4Cbiayt7Emq224sbaobQPlNSyhlBCSo/Wf0bmZMz8NwNdwhFSkDnyD6LPaHg8fv9FXnWW0wBMl4oSD2wfGbMQBrecjgHXfJ64UiHyyhDllDDtWGgoY75wwfWHzX/NiGaEi0LHCQ8dsgp7H+BhssTkJPZbv6BJcA34yfb6dISjvW2S/QGKMwgYr9ArfGLUTWPbj+EbL7Bf9VsTFe9nP+FnYqEu4+oBIbY2heXWA+FCi0zxmMY4oYJxT5cJi1nffVOxboKLm4kIT93gv1WdcDiQDVdy5sJ1q0gJyiRt1HfJW4l8jn36VJ0FvdGmRliOTzSfeER0gbIsOcxeArHRV3ff/CoSocnSs0To5vFKgjlGwhdE8sJsqILgZnIoKwVvOXuDOz/RhbdBPpVsG7upk7bLJtLv9P5h0h/gUIWA1iktaYBSDL0UofjSrfNhZH6M0P+soIuooanSlVGivTlASw1pd+gjvebbc9ksvGZVqPQT0XegIvZkwfu8moERZUqv/xhNcyWTEGfFKoeHt5ub8Ac0LOe9Ak6N+p8xDjTdkmUgte5J/CNL1JL3JA/iqocAo+VvmIbPatbrOwUNcROOS3WeFg8MfNrbDyYCVNbZWAyM6wwfLB2fIUB2jw== tulg@highcommand" # content of authorized_keys file + users.users."tulg".openssh.authorizedKeys.keys = [ + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDIefprdYz4gFgBqGlrkycWcTYxFttQHRjDQmREtQTiGyqK1gQiB4z4Cbiayt7Emq224sbaobQPlNSyhlBCSo/Wf0bmZMz8NwNdwhFSkDnyD6LPaHg8fv9FXnWW0wBMl4oSD2wfGbMQBrecjgHXfJ64UiHyyhDllDDtWGgoY75wwfWHzX/NiGaEi0LHCQ8dsgp7H+BhssTkJPZbv6BJcA34yfb6dISjvW2S/QGKMwgYr9ArfGLUTWPbj+EbL7Bf9VsTFe9nP+FnYqEu4+oBIbY2heXWA+FCi0zxmMY4oYJxT5cJi1nffVOxboKLm4kIT93gv1WdcDiQDVdy5sJ1q0gJyiRt1HfJW4l8jn36VJ0FvdGmRliOTzSfeER0gbIsOcxeArHRV3ff/CoSocnSs0To5vFKgjlGwhdE8sJsqILgZnIoKwVvOXuDOz/RhbdBPpVsG7upk7bLJtLv9P5h0h/gUIWA1iktaYBSDL0UofjSrfNhZH6M0P+soIuooanSlVGivTlASw1pd+gjvebbc9ksvGZVqPQT0XegIvZkwfu8moERZUqv/xhNcyWTEGfFKoeHt5ub8Ac0LOe9Ak6N+p8xDjTdkmUgte5J/CNL1JL3JA/iqocAo+VvmIbPatbrOwUNcROOS3WeFg8MfNrbDyYCVNbZWAyM6wwfLB2fIUB2jw== tulg@highcommand" # content of authorized_keys file ]; # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions @@ -149,8 +148,7 @@ # 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). - nix.settings.experimental-features = [ "nix-command" "flakes"]; + nix.settings.experimental-features = ["nix-command" "flakes"]; services.displayManager.ly.enable = true; system.stateVersion = "25.05"; # Did you read the comment? - } diff --git a/modules/home.nix b/modules/home.nix index 1e9ba38..f9de7ad 100644 --- a/modules/home.nix +++ b/modules/home.nix @@ -1,17 +1,20 @@ -{ config, lib, pkgs, inputs, ... }: - -let - dots = "${config.home.homeDirectory}/nixdots/config"; +{ + config, + lib, + pkgs, + inputs, + ... +}: let + dots = "${config.home.homeDirectory}/nixdots/config"; symlink = path: config.lib.file.mkOutOfStoreSymlink path; spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.system}; -in -{ - imports = [ - inputs.zen-browser.homeModules.twilight - inputs.spicetify-nix.homeManagerModules.default - +in { + imports = [ + inputs.zen-browser.homeModules.twilight + inputs.spicetify-nix.homeManagerModules.default ]; - # Home Manager settings + # Home Manager settings + nix.nixPath = ["nixpkgs=${inputs.nixpkgs}"]; home.username = "tulg"; home.homeDirectory = "/home/tulg"; home.stateVersion = "25.05"; @@ -21,17 +24,19 @@ in nwg-look rose-pine-gtk-theme xfce.thunar + alejandra arc-theme - tmux + tmux fastfetch btop -# spotify + # spotify pavucontrol wl-clipboard hyprcursor parsec-bin file-roller hyprpolkitagent + pkgs.nixd swww grim slurp @@ -45,20 +50,20 @@ in libsForQt5.qtstyleplugin-kvantum libsForQt5.qt5ct rose-pine-kvantum - ]; - programs.vscode.enable = true; - programs.zen-browser.enable = true; - programs.zen-browser.policies = { + ]; + programs.vscode.enable = true; + programs.zen-browser.enable = true; + programs.zen-browser.policies = { DisableAppUpdate = true; DisableTelemetry = true; - }; - - programs.spicetify = { + }; + + programs.spicetify = { enable = true; theme = spicePkgs.themes.ziro; colorScheme = "rose-pine-moon"; - }; - + }; + xdg.configFile."hypr" = { source = symlink "${dots}/hypr"; recursive = true; @@ -90,23 +95,24 @@ in }; programs.firefox.enable = true; programs.bash = { - enable = true; + enable = true; - shellAliases = { - a = "echo ids"; + shellAliases = { + a = "echo ids"; + rb = "nixos-rebuild switch --flake"; + }; + + bashrcExtra = '' + PS1="\[\e[38;5;177m\]\u\[\e[38;5;220m\]@\[\e[38;5;1m\]\h \[\e[38;5;33m\]\w \[\033[0m\]\$ " + ''; }; - bashrcExtra = '' - PS1="\[\e[38;5;177m\]\u\[\e[38;5;220m\]@\[\e[38;5;1m\]\h \[\e[38;5;33m\]\w \[\033[0m\]\$ " - ''; -}; - programs.git = { enable = true; userName = "tulg"; userEmail = "tulg@protonmail.ch"; - }; - + }; + gtk = { enable = true; @@ -119,12 +125,9 @@ in name = "Papirus-Dark"; package = pkgs.papirus-icon-theme; }; - }; - - - home.pointerCursor = { + home.pointerCursor = { gtk.enable = true; x11.enable = true; package = pkgs.bibata-cursors; @@ -132,13 +135,13 @@ in size = 16; }; nixpkgs.config.qt5 = { - enable = true; - platformTheme = "qt5ct"; - style = { + enable = true; + platformTheme = "qt5ct"; + style = { package = pkgs.rose-pine-kvantum; name = "Rose-pine"; - }; - }; + }; + }; # # home.sessionVariables = { @@ -146,7 +149,7 @@ in GTK_THEME = "rose-pine"; QT_QPA_PLATFORMTHEME = "qt5ct"; QT_QPA_PLATFORM = "wayland"; -# PS1="\[\e[38;5;177m\]\u\[\e[38;5;220m\]@\[\e[38;5;1m\]\h \[\e[38;5;33m\]\w \[\033[0m\]$ "; + # PS1="\[\e[38;5;177m\]\u\[\e[38;5;220m\]@\[\e[38;5;1m\]\h \[\e[38;5;33m\]\w \[\033[0m\]$ "; }; xdg.portal = {