1
0
forked from extern/nix-config
donovanglover-nix-config/configuration.nix

268 lines
5.9 KiB
Nix
Raw Normal View History

{ config, pkgs, lib, stylix, ... }:
{
imports = [
./laptop.nix
./modules/starship.nix
./modules/fish.nix
];
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
services.xserver.displayManager.lightdm.enable = false;
networking.hostName = "nixos";
networking.networkmanager.enable = true;
networking.networkmanager.unmanaged = [ "interface-name:ve-*" ];
networking.networkmanager.dns = "none";
networking.useHostResolvConf = true;
2023-05-10 04:44:16 +02:00
services.udisks2.enable = true;
security.pam.services.swaylock = { };
systemd.extraConfig = ''
DefaultTimeoutStopSec=10s
'';
virtualisation.vmVariant = {
virtualisation = {
memorySize = 8192;
cores = 4;
};
virtualisation.qemu.options =
[ "-device virtio-vga-gl" "-display sdl,gl=on" ];
services.xserver.desktopManager.gnome.enable = true;
services.xserver.displayManager.gdm.enable = true;
i18n.inputMethod = lib.mkDefault {
enabled = "ibus";
ibus.engines = with pkgs.ibus-engines; [ mozc ];
};
services.gnome.core-utilities.enable = false;
environment.gnome.excludePackages = [ pkgs.gnome-tour ];
hardware.pulseaudio.enable = false;
};
stylix.image = ./wallpaper.png;
stylix.polarity = "dark";
stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/monokai.yaml";
stylix.fonts = {
serif = {
package = pkgs.noto-fonts-cjk-sans;
name = "Noto Sans CJK JP";
};
sansSerif = {
package = pkgs.noto-fonts-cjk-sans;
name = "Noto Sans CJK JP";
};
monospace = {
package = pkgs.maple-mono-NF;
name = "MapleMono-NF";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
sizes = {
applications = 11;
desktop = 11;
popups = 11;
terminal = 11;
};
};
environment.sessionVariables = {
EDITOR = "nvim";
VISUAL = "nvim";
GIT_DISCOVERY_ACROSS_FILESYSTEM = "1";
FZF_DEFAULT_OPTS = "--height 40% --reverse --border --color=16";
NODE_OPTIONS = "--max_old_space_size=16384";
};
services.vnstat.enable = true;
services.tumbler.enable = true;
2023-05-10 18:34:05 +02:00
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
jack.enable = true;
};
programs.fish.enable = true;
users.defaultUserShell = pkgs.fish;
environment.shells = with pkgs; [ fish ];
programs.fish.shellAliases = {
ls = "exa --group-directories-first -I 'lost+found'";
2023-05-12 01:07:04 +02:00
tree =
"exa --group-directories-first --all --long --tree -I 'node_modules|.git|public|lost+found'";
mv = "mv -i";
rg = "rg --max-columns=2000";
};
time.timeZone = "America/New_York";
i18n.defaultLocale = "en_US.UTF-8";
i18n.supportedLocales =
[ "en_US.UTF-8/UTF-8" "ja_JP.UTF-8/UTF-8" "fr_FR.UTF-8/UTF-8" ];
services.xserver.enable = true;
programs.thunar.enable = true;
programs.neovim.enable = true;
programs.htop = {
enable = true;
package = pkgs."htop-vim";
settings = { tree_view = 1; };
};
programs.firejail.enable = true;
nix.package = pkgs.nixFlakes;
nix.settings.experimental-features = [ "nix-command" "flakes" ];
environment.systemPackages = with pkgs; [
2023-05-12 01:04:44 +02:00
pinentry-curses
wget
grim
slurp
librewolf
kitty
mullvad-vpn
mullvad-browser
papirus-icon-theme
mediainfo
pywal
mpv
2023-05-12 06:05:31 +02:00
mpc-cli
neofetch
2023-05-12 06:05:31 +02:00
tectonic
fdupes
anki
logseq
2023-05-12 06:05:31 +02:00
yt-dlp
gurk-rs
wl-clipboard
2023-05-12 06:05:31 +02:00
ffmpeg
siege
ponysay
lolcat
figlet
calcurse
httpie
cmatrix
sox
spek
2023-05-12 06:05:31 +02:00
p7zip
ripgrep
rsync
jq
keepassxc
stow
exa
fd
fzf
unar
2023-05-12 06:05:31 +02:00
audacity
gimp
typespeed
slade
gdu
ranger
nixfmt
whois
2023-05-12 01:04:44 +02:00
lnch
libnotify
2023-05-12 07:19:01 +02:00
dwt1-shell-color-scripts
tig
2023-05-12 06:05:31 +02:00
dig
trashy
swaybg
udiskie
brightnessctl
killall
2023-05-12 06:05:31 +02:00
nodejs
yarn
deno
crystal
shards
rustc
rustfmt
cargo
genact
xfce.exo
(pkgs.callPackage ./pkgs/srb2.nix {})
];
fonts.enableDefaultFonts = true;
fonts.fonts = with pkgs; [
noto-fonts
noto-fonts-cjk-sans
noto-fonts-cjk-serif
noto-fonts-emoji
2023-05-12 06:05:31 +02:00
maple-mono
maple-mono-NF
2023-05-13 22:29:38 +02:00
font-awesome
];
fonts.fontconfig = {
defaultFonts = {
serif = [ "Noto Serif CJK JP" "Noto Serif" ];
sansSerif = [ "Noto Sans CJK JP" "Noto Sans" ];
monospace = [ "Noto Mono CJK JP" "Noto Mono" ];
};
};
fonts.fontconfig.hinting.style = "hintfull";
fonts.fontconfig.allowBitmaps = false;
i18n.inputMethod.enabled = "fcitx5";
2023-05-11 23:22:53 +02:00
i18n.inputMethod.fcitx5.addons = [ pkgs.fcitx5-mozc ];
services.mullvad-vpn.enable = true;
services.mullvad-vpn.enableExcludeWrapper = false;
networking.networkmanager.wifi.macAddress = "random";
networking.networkmanager.ethernet.macAddress = "random";
services.resolved.llmnr = "false";
environment.defaultPackages = [ ];
services.xserver.excludePackages = [ pkgs.xterm ];
# Force containers to use mullvad
networking.nat.enable = true;
networking.nat.internalInterfaces = [ "ve-+" ];
networking.nat.externalInterface = "wg-mullvad";
services.interception-tools = {
enable = true;
plugins = [ pkgs.interception-tools-plugins.dual-function-keys ];
udevmonConfig = ''
- JOB: "${pkgs.interception-tools}/bin/intercept -g $DEVNODE | ${pkgs.interception-tools-plugins.dual-function-keys}/bin/dual-function-keys -c /etc/dual-function-keys.yaml | ${pkgs.interception-tools}/bin/uinput -d $DEVNODE"
DEVICE:
EVENTS:
EV_KEY: [KEY_CAPSLOCK, KEY_ESC]
'';
};
environment.etc."dual-function-keys.yaml".text = ''
TIMING:
- TAP_MILLISEC: 1000
- DOUBLE_TAP_MILLISEC: 0
MAPPINGS:
- KEY: KEY_CAPSLOCK
TAP: KEY_ESC
HOLD: KEY_LEFTCTRL
- KEY: KEY_SYSRQ
TAP: KEY_SYSRQ
HOLD: KEY_RIGHTMETA
'';
system.stateVersion = "22.11";
}