alejandra, nix lsp

This commit is contained in:
tulg 2025-10-20 22:09:41 +03:00
parent d44a2ff849
commit a4e5b89f0e
3 changed files with 157 additions and 151 deletions

153
flake.nix
View file

@ -23,79 +23,84 @@
}; };
}; };
outputs = { self, nixpkgs, home-manager, nix-colors, disko, ... } @ inputs: outputs = {
let self,
system = "x86_64-linux"; nixpkgs,
pkgs = import nixpkgs { home-manager,
inherit system; nix-colors,
config.allowUnfree = true; disko,
}; ...
in } @ inputs: let
{ system = "x86_64-linux";
nixosConfigurations.virgil = nixpkgs.lib.nixosSystem { pkgs = import nixpkgs {
inherit system; inherit system;
specialArgs = { inherit inputs; }; config.allowUnfree = true;
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 ];
};
};
}
];
};
}; };
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];
};
};
}
];
};
};
} }

View file

@ -1,17 +1,17 @@
# Edit this configuration file to define what should be installed on # Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, self, ... }:
{ {
imports = config,
[ # Include the results of the hardware scan. pkgs,
# ./disko.nix self,
./hardware-configuration.nix ...
]; }: {
imports = [
# Include the results of the hardware scan.
# ./disko.nix
./hardware-configuration.nix
];
# Bootloader. # Bootloader.
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
@ -20,8 +20,8 @@
networking = { networking = {
hostName = "archangel"; hostName = "archangel";
nameservers = ["127.0.0.1" "::1"]; nameservers = ["127.0.0.1" "::1"];
}; };
services.dnscrypt-proxy2 = { services.dnscrypt-proxy2 = {
enable = true; enable = true;
settings = { 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 # Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/"; # networking.proxy.default = "http://user:password@proxy:port/";
@ -51,14 +51,14 @@
# Select internationalisation properties. # Select internationalisation properties.
services.getty.autologinUser = "tulg"; services.getty.autologinUser = "tulg";
programs.hyprland = { programs.hyprland = {
enable = true; enable = true;
xwayland.enable = true; xwayland.enable = true;
}; };
# Define a user account. Don't forget to set a password with passwd. # Define a user account. Don't forget to set a password with passwd.
users.users.tulg = { users.users.tulg = {
isNormalUser = true; isNormalUser = true;
description = "Tulga"; description = "Tulga";
extraGroups = [ "networkmanager" "network ""wheel" ]; extraGroups = ["networkmanager" "network " "wheel"];
packages = with pkgs; []; packages = with pkgs; [];
}; };
@ -67,10 +67,10 @@
# List packages installed in system profile. To search, run: # List packages installed in system profile. To search, run:
# $ nix search wget # $ nix search wget
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
# wget # wget
git git
rose-pine-gtk-theme rose-pine-gtk-theme
]; ];
# Some programs need SUID wrappers, can be configured further or are # Some programs need SUID wrappers, can be configured further or are
@ -87,11 +87,11 @@
services.openssh = { services.openssh = {
enable = true; enable = true;
settings = { settings = {
PasswordAuthentication = true; PasswordAuthentication = true;
PermitRootLogin = "yes"; PermitRootLogin = "yes";
}; };
}; };
fonts = { fonts = {
packages = with pkgs; [ packages = with pkgs; [
noto-fonts noto-fonts
noto-fonts-cjk-sans noto-fonts-cjk-sans
@ -109,14 +109,13 @@
fontconfig = { fontconfig = {
enable = true; enable = true;
defaultFonts = { defaultFonts = {
sansSerif = [ "Fira Sans Regular" ]; sansSerif = ["Fira Sans Regular"];
serif = [ "Fira Sans Regular" ]; serif = ["Fira Sans Regular"];
monospace = [ "Fira Mono Regular" ]; monospace = ["Fira Mono Regular"];
}; };
}; };
}; };
powerManagement.powertop.enable = true; powerManagement.powertop.enable = true;
services = { services = {
power-profiles-daemon.enable = false; power-profiles-daemon.enable = false;
@ -130,18 +129,18 @@
STOP_CHARGE_THRESH_BAT0 = 95; STOP_CHARGE_THRESH_BAT0 = 95;
}; };
}; };
}; };
# Open ports in the firewall. # Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ]; # networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ]; # networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether. # Or disable the firewall altogether.
# networking.firewall.enable = false; # networking.firewall.enable = false;
users.users."root".openssh.authorizedKeys.keys = [ 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 "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 = [ 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 "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 # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # 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. # this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option # Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). # (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; services.displayManager.ly.enable = true;
system.stateVersion = "25.05"; # Did you read the comment? system.stateVersion = "25.05"; # Did you read the comment?
} }

View file

@ -1,17 +1,20 @@
{ config, lib, pkgs, inputs, ... }: {
config,
let lib,
dots = "${config.home.homeDirectory}/nixdots/config"; pkgs,
inputs,
...
}: let
dots = "${config.home.homeDirectory}/nixdots/config";
symlink = path: config.lib.file.mkOutOfStoreSymlink path; symlink = path: config.lib.file.mkOutOfStoreSymlink path;
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.system}; spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.system};
in in {
{ imports = [
imports = [ inputs.zen-browser.homeModules.twilight
inputs.zen-browser.homeModules.twilight inputs.spicetify-nix.homeManagerModules.default
inputs.spicetify-nix.homeManagerModules.default
]; ];
# Home Manager settings # Home Manager settings
nix.nixPath = ["nixpkgs=${inputs.nixpkgs}"];
home.username = "tulg"; home.username = "tulg";
home.homeDirectory = "/home/tulg"; home.homeDirectory = "/home/tulg";
home.stateVersion = "25.05"; home.stateVersion = "25.05";
@ -21,17 +24,19 @@ in
nwg-look nwg-look
rose-pine-gtk-theme rose-pine-gtk-theme
xfce.thunar xfce.thunar
alejandra
arc-theme arc-theme
tmux tmux
fastfetch fastfetch
btop btop
# spotify # spotify
pavucontrol pavucontrol
wl-clipboard wl-clipboard
hyprcursor hyprcursor
parsec-bin parsec-bin
file-roller file-roller
hyprpolkitagent hyprpolkitagent
pkgs.nixd
swww swww
grim grim
slurp slurp
@ -45,20 +50,20 @@ in
libsForQt5.qtstyleplugin-kvantum libsForQt5.qtstyleplugin-kvantum
libsForQt5.qt5ct libsForQt5.qt5ct
rose-pine-kvantum rose-pine-kvantum
]; ];
programs.vscode.enable = true; programs.vscode.enable = true;
programs.zen-browser.enable = true; programs.zen-browser.enable = true;
programs.zen-browser.policies = { programs.zen-browser.policies = {
DisableAppUpdate = true; DisableAppUpdate = true;
DisableTelemetry = true; DisableTelemetry = true;
}; };
programs.spicetify = { programs.spicetify = {
enable = true; enable = true;
theme = spicePkgs.themes.ziro; theme = spicePkgs.themes.ziro;
colorScheme = "rose-pine-moon"; colorScheme = "rose-pine-moon";
}; };
xdg.configFile."hypr" = { xdg.configFile."hypr" = {
source = symlink "${dots}/hypr"; source = symlink "${dots}/hypr";
recursive = true; recursive = true;
@ -90,23 +95,24 @@ in
}; };
programs.firefox.enable = true; programs.firefox.enable = true;
programs.bash = { programs.bash = {
enable = true; enable = true;
shellAliases = { shellAliases = {
a = "echo ids"; 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 = { programs.git = {
enable = true; enable = true;
userName = "tulg"; userName = "tulg";
userEmail = "tulg@protonmail.ch"; userEmail = "tulg@protonmail.ch";
}; };
gtk = { gtk = {
enable = true; enable = true;
@ -119,12 +125,9 @@ in
name = "Papirus-Dark"; name = "Papirus-Dark";
package = pkgs.papirus-icon-theme; package = pkgs.papirus-icon-theme;
}; };
}; };
home.pointerCursor = {
home.pointerCursor = {
gtk.enable = true; gtk.enable = true;
x11.enable = true; x11.enable = true;
package = pkgs.bibata-cursors; package = pkgs.bibata-cursors;
@ -132,13 +135,13 @@ in
size = 16; size = 16;
}; };
nixpkgs.config.qt5 = { nixpkgs.config.qt5 = {
enable = true; enable = true;
platformTheme = "qt5ct"; platformTheme = "qt5ct";
style = { style = {
package = pkgs.rose-pine-kvantum; package = pkgs.rose-pine-kvantum;
name = "Rose-pine"; name = "Rose-pine";
}; };
}; };
# #
# #
home.sessionVariables = { home.sessionVariables = {
@ -146,7 +149,7 @@ in
GTK_THEME = "rose-pine"; GTK_THEME = "rose-pine";
QT_QPA_PLATFORMTHEME = "qt5ct"; QT_QPA_PLATFORMTHEME = "qt5ct";
QT_QPA_PLATFORM = "wayland"; 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 = { xdg.portal = {