configuration.nix/configuration.nix
2023-07-12 12:24:22 +03:00

233 lines
4.5 KiB
Nix

{
config,
pkgs,
...
}: {
imports = [
./hardware-configuration.nix
<home-manager/nixos>
];
system.stateVersion = "23.05";
hardware = {
pulseaudio.enable = true;
opengl = {
enable = true;
driSupport = true;
};
};
boot = {
loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
};
security = {
polkit.enable = true;
};
xdg = {
portal = {
enable = true;
};
};
time.timeZone = "Europe/Sofia";
fonts.fonts = with pkgs; [nerdfonts];
environment = {
systemPackages = with pkgs; [
binutils
cmatrix
deno
ffmpeg
firefox-devedition-bin
gimp
git
glibc
gnome.cheese
gnumake
grim
home-manager
jmtpfs
libgccjit
libmtp
lolcat
lua
mako
mlocate
mupdf
nodejs_20
nodePackages_latest.pnpm
pinentry-qt
rustup
slurp
tealdeer
tectonic
thunderbird
tor-browser-bundle-bin
ungoogled-chromium
unzip
vim
vimPlugins.nvchad
viu
wayland
wdisplays
wget
wl-clipboard
xdg-user-dirs
xdg-utils
zbar
zip
];
variables = {
EDITOR = "nvim";
};
shells = with pkgs; [zsh];
etc = {
"xdg/user-dirs.conf".text = ''
enabled=True
'';
};
};
networking.extraHosts = builtins.readFile (pkgs.fetchFromGitHub {
owner = "StevenBlack";
repo = "hosts";
rev = "5bf0802369cd74796bc5c4194c46ddc019541877";
sha256 = "sha256-4CXI2vu/zBQeSzLKelaey/5WEjfroRs7LP9BvZ4CsTQ=";
}
+ "/hosts");
programs = {
gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
sway.enable = true;
zsh.enable = true;
};
users = {
defaultUserShell = pkgs.zsh;
users.ivand = {
isNormalUser = true;
extraGroups = ["wheel" "audio" "mlocate"];
};
extraGroups = {
mlocate = {};
};
};
services = {
flatpak = {
enable = true;
};
};
home-manager.users.ivand = {lib, ...}: {
home = {
stateVersion = "23.05";
sessionPath = ["$HOME/.local/bin/"];
pointerCursor = {
name = "Bibata-Modern-Amber";
package = pkgs.bibata-cursors;
};
};
programs = {
home-manager = {
enable = true;
};
git = {
enable = true;
userName = "Ivan Dimitrov";
userEmail = "ivan@idimitrov.dev";
};
kitty = {
enable = true;
settings = {
enable_tab_bar = false;
background_opacity = "0.9";
};
};
neovim = {
enable = true;
viAlias = true;
extraPackages = with pkgs; [
alejandra
lua-language-server
libclang
rnix-lsp
];
};
zsh = {
enable = true;
enableSyntaxHighlighting = true;
enableAutosuggestions = true;
completionInit = '''';
history = {
size = 1000;
save = 1000;
expireDuplicatesFirst = true;
};
plugins = [
{
name = "zsh-autoenv";
src = "${pkgs.zsh-autoenv}/share/zsh-autoenv";
file = "autoenv.plugin.zsh";
}
{
name = "zsh-powerlevel10k";
src = "${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k";
file = "powerlevel10k.zsh-theme";
}
{
name = "zsh-nix-shell";
file = "nix-shell.plugin.zsh";
src = "${pkgs.zsh-nix-shell}/share/zsh-nix-shell";
}
];
initExtra = ''
source "$HOME/.p10k.zsh"
'';
};
};
xdg.configFile = {
nvim = {
source = pkgs.vimPlugins.nvchad;
recursive = true;
};
"nvim/lua/custom" = {
source = ./cfg/nvim/custom;
recursive = true;
};
"sway/config" = {
source = ./cfg/sway/config;
};
"user-dirs.dirs" = {
source = pkgs.writeText "user-dirs.dirs" ''
XDG_DESKTOP_DIR="$HOME/dt"
XDG_DOCUMENTS_DIR="$HOME/doc"
XDG_DOWNLOAD_DIR="$HOME/dl"
XDG_MUSIC_DIR="$HOME/snd"
XDG_PICTURES_DIR="$HOME/pic"
XDG_PUBLICSHARE_DIR="$HOME/pub"
XDG_TEMPLATES_DIR="$HOME/tp"
XDG_VIDEOS_DIR="$HOME/vid"
'';
};
};
home.packages = with pkgs; [
bemenu
brave
gopass
gopass-jsonapi
pavucontrol
];
};
}