Updated flake
This commit is contained in:
parent
feea0e16f3
commit
7c209c2a6f
7 changed files with 268 additions and 2830 deletions
12
flake.lock
generated
12
flake.lock
generated
|
|
@ -638,18 +638,16 @@
|
||||||
"nvf": "nvf"
|
"nvf": "nvf"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"dir": "nixos/modules/neovim",
|
"lastModified": 1736335130,
|
||||||
"lastModified": 1736204012,
|
"narHash": "sha256-9EZtqVX0QrR3sjKYSU7Q+zczwTRq6TWei7NedCM6v5A=",
|
||||||
"narHash": "sha256-vfhrQ5M887eQ5pb2/6azQE+NzlphHAIZPEBqBF7ozAc=",
|
|
||||||
"owner": "kylekrein",
|
"owner": "kylekrein",
|
||||||
"repo": "nixos-config",
|
"repo": "neovim",
|
||||||
"rev": "cbbe4aea64911e2eb34b603106137e3969695e50",
|
"rev": "05a67cf92bf0fe80a8ff857f5c9e8ccd0750f63a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"dir": "nixos/modules/neovim",
|
|
||||||
"owner": "kylekrein",
|
"owner": "kylekrein",
|
||||||
"repo": "nixos-config",
|
"repo": "neovim",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||||||
};
|
};
|
||||||
neovim = {
|
neovim = {
|
||||||
url = "github:kylekrein/nixos-config?dir=nixos/modules/neovim";
|
url = "github:kylekrein/neovim";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
hyprland.url = "github:hyprwm/Hyprland";
|
hyprland.url = "github:hyprwm/Hyprland";
|
||||||
|
|
|
||||||
|
|
@ -1,40 +1,52 @@
|
||||||
# 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, lib, pkgs, hwconfig, first-nixos-install, inputs, ... }:
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
hwconfig,
|
||||||
|
first-nixos-install,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports =
|
imports =
|
||||||
[
|
[
|
||||||
inputs.sops-nix.nixosModules.sops
|
inputs.sops-nix.nixosModules.sops
|
||||||
inputs.stylix.nixosModules.stylix
|
inputs.stylix.nixosModules.stylix
|
||||||
inputs.nixos-facter-modules.nixosModules.facter
|
inputs.nixos-facter-modules.nixosModules.facter
|
||||||
inputs.home-manager.nixosModules.default
|
inputs.home-manager.nixosModules.default
|
||||||
inputs.disko.nixosModules.default
|
inputs.disko.nixosModules.default
|
||||||
|
|
||||||
./modules/firefox
|
./modules/firefox
|
||||||
./modules/services/autoupgrade
|
./modules/services/autoupgrade
|
||||||
./modules/sops
|
./modules/sops
|
||||||
./hosts/${hwconfig.hostname}
|
./hosts/${hwconfig.hostname}
|
||||||
]
|
]
|
||||||
++ lib.optional (hwconfig.useImpermanence) ./modules/impermanence;
|
++ lib.optional (hwconfig.useImpermanence) ./modules/impermanence;
|
||||||
facter.reportPath = ./hosts/${hwconfig.hostname}/facter.json;
|
facter.reportPath = ./hosts/${hwconfig.hostname}/facter.json;
|
||||||
kylekrein.services.autoUpgrade = {
|
kylekrein.services.autoUpgrade = {
|
||||||
enable = true;
|
enable = true;
|
||||||
pushUpdates = if hwconfig.hostname == "kylekrein-homepc" then true else false;
|
pushUpdates =
|
||||||
configDir = "/etc/nixos-config";
|
if hwconfig.hostname == "kylekrein-homepc"
|
||||||
user = "root";
|
then true
|
||||||
};
|
else false;
|
||||||
|
configDir = "/etc/nixos-config";
|
||||||
|
user = "root";
|
||||||
|
};
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
kernelPackages = lib.mkDefault pkgs.linuxPackages_latest;
|
kernelPackages = lib.mkDefault pkgs.linuxPackages_latest;
|
||||||
|
|
||||||
plymouth = {
|
plymouth = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
loader = {
|
loader = {
|
||||||
systemd-boot.enable = true;
|
systemd-boot.enable = true;
|
||||||
efi.canTouchEfiVariables = if hwconfig.hostname != "kylekrein-mac" then true else false;
|
efi.canTouchEfiVariables =
|
||||||
|
if hwconfig.hostname != "kylekrein-mac"
|
||||||
|
then true
|
||||||
|
else false;
|
||||||
};
|
};
|
||||||
# Enable "Silent Boot"
|
# Enable "Silent Boot"
|
||||||
consoleLogLevel = 0;
|
consoleLogLevel = 0;
|
||||||
|
|
@ -95,109 +107,107 @@
|
||||||
users = {
|
users = {
|
||||||
mutableUsers = false;
|
mutableUsers = false;
|
||||||
users = {
|
users = {
|
||||||
root = {
|
root = {
|
||||||
# disable root login here, and also when installing nix by running nixos-install --no-root-passwd
|
# disable root login here, and also when installing nix by running nixos-install --no-root-passwd
|
||||||
# https://discourse.nixos.org/t/how-to-disable-root-user-account-in-configuration-nix/13235/3
|
# https://discourse.nixos.org/t/how-to-disable-root-user-account-in-configuration-nix/13235/3
|
||||||
hashedPassword = "!"; # disable root logins, nothing hashes to !
|
hashedPassword = "!"; # disable root logins, nothing hashes to !
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
qt = {
|
qt = {
|
||||||
enable = true;
|
enable = true;
|
||||||
platformTheme = "qt5ct";
|
platformTheme = "qt5ct";
|
||||||
style = "kvantum";
|
style = "kvantum";
|
||||||
};
|
};
|
||||||
|
|
||||||
# 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; [
|
||||||
(catppuccin-sddm.override {
|
(catppuccin-sddm.override {
|
||||||
flavor = "mocha";
|
flavor = "mocha";
|
||||||
# font = "";
|
# font = "";
|
||||||
fontSize = "16";
|
fontSize = "16";
|
||||||
#background;
|
#background;
|
||||||
loginBackground = false;
|
loginBackground = false;
|
||||||
})
|
})
|
||||||
joplin-desktop
|
kdenlive
|
||||||
kdenlive
|
system-config-printer
|
||||||
super-productivity
|
libreoffice
|
||||||
system-config-printer
|
helvum
|
||||||
libreoffice
|
killall
|
||||||
helvum
|
nix-output-monitor
|
||||||
killall
|
eza
|
||||||
nix-output-monitor
|
fd
|
||||||
eza
|
(pkgs.writeShellScriptBin "root-files" ''
|
||||||
fd
|
${pkgs.fd}/bin/fd --one-file-system --base-directory / --type f --hidden --exclude "{tmp,etc/passwd}"
|
||||||
(pkgs.writeShellScriptBin "root-files" ''
|
'') #https://www.reddit.com/r/NixOS/comments/1d1apm0/comment/l5tgbwz/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button
|
||||||
${pkgs.fd}/bin/fd --one-file-system --base-directory / --type f --hidden --exclude "{tmp,etc/passwd}"
|
gparted
|
||||||
'') #https://www.reddit.com/r/NixOS/comments/1d1apm0/comment/l5tgbwz/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button
|
exfatprogs
|
||||||
gparted
|
kitty
|
||||||
exfatprogs
|
yazi
|
||||||
kitty
|
tealdeer
|
||||||
yazi
|
fzf
|
||||||
tealdeer
|
lazygit
|
||||||
fzf
|
kdePackages.qtwayland
|
||||||
lazygit
|
#libsForQt5.qt5.qtwayland
|
||||||
kdePackages.qtwayland
|
#libsForQt5.qt5.qtsvg
|
||||||
#libsForQt5.qt5.qtwayland
|
kdePackages.qtsvg
|
||||||
#libsForQt5.qt5.qtsvg
|
#kio-fuse #to mount remote filesystems via FUSE
|
||||||
kdePackages.qtsvg
|
#libsForQt5.kio-extras #extra protocols support (sftp, fish and more)
|
||||||
#kio-fuse #to mount remote filesystems via FUSE
|
kdePackages.kio-fuse #to mount remote filesystems via FUSE
|
||||||
#libsForQt5.kio-extras #extra protocols support (sftp, fish and more)
|
kdePackages.kio-extras #extra protocols support (sftp, fish and more)
|
||||||
kdePackages.kio-fuse #to mount remote filesystems via FUSE
|
fastfetch
|
||||||
kdePackages.kio-extras #extra protocols support (sftp, fish and more)
|
firefox
|
||||||
fastfetch
|
telegram-desktop
|
||||||
firefox
|
vlc
|
||||||
telegram-desktop
|
wl-clipboard
|
||||||
vlc
|
git
|
||||||
wl-clipboard
|
git-credential-manager
|
||||||
git
|
egl-wayland
|
||||||
git-credential-manager
|
kitty-themes
|
||||||
egl-wayland
|
btop
|
||||||
kitty-themes
|
solaar
|
||||||
btop
|
|
||||||
solaar
|
|
||||||
|
|
||||||
#kde
|
#kde
|
||||||
kdePackages.kate
|
kdePackages.kate
|
||||||
kdePackages.gwenview
|
kdePackages.gwenview
|
||||||
kdePackages.breeze-icons
|
kdePackages.breeze-icons
|
||||||
kdePackages.breeze
|
kdePackages.breeze
|
||||||
kdePackages.ark
|
kdePackages.ark
|
||||||
kdePackages.qtstyleplugin-kvantum
|
kdePackages.qtstyleplugin-kvantum
|
||||||
kdePackages.okular
|
kdePackages.okular
|
||||||
kdePackages.kcalc
|
kdePackages.kcalc
|
||||||
polkit-kde-agent
|
polkit-kde-agent
|
||||||
kdePackages.kdeconnect-kde
|
kdePackages.kdeconnect-kde
|
||||||
kdePackages.kdesdk-thumbnailers
|
kdePackages.kdesdk-thumbnailers
|
||||||
kdePackages.kdegraphics-thumbnailers
|
kdePackages.kdegraphics-thumbnailers
|
||||||
catppuccin-kvantum
|
catppuccin-kvantum
|
||||||
kdePackages.kservice
|
kdePackages.kservice
|
||||||
kdePackages.kdbusaddons
|
kdePackages.kdbusaddons
|
||||||
kdePackages.kfilemetadata
|
kdePackages.kfilemetadata
|
||||||
kdePackages.kconfig
|
kdePackages.kconfig
|
||||||
kdePackages.kcoreaddons
|
kdePackages.kcoreaddons
|
||||||
kdePackages.kcrash
|
kdePackages.kcrash
|
||||||
kdePackages.kguiaddons
|
kdePackages.kguiaddons
|
||||||
kdePackages.ki18n
|
kdePackages.ki18n
|
||||||
kdePackages.kitemviews
|
kdePackages.kitemviews
|
||||||
kdePackages.kwidgetsaddons
|
kdePackages.kwidgetsaddons
|
||||||
kdePackages.kwindowsystem
|
kdePackages.kwindowsystem
|
||||||
shared-mime-info
|
shared-mime-info
|
||||||
#kdePackages.plasma-workspace
|
#kdePackages.plasma-workspace
|
||||||
|
|
||||||
#kde support tools
|
#kde support tools
|
||||||
libsForQt5.qt5ct
|
libsForQt5.qt5ct
|
||||||
qt6ct
|
qt6ct
|
||||||
kdePackages.kimageformats
|
kdePackages.kimageformats
|
||||||
kdePackages.dolphin
|
kdePackages.dolphin
|
||||||
kdePackages.dolphin-plugins
|
kdePackages.dolphin-plugins
|
||||||
# user packages
|
# user packages
|
||||||
obs-studio
|
obs-studio
|
||||||
vesktop
|
vesktop
|
||||||
vscode-fhs
|
vscode-fhs
|
||||||
inputs.neovim.packages.${hwconfig.system}.default
|
inputs.neovim.packages.${hwconfig.system}.default
|
||||||
];
|
];
|
||||||
programs.kdeconnect.enable = true;
|
programs.kdeconnect.enable = true;
|
||||||
programs.kdeconnect.package = lib.mkDefault pkgs.kdePackages.kdeconnect-kde;
|
programs.kdeconnect.package = lib.mkDefault pkgs.kdePackages.kdeconnect-kde;
|
||||||
|
|
@ -209,114 +219,116 @@
|
||||||
flake = "/etc/nixos-config";
|
flake = "/etc/nixos-config";
|
||||||
};
|
};
|
||||||
fonts.packages = with pkgs; [
|
fonts.packages = with pkgs; [
|
||||||
nerd-fonts.jetbrains-mono
|
nerd-fonts.jetbrains-mono
|
||||||
font-awesome
|
font-awesome
|
||||||
hack-font
|
hack-font
|
||||||
];
|
];
|
||||||
environment.sessionVariables = {
|
environment.sessionVariables = {
|
||||||
NIXOS_OZONE_WL = "1";
|
NIXOS_OZONE_WL = "1";
|
||||||
MANPAGER = "nvim +Man!";
|
MANPAGER = "nvim +Man!";
|
||||||
EDITOR = "nvim";
|
EDITOR = "nvim";
|
||||||
};
|
};
|
||||||
hardware = {
|
hardware = {
|
||||||
graphics = {
|
graphics = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
logitech.wireless.enable = true;
|
logitech.wireless.enable = true;
|
||||||
bluetooth = {
|
bluetooth = {
|
||||||
enable = true;
|
enable = true;
|
||||||
powerOnBoot = true;
|
powerOnBoot = true;
|
||||||
settings = {
|
settings = {
|
||||||
General = {
|
General = {
|
||||||
Experimental = true;
|
Experimental = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
services.blueman.enable = true;
|
services.blueman.enable = true;
|
||||||
|
|
||||||
security.polkit.enable = true;
|
security.polkit.enable = true;
|
||||||
|
|
||||||
|
|
||||||
programs.steam = {
|
programs.steam = {
|
||||||
enable = (hwconfig.system == "x86_64-linux");
|
enable = hwconfig.system == "x86_64-linux";
|
||||||
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
||||||
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
||||||
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
|
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
|
||||||
};
|
};
|
||||||
|
|
||||||
#programs.thunar = {
|
#programs.thunar = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
# plugins = with pkgs.xfce; [
|
# plugins = with pkgs.xfce; [
|
||||||
# thunar-archive-plugin
|
# thunar-archive-plugin
|
||||||
# thunar-volman
|
# thunar-volman
|
||||||
# ];
|
# ];
|
||||||
# };
|
# };
|
||||||
#programs.xfconf.enable = true; # so thunar can save config
|
#programs.xfconf.enable = true; # so thunar can save config
|
||||||
#services.gvfs.enable = true; # Mount, trash, and other functionalities
|
#services.gvfs.enable = true; # Mount, trash, and other functionalities
|
||||||
#services.tumbler.enable = true; # Thumbnail support for images
|
#services.tumbler.enable = true; # Thumbnail support for images
|
||||||
|
|
||||||
security.rtkit.enable = true;
|
security.rtkit.enable = true;
|
||||||
services.pipewire = {
|
services.pipewire = {
|
||||||
enable = true;
|
enable = true;
|
||||||
alsa.enable = true;
|
alsa.enable = true;
|
||||||
alsa.support32Bit = true;
|
alsa.support32Bit = true;
|
||||||
pulse.enable = true;
|
pulse.enable = true;
|
||||||
jack.enable = true;
|
jack.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
useGlobalPkgs = true;
|
useGlobalPkgs = true;
|
||||||
useUserPackages = true;
|
useUserPackages = true;
|
||||||
extraSpecialArgs = {inherit pkgs; inherit hwconfig; inherit first-nixos-install; inherit inputs;};
|
extraSpecialArgs = {
|
||||||
|
inherit pkgs;
|
||||||
|
inherit hwconfig;
|
||||||
|
inherit first-nixos-install;
|
||||||
|
inherit inputs;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
stylix = {
|
stylix = {
|
||||||
enable = true;
|
enable = true;
|
||||||
image = "${./modules/hyprland/wallpaper.jpg}";
|
image = "${./modules/hyprland/wallpaper.jpg}";
|
||||||
autoEnable = true;
|
autoEnable = true;
|
||||||
opacity = {
|
opacity = {
|
||||||
desktop = 0.5;
|
desktop = 0.5;
|
||||||
};
|
};
|
||||||
targets = {
|
targets = {
|
||||||
gtk.enable = true;
|
gtk.enable = true;
|
||||||
plymouth = {
|
plymouth = {
|
||||||
enable = true;
|
enable = true;
|
||||||
#logo = ./fastfetch/nixos.png;
|
#logo = ./fastfetch/nixos.png;
|
||||||
logoAnimated = false;
|
logoAnimated = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
fonts = {
|
fonts = {
|
||||||
sizes = {
|
sizes = {
|
||||||
applications = 14;
|
applications = 14;
|
||||||
desktop = 12;
|
desktop = 12;
|
||||||
popups = 12;
|
popups = 12;
|
||||||
terminal = 16;
|
terminal = 16;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
polarity = "dark";
|
polarity = "dark";
|
||||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
|
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.bash = {
|
programs.bash = {
|
||||||
shellAliases = {
|
shellAliases = {
|
||||||
ls = "${pkgs.eza}/bin/eza --icons=always";
|
ls = "${pkgs.eza}/bin/eza --icons=always";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
#printing
|
#printing
|
||||||
services.printing.enable = true;
|
services.printing.enable = true;
|
||||||
services.avahi = {
|
services.avahi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
nssmdns4 = true;
|
nssmdns4 = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#services.flatpak.enable = true;
|
#services.flatpak.enable = true;
|
||||||
#services.flatpak.packages = [
|
#services.flatpak.packages = [
|
||||||
# "flathub:app/org.kde.dolphin//stable"
|
# "flathub:app/org.kde.dolphin//stable"
|
||||||
# ];
|
# ];
|
||||||
|
|
||||||
|
|
||||||
# Some programs need SUID wrappers, can be configured further or are
|
# Some programs need SUID wrappers, can be configured further or are
|
||||||
# started in user sessions.
|
# started in user sessions.
|
||||||
|
|
@ -332,8 +344,8 @@
|
||||||
# services.openssh.enable = true;
|
# services.openssh.enable = true;
|
||||||
|
|
||||||
# Open ports in the firewall.
|
# Open ports in the firewall.
|
||||||
networking.firewall.allowedTCPPorts = [ 22 ];
|
networking.firewall.allowedTCPPorts = [22];
|
||||||
networking.firewall.allowedUDPPorts = [ 22 ];
|
networking.firewall.allowedUDPPorts = [22];
|
||||||
# Or disable the firewall altogether.
|
# Or disable the firewall altogether.
|
||||||
#networking.firewall.enable = false;
|
#networking.firewall.enable = false;
|
||||||
|
|
||||||
|
|
@ -347,17 +359,17 @@
|
||||||
|
|
||||||
services.xserver.enable = true;
|
services.xserver.enable = true;
|
||||||
services.displayManager.sddm = {
|
services.displayManager.sddm = {
|
||||||
enable = true;
|
enable = true;
|
||||||
theme = "catppuccin-mocha";
|
theme = "catppuccin-mocha";
|
||||||
package = pkgs.kdePackages.sddm;
|
package = pkgs.kdePackages.sddm;
|
||||||
wayland.enable = false;
|
wayland.enable = false;
|
||||||
};
|
};
|
||||||
nix = {
|
nix = {
|
||||||
settings = {
|
settings = {
|
||||||
experimental-features = ["nix-command" "flakes"];
|
experimental-features = ["nix-command" "flakes"];
|
||||||
auto-optimise-store = true;
|
auto-optimise-store = true;
|
||||||
substituters = ["https://hyprland.cachix.org" "https://nix-gaming.cachix.org" ];
|
substituters = ["https://hyprland.cachix.org" "https://nix-gaming.cachix.org"];
|
||||||
trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" "nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4="];
|
trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" "nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4="];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,44 +1,54 @@
|
||||||
{ config, lib, pkgs, hwconfig, first-nixos-install, username, inputs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
hwconfig,
|
||||||
|
first-nixos-install,
|
||||||
|
username,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
in {
|
||||||
imports =
|
imports =
|
||||||
[
|
[
|
||||||
./modules/fastfetch
|
./modules/fastfetch
|
||||||
./modules/tmux/home.nix
|
./modules/tmux/home.nix
|
||||||
] ++ lib.optional (hwconfig.useImpermanence) (import ./modules/impermanence/home.nix { inherit username; inherit inputs; } )
|
]
|
||||||
|
++ lib.optional (hwconfig.useImpermanence) (import ./modules/impermanence/home.nix {
|
||||||
|
inherit username;
|
||||||
|
inherit inputs;
|
||||||
|
})
|
||||||
++ lib.optional (config.programs.hyprland.enable) ./modules/hyprland/home.nix
|
++ lib.optional (config.programs.hyprland.enable) ./modules/hyprland/home.nix
|
||||||
++ lib.optional (builtins.pathExists ./homes/${username}) (import ./homes/${username} { inherit username; });
|
++ lib.optional (builtins.pathExists ./homes/${username}) (import ./homes/${username} {inherit username;});
|
||||||
# Home Manager needs a bit of information about you and the paths it should
|
# Home Manager needs a bit of information about you and the paths it should
|
||||||
# manage.
|
# manage.
|
||||||
home.username = username;
|
home.username = username;
|
||||||
home.homeDirectory = "/home/${username}";
|
home.homeDirectory = "/home/${username}";
|
||||||
stylix = {
|
stylix = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
qt = {
|
qt = {
|
||||||
enable = true;
|
enable = true;
|
||||||
platformTheme.name = "qtct";
|
platformTheme.name = "qtct";
|
||||||
style.name = "kvantum";
|
style.name = "kvantum";
|
||||||
};
|
};
|
||||||
#xdg.configFile."Kvantum/kvantum.kvconfig".source = (pkgs.formats.ini {}).generate "kvantum.kvconfig" {
|
#xdg.configFile."Kvantum/kvantum.kvconfig".source = (pkgs.formats.ini {}).generate "kvantum.kvconfig" {
|
||||||
# General.theme = "Catppuccin-Mocha";
|
# General.theme = "Catppuccin-Mocha";
|
||||||
# };
|
# };
|
||||||
#xdg.configFile = {
|
#xdg.configFile = {
|
||||||
# "Kvantum/kvantum.kvconfig".text = ''
|
# "Kvantum/kvantum.kvconfig".text = ''
|
||||||
# [General]
|
# [General]
|
||||||
# theme=catppuccin-mocha
|
# theme=catppuccin-mocha
|
||||||
# '';
|
# '';
|
||||||
|
|
||||||
# The important bit is here, links the theme directory from the package to a directory under `~/.config`
|
# The important bit is here, links the theme directory from the package to a directory under `~/.config`
|
||||||
# where Kvantum should find it.
|
# where Kvantum should find it.
|
||||||
# "Kvantum/catppuccin-mocha".source = "${pkgs.catppuccin-kvantum}/share/Kvantum/catppuccin-mocha";
|
# "Kvantum/catppuccin-mocha".source = "${pkgs.catppuccin-kvantum}/share/Kvantum/catppuccin-mocha";
|
||||||
#};
|
#};
|
||||||
|
|
||||||
programs.fzf = {
|
programs.fzf = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableBashIntegration = true;
|
enableBashIntegration = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.eza = {
|
programs.eza = {
|
||||||
|
|
@ -47,8 +57,8 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
#xdg.configFile."qt5ct/qt5ct.conf".source = (pkgs.formats.ini {}).generate "kvantum.kvconfig" {
|
#xdg.configFile."qt5ct/qt5ct.conf".source = (pkgs.formats.ini {}).generate "kvantum.kvconfig" {
|
||||||
# Appearance.icon_theme = "Breeze Dark";
|
# Appearance.icon_theme = "Breeze Dark";
|
||||||
# };
|
# };
|
||||||
|
|
||||||
# This value determines the Home Manager release that your configuration is
|
# This value determines the Home Manager release that your configuration is
|
||||||
# compatible with. This helps avoid breakage when a new Home Manager release
|
# compatible with. This helps avoid breakage when a new Home Manager release
|
||||||
|
|
@ -61,7 +71,7 @@
|
||||||
|
|
||||||
# The home.packages option allows you to install Nix packages into your
|
# The home.packages option allows you to install Nix packages into your
|
||||||
# environment.
|
# environment.
|
||||||
home.packages = with pkgs;[
|
home.packages = with pkgs; [
|
||||||
# # Adds the 'hello' command to your environment. It prints a friendly
|
# # Adds the 'hello' command to your environment. It prints a friendly
|
||||||
# # "Hello, world!" when run.
|
# # "Hello, world!" when run.
|
||||||
# pkgs.hello
|
# pkgs.hello
|
||||||
|
|
@ -83,22 +93,20 @@
|
||||||
#vscode-fhs
|
#vscode-fhs
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
font = {
|
font = {
|
||||||
#name = "JetBrainsMono Nerd Font";
|
#name = "JetBrainsMono Nerd Font";
|
||||||
#size = 16;
|
#size = 16;
|
||||||
};
|
|
||||||
settings = {
|
|
||||||
confirm_os_window_close = 0;
|
|
||||||
};
|
|
||||||
#shellIntegration.enableFishIntegration = true;
|
|
||||||
themeFile = "Catppuccin-Macchiato";
|
|
||||||
#Also available: Catppuccin-Frappe Catppuccin-Latte Catppuccin-Macchiato Catppuccin-Mocha
|
|
||||||
# See all available kitty themes at: https://github.com/kovidgoyal/kitty-themes/blob/46d9dfe230f315a6a0c62f4687f6b3da20fd05e4/themes.json
|
|
||||||
};
|
};
|
||||||
|
settings = {
|
||||||
|
confirm_os_window_close = 0;
|
||||||
|
};
|
||||||
|
#shellIntegration.enableFishIntegration = true;
|
||||||
|
themeFile = "Catppuccin-Macchiato";
|
||||||
|
#Also available: Catppuccin-Frappe Catppuccin-Latte Catppuccin-Macchiato Catppuccin-Mocha
|
||||||
|
# See all available kitty themes at: https://github.com/kovidgoyal/kitty-themes/blob/46d9dfe230f315a6a0c62f4687f6b3da20fd05e4/themes.json
|
||||||
|
};
|
||||||
|
|
||||||
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
||||||
# plain files is through 'home.file'.
|
# plain files is through 'home.file'.
|
||||||
|
|
|
||||||
2341
nixos/modules/neovim/flake.lock
generated
2341
nixos/modules/neovim/flake.lock
generated
File diff suppressed because it is too large
Load diff
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
description = "A neovim configuration";
|
|
||||||
|
|
||||||
inputs = {
|
|
||||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
|
||||||
nvf.url = "github:notashelf/nvf";
|
|
||||||
};
|
|
||||||
|
|
||||||
outputs = {
|
|
||||||
self,
|
|
||||||
nixpkgs,
|
|
||||||
nvf,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
packages.x86_64-linux.default =
|
|
||||||
(nvf.lib.neovimConfiguration {
|
|
||||||
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
|
||||||
modules = [./nvf-configuration.nix];
|
|
||||||
})
|
|
||||||
.neovim;
|
|
||||||
packages.aarch64-linux.default =
|
|
||||||
(nvf.lib.neovimConfiguration {
|
|
||||||
pkgs = nixpkgs.legacyPackages.aarch64-linux;
|
|
||||||
modules = [./nvf-configuration.nix];
|
|
||||||
})
|
|
||||||
.neovim;
|
|
||||||
packages.aarch64-darwin.default =
|
|
||||||
(nvf.lib.neovimConfiguration {
|
|
||||||
pkgs = nixpkgs.legacyPackages.aarch64-darwin;
|
|
||||||
modules = [./nvf-configuration.nix];
|
|
||||||
})
|
|
||||||
.neovim;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,205 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
vim = {
|
|
||||||
spellcheck.enable = true;
|
|
||||||
viAlias = true;
|
|
||||||
vimAlias = true;
|
|
||||||
shiftwidth = 16;
|
|
||||||
tabstop = 16;
|
|
||||||
useSystemClipboard = true;
|
|
||||||
lineNumberMode = "number";
|
|
||||||
|
|
||||||
languages = {
|
|
||||||
enableFormat = true;
|
|
||||||
enableLSP = true;
|
|
||||||
enableTreesitter = true;
|
|
||||||
|
|
||||||
nix.enable = true;
|
|
||||||
rust.enable = true;
|
|
||||||
clang.enable = true;
|
|
||||||
rust.crates.enable = true;
|
|
||||||
csharp.enable = true;
|
|
||||||
# Nim LSP is broken on Darwin and therefore
|
|
||||||
# should be disabled by default. Users may still enable
|
|
||||||
# `vim.languages.vim` to enable it, this does not restrict
|
|
||||||
# that.
|
|
||||||
# See: <https://github.com/PMunch/nimlsp/issues/178#issue-2128106096>
|
|
||||||
nim.enable = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
lsp = {
|
|
||||||
formatOnSave = true;
|
|
||||||
lspkind.enable = false;
|
|
||||||
lightbulb.enable = true;
|
|
||||||
lspsaga.enable = false;
|
|
||||||
trouble.enable = true;
|
|
||||||
lspSignature.enable = true;
|
|
||||||
otter-nvim.enable = true;
|
|
||||||
lsplines.enable = true;
|
|
||||||
nvim-docs-view.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
debugger = {
|
|
||||||
nvim-dap = {
|
|
||||||
enable = true;
|
|
||||||
ui.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
visuals = {
|
|
||||||
nvim-scrollbar.enable = true;
|
|
||||||
nvim-web-devicons.enable = true;
|
|
||||||
nvim-cursorline.enable = true;
|
|
||||||
cinnamon-nvim.enable = true;
|
|
||||||
fidget-nvim.enable = true;
|
|
||||||
|
|
||||||
highlight-undo.enable = true;
|
|
||||||
indent-blankline.enable = true;
|
|
||||||
|
|
||||||
# Fun
|
|
||||||
cellular-automaton.enable = false;
|
|
||||||
};
|
|
||||||
statusline = {
|
|
||||||
lualine = {
|
|
||||||
enable = true;
|
|
||||||
theme = "catppuccin";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
theme = {
|
|
||||||
enable = true;
|
|
||||||
name = "catppuccin";
|
|
||||||
style = "mocha";
|
|
||||||
transparent = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
autopairs.nvim-autopairs.enable = true;
|
|
||||||
|
|
||||||
autocomplete.nvim-cmp.enable = true;
|
|
||||||
snippets.luasnip.enable = true;
|
|
||||||
|
|
||||||
filetree = {
|
|
||||||
neo-tree = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
tabline = {
|
|
||||||
nvimBufferline.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
treesitter.context.enable = true;
|
|
||||||
|
|
||||||
binds = {
|
|
||||||
whichKey.enable = true;
|
|
||||||
cheatsheet.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
telescope.enable = true;
|
|
||||||
|
|
||||||
git = {
|
|
||||||
enable = true;
|
|
||||||
gitsigns.enable = true;
|
|
||||||
gitsigns.codeActions.enable = false; # throws an annoying debug message
|
|
||||||
};
|
|
||||||
|
|
||||||
minimap = {
|
|
||||||
minimap-vim.enable = false;
|
|
||||||
codewindow.enable = true; # lighter, faster, and uses lua for configuration
|
|
||||||
};
|
|
||||||
|
|
||||||
dashboard = {
|
|
||||||
dashboard-nvim.enable = false;
|
|
||||||
alpha.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
notify = {
|
|
||||||
nvim-notify.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
projects = {
|
|
||||||
project-nvim.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
utility = {
|
|
||||||
ccc.enable = false;
|
|
||||||
vim-wakatime.enable = false;
|
|
||||||
icon-picker.enable = true;
|
|
||||||
surround.enable = true;
|
|
||||||
diffview-nvim.enable = true;
|
|
||||||
motion = {
|
|
||||||
hop.enable = true;
|
|
||||||
leap.enable = true;
|
|
||||||
precognition.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
images = {
|
|
||||||
image-nvim.enable = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
notes = {
|
|
||||||
obsidian.enable = false; # FIXME: neovim fails to build if obsidian is enabled
|
|
||||||
neorg.enable = false;
|
|
||||||
orgmode.enable = false;
|
|
||||||
mind-nvim.enable = true;
|
|
||||||
todo-comments.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
terminal = {
|
|
||||||
toggleterm = {
|
|
||||||
enable = true;
|
|
||||||
lazygit.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
ui = {
|
|
||||||
borders.enable = true;
|
|
||||||
noice.enable = true;
|
|
||||||
colorizer.enable = true;
|
|
||||||
modes-nvim.enable = false; # the theme looks terrible with catppuccin
|
|
||||||
illuminate.enable = true;
|
|
||||||
breadcrumbs = {
|
|
||||||
enable = true;
|
|
||||||
navbuddy.enable = true;
|
|
||||||
};
|
|
||||||
smartcolumn = {
|
|
||||||
enable = true;
|
|
||||||
setupOpts.custom_colorcolumn = {
|
|
||||||
# this is a freeform module, it's `buftype = int;` for configuring column position
|
|
||||||
nix = "110";
|
|
||||||
ruby = "120";
|
|
||||||
java = "130";
|
|
||||||
go = ["90" "130"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
fastaction.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
assistant = {
|
|
||||||
chatgpt.enable = false;
|
|
||||||
copilot = {
|
|
||||||
enable = false;
|
|
||||||
cmp.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
session = {
|
|
||||||
nvim-session-manager.enable = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
gestures = {
|
|
||||||
gesture-nvim.enable = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
comments = {
|
|
||||||
comment-nvim.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
presence = {
|
|
||||||
neocord.enable = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue