This commit is contained in:
lelgenio 2022-02-10 10:31:56 -03:00
parent c4cf066a18
commit 850d98c48f
1 changed files with 433 additions and 0 deletions

433
configuration.nix Normal file
View File

@ -0,0 +1,433 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, buildPythonPackage, ... }:
let
home-manager = builtins.fetchTarball "https://github.com/nix-community/home-manager/archive/master.tar.gz";
in
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
(import "${home-manager}/nixos")
];
# systemd.services = {
# create-swapfile = {
# serviceConfig.Type = "oneshot";
# wantedBy = [ "swap-swapfile.swap" ];
# script = ''
# ${pkgs.coreutils}/bin/truncate -s 0 /swap/swapfile
# ${pkgs.e2fsprogs}/bin/chattr +C /swap/swapfile
# ${pkgs.btrfs-progs}/bin/btrfs property set /swap/swapfile compression none
# '';
# };
# };
# Use the systemd-boot EFI boot loader.
boot.loader.grub.enable = true;
# boot.loader.efi.canTouchEfiVariables = true;
boot.loader.grub.efiInstallAsRemovable = true;
boot.loader.grub.efiSupport = true;
boot.loader.grub.device = "nodev";
boot.loader.grub.extraEntries = ''
menuentry 'Void GNU/Linux' --class void --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-71dcad6d-3c93-473d-ad60-0cea0d6d379c' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod fat
set root='hd0,gpt1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 5977-60ED
else
search --no-floppy --fs-uuid --set=root 5977-60ED
fi
echo 'Loading Linux 5.15.19_1 ...'
linux /vmlinuz-5.15.19_1 root=UUID=71dcad6d-3c93-473d-ad60-0cea0d6d379c ro rootflags=subvol=@void loglevel=4 rd.vconsole.keymap=colemak rd.luks.uuid=luks-7e99abff-be7a-4fa7-aeeb-e54e5fa9d9a8 rootfstype=btrfs rootflags=rw,noatime,compress=zstd:3,subvol=@void
echo 'Loading initial ramdisk ...'
initrd /initramfs-5.15.19_1.img
}
'';
#boot.kernelParams = [ "rd.vconsole.keymap=colemak" ];
# networking.hostName = "nixos"; # Define your hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# Set your time zone.
time.timeZone = "America/Sao_Paulo";
# The global useDHCP flag is deprecated, therefore explicitly set to false here.
# Per-interface useDHCP will be mandatory in the future, so this generated config
# replicates the default behaviour.
networking.useDHCP = false;
#networking.interfaces.br-0990e9f22445.useDHCP = true;
# networking.interfaces.br-17830196a80a.useDHCP = true;
# networking.interfaces.docker0.useDHCP = true;
networking.interfaces.enp2s0.useDHCP = true;
networking.interfaces.wlan0.useDHCP = true;
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Select internationalisation properties.
i18n.defaultLocale = "pt_BR.UTF-8";
console = {
# font = "Lat2-Terminus16";
keyMap = "colemak";
};
fonts.fonts = with pkgs; [
(nerdfonts.override { fonts = [ "FiraCode" "Hack" ]; })
];
# Enable the X11 windowing system.
services.xserver.enable = true;
# Configure keymap in X11
# services.xserver.layout = "colemak";
# services.xserver.xkbOptions = "eurosign:e";
# Enable CUPS to print documents.
# services.printing.enable = true;
# Enable sound.
sound.enable = true;
hardware.pulseaudio.enable = true;
nixpkgs.config.pulseaudio = true;
# Enable touchpad support (enabled default in most desktopManager).
services.xserver.libinput.enable = true;
# Define a user account. Don't forget to set a password with passwd.
users.users.lelgenio = {
isNormalUser = true;
extraGroups = [ "wheel" "audio" "video" "input" "docker" ]; # Enable sudo for the user.
};
security.sudo.wheelNeedsPassword = false;
# programs.sway.enable = true;
# xdg.portal.wlr.enable = true;
services.pipewire.enable = true;
# Gnome
services.xserver.desktopManager.gnome.enable = true;
services.xserver.displayManager.gdm.enable = true;
services.gnome.tracker-miners.enable = false;
services.gnome.tracker.enable = false;
home-manager.users.lelgenio = {
/* Here goes your home-manager config, eg home.packages = [ pkgs.foo ]; */
home.packages = with pkgs; [
# # missing
# # caffeinated
# # dotdrop
# # papirus-folders papirus-libreoffice-theme
# # tuxi-git
# # bluez bluez-utils bluez-plugins
# #thunar-vcs-plugin
# # clyrics
# # zathura-pdf-mupdf
# # libreoffice-fresh-pt-br hunspell-pt-br
# # neovim python-pynvim neovim-symlinks
# # Sway
sway swayidle swaylock waybar
bemenu j4-dmenu-desktop
# # Utility
fusuma light mako kanshi udiskie
gammastep
wtype
# # Configuration manager
xsettingsd
# # Screenshot
grim slurp swappy wl-clipboard imagemagick wf-recorder
# # Dav
vdirsyncer khal khard
# Audio
# pulseaudio pulseaudio-rtp pulseaudio-alsa pulseaudio-bluetooth
pamixer pulsemixer pavucontrol
# # # Fonts
# # # inter-font ttf-ms-fonts ttf-dejavu
# # # nerd-fonts-hack nerd-fonts-fira-code
# # # Icons
# # # otf-font-awesome ttf-font-awesome
# # Emoji and stuff
noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra
papirus-icon-theme
capitaine-cursors
# # Terminal
# # Emulators
kitty alacritty
# #Tools
translate-shell tealdeer so
ranger atool p7zip jq fzf
neofetch htop bpytop
inxi entr
#Prompt
starship
# Replacements
#ls cat rm -rf grep find sed diff cd fmt
exa bat trash-cli ripgrep fd sd diffr zoxide par
# Network
iwd dhcpcd
# Transfer
wget curl rsync rclone nmap
# Testing
# tor nettools
netcat-gnu mtr speedtest-cli
inetutils
# ssh
openssh sshfs fail2ban
# Bluetooth
# Browser
qutebrowser yt-dlp
# # Email
neomutt urlview isync
# # # Files
xfce.thunar-volman
xfce.thunar-archive-plugin mate.engrampa
syncthing xdg-user-dirs
transmission
python39Packages.deemix
# Media
pqiv mpv
mpd mpc_cli ncmpcpp mpdris2
playerctl
kdeconnect
blender gimp
zathura
# Office
libreoffice-fresh
# Programing
kakoune
shfmt nodePackages.bash-language-server
# web lsp
nodePackages.vscode-css-languageserver-bin
# vscode-html-languageserver
# vscode-css-languageserver
# vscode-json-languageserver
# # php lsp
# # nodejs-intelephense
# # Python
# # ipython bpython
# # Python lsp
# # python-language-server
# # python-pylint autopep8 pyls-mypy
# # python-mccabe python-rope python-pyflakes
# # python-pycodestyle python-pydocstyle
# rust lsp
rust-analyzer
# Compiled
# rustc
cargo
gcc
gdb
meson
# # work
# # mariadb
# # php7 php7-apache
# # phpmyadmin
# # lipsum-git emmet-cli
# # blade-formatter prettier
# # nodejs-less nodejs-less-plugin-clean-css
# # uglify-js
# Virt
qemu
# Power manager
tlp
# # Gtk
# # gtk3-nocsd-legacy-git
# Qt
# qt5-base
# qt5-wayland
qt5ct
# kvantum-qt5
libsForQt5.qtstyleplugins
# # X11
# #xorg-xwayland
# # codecs
# # gst-plugins-good gst-plugins-bad
# Tray
libappindicator-gtk3
# lib32-libappindicator-gtk2 lib32-libappindicator-gtk3
# # Chat
# discord telegram-desktop
# jitsi-meet-desktop-bin
#
# # Gaming
# steam
# lutris
#lutris-wine-meta wine wine-mono winetricks
# File thumbnails
# tumbler
ffmpegthumbnailer poppler
libgsf libgepub
# libopenraw freetype2
# # alacritty
any-nix-shell
capitaine-cursors
hack-font
htop
kakoune
neomutt
nerdfonts
nodejs
orchis-theme
pass-wayland
# php-with-extensions
python3
# python3.8-pip
tdesktop
xfce.thunar
thunderbird
vscodium
waybar
wl-clipboard
yarn
yarn2nix
];
};
virtualisation.docker.enable = true;
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
micro
wget
firefox
fish
iwd
jq
diffr
docker
docker-compose
git
gnumake
tmux
ripgrep
gnome3.gnome-tweaks
];
programs.fish.enable = true;
users.defaultUserShell = pkgs.fish;
# programs.fish.plugins = [
# {
# name = "nix-env.fish";
# src = pkgs.fetchFromGitHub {
# owner = "lilyball";
# repo = "nix-env.fish";
# rev = "7b65bd228429e852c8fdfa07601159130a818cfa";
# sha256 = "069ybzdj29s320wzdyxqjhmpm9ir5815yx6n522adav0z2nz8vs4";
# };
# }
# ];
# services.mysql.enable = true;
# services.mysql.package = pkgs.mariadb;
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
programs.mtr.enable = true;
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
# List services that you want to enable:
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "22.05"; # Did you read the comment?
# nix = {
# package = pkgs.nixUnstable; # or versioned attributes like nix_2_4
# extraOptions = ''
# experimental-features = nix-command flakes
# '';
# };
}