Move to multi-file nix config
This commit is contained in:
parent
40ae8fa74b
commit
f10c0a019b
8 changed files with 303 additions and 122 deletions
21
.config/nixos/profiles/emacs.nix
Normal file
21
.config/nixos/profiles/emacs.nix
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
services.emacs.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
emacs29-gtk3
|
||||
|
||||
# Misc
|
||||
ispell # Spellchecker
|
||||
fd # Find entries in filesystem. Helps doom emacs run faster.
|
||||
|
||||
# For vterm
|
||||
cmake
|
||||
libtool
|
||||
|
||||
## LSPs
|
||||
nodePackages.pyright
|
||||
];
|
||||
}
|
||||
|
||||
26
.config/nixos/profiles/lf.nix
Normal file
26
.config/nixos/profiles/lf.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
lf
|
||||
|
||||
atool # Provides aunpack, to open archives. Also can list archive contents.
|
||||
bat # A prettified 'cat'
|
||||
broot # A slicker fzf
|
||||
chafa # Display images in the terminal (supports sixel)
|
||||
ffmpegthumbnailer # Get thumbnails of videos
|
||||
file # Get information about a specific file
|
||||
fzf # Fuzzy finder. Might fully replace with broot
|
||||
imagemagick # Image conversion/processing tool
|
||||
mediainfo # Get info about media
|
||||
mpv # Audio and video player
|
||||
nsxiv # Image viewer
|
||||
odt2txt # Convert open documents to text
|
||||
perl536Packages.FileMimeInfo # Provides mimeopen, to ask what program to open files in
|
||||
poppler_utils # Provides pdftoppm, to turn pdfs into images
|
||||
unrar-wrapper # Extract .rar files
|
||||
xclip # Copy file name to clip
|
||||
zathura # PDF viewer
|
||||
];
|
||||
}
|
||||
|
||||
9
.config/nixos/profiles/minimal.nix
Normal file
9
.config/nixos/profiles/minimal.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
config {
|
||||
environment.systemPackages = with pkgs; [
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
17
.config/nixos/profiles/nvim.nix
Normal file
17
.config/nixos/profiles/nvim.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
neovim
|
||||
|
||||
# LSPs
|
||||
clang-tools
|
||||
lua-language-server
|
||||
|
||||
# Misc
|
||||
ripgrep # Used by telescope
|
||||
gcc
|
||||
unzip
|
||||
];
|
||||
}
|
||||
|
||||
14
.config/nixos/profiles/virtualbox.nix
Normal file
14
.config/nixos/profiles/virtualbox.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
virtualisation.docker.enable = true;
|
||||
virtualisation.docker.storageDriver = "btrfs";
|
||||
|
||||
# Implicitly downloads virtualbox
|
||||
virtualisation.virtualbox.host.enable = true;
|
||||
users.extraGroups.vboxusers.members = [ "user-with-access-to-virtualbox" ];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
];
|
||||
}
|
||||
|
||||
74
.config/nixos/profiles/wayland_desktop.nix
Normal file
74
.config/nixos/profiles/wayland_desktop.nix
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
# Or else swaylock will not accept correct password
|
||||
security.pam.services.swaylock = {};
|
||||
|
||||
i18n = {
|
||||
defaultLocale = "en_US.UTF-8";
|
||||
inputMethod = {
|
||||
# Have to install fcitx5 through here so that the binary is patched to be able to see the addons.
|
||||
# If also installed through system packages, the binary without addonds will take precedence.
|
||||
enabled = "fcitx5";
|
||||
fcitx5.addons = with pkgs; [
|
||||
fcitx5-configtool
|
||||
fcitx5-rime
|
||||
fcitx5-chinese-addons
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
source-han-sans
|
||||
source-han-serif
|
||||
(nerdfonts.override { fonts = [ "FiraCode" ]; })
|
||||
];
|
||||
|
||||
programs = {
|
||||
hyprland = {
|
||||
enable = true;
|
||||
enableNvidiaPatches = true;
|
||||
xwayland.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
blueman # Bluetooth manager
|
||||
dunst # Notification daemon
|
||||
eww-wayland
|
||||
firefox # My browser of choice
|
||||
foot # Wayland native terminal
|
||||
hyprland-autoname-workspaces
|
||||
hyprpaper
|
||||
kanshi # Autorandr substitute
|
||||
libnotify # Send messages to notification daemon
|
||||
libreoffice # MSOffice btfo
|
||||
pinentry-rofi # Rofi frontend for pinentry program
|
||||
pyprland # Plugin manager for Hyprland
|
||||
rofi # Menu prompt program
|
||||
rofi-pass # Rofi frontend for password store
|
||||
swaylock # Wayland session locker
|
||||
swww # Sets background images
|
||||
texlive.combined.scheme-full # LaTeX to create documents
|
||||
typst # Cool, minimal LaTeX alternative
|
||||
ungoogled-chromium # If I need a special chrome feature
|
||||
waybar # Status bar
|
||||
wdisplays # Arnadr substitute
|
||||
wlr-randr # Xrandr substitute
|
||||
|
||||
# GTK Themes
|
||||
lxappearance-gtk2 # Theme switcher
|
||||
gruvbox-dark-gtk
|
||||
];
|
||||
|
||||
nixpkgs.overlays = [
|
||||
(self: super: {
|
||||
wlroots-hyprland-nvidia = super.wlroots-hyprland-nvidia.overrideAttrs (oa: {
|
||||
patches = (oa.patches or [ ]) ++ [
|
||||
/home/vince/misc/DisplayLink_v2.patch
|
||||
];
|
||||
});
|
||||
})
|
||||
];
|
||||
}
|
||||
|
||||
89
.config/nixos/profiles/xdesktop.nix
Normal file
89
.config/nixos/profiles/xdesktop.nix
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
security.sudo.extraConfig = ''
|
||||
%wheel ALL=(ALL:ALL) NOPASSWD: ${pkgs.systemd}/bin/systemctl restart autorandr
|
||||
'';
|
||||
|
||||
i18n = {
|
||||
defaultLocale = "en_US.UTF-8";
|
||||
inputMethod = {
|
||||
# Have to install fcitx5 through here so that the binary is patched to be able to see the addons.
|
||||
# If also installed through system packages, the binary without addonds will take precedence.
|
||||
enabled = "fcitx5";
|
||||
fcitx5.addons = with pkgs; [
|
||||
fcitx5-configtool
|
||||
fcitx5-rime
|
||||
fcitx5-chinese-addons
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
source-han-sans
|
||||
source-han-serif
|
||||
(nerdfonts.override { fonts = [ "FiraCode" ]; })
|
||||
];
|
||||
|
||||
# X Server
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
autorun = false;
|
||||
|
||||
autoRepeatDelay = 300;
|
||||
autoRepeatInterval = 50;
|
||||
|
||||
# Configure keymap in X11
|
||||
layout = "us";
|
||||
xkbOptions = "eurosign:e,caps:escape";
|
||||
|
||||
# Touchpad stuff
|
||||
libinput = {
|
||||
enable = true;
|
||||
touchpad.naturalScrolling = true;
|
||||
};
|
||||
|
||||
displayManager = {
|
||||
lightdm.enable = false;
|
||||
startx.enable = true;
|
||||
};
|
||||
|
||||
windowManager.dwm.enable = true;
|
||||
};
|
||||
|
||||
# Monitor switching service. Allow users to restart the service without password
|
||||
services.autorandr.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
arandr # Visually move relative positions of monitors
|
||||
autorandr # Save and load xrandr profiles
|
||||
blueman # Bluetooth manager
|
||||
dunst # Notification daemon
|
||||
dwmblocks # Suckless statusbar for DWM
|
||||
dwm # Suckless tiling window manager
|
||||
feh # Image viewer I use for background setting
|
||||
firefox # My browser of choice
|
||||
libnotify # Send messages to notification daemon
|
||||
libreoffice # MSOffice btfo
|
||||
maim # Screenshot utility
|
||||
picom # X Compositor
|
||||
pinentry-rofi # Rofi frontend for pinentry program
|
||||
rofi # Menu prompt program
|
||||
rofi-pass # Rofi frontend for password store
|
||||
st # Suckless terminal
|
||||
sxhkd # Hotkey daemon
|
||||
texlive.combined.scheme-full # LaTeX to create documents
|
||||
typst # Cool, minimal LaTeX alternative
|
||||
ungoogled-chromium # If I need a special chrome feature
|
||||
xsecurelock # Session locker
|
||||
|
||||
# GTK Themes
|
||||
lxappearance-gtk2 # Theme switcher
|
||||
gruvbox-dark-gtk
|
||||
|
||||
# X tools
|
||||
xorg.xauth
|
||||
xclip
|
||||
];
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue