Dotfiles/nix/configuration.nix

225 lines
7.5 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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, callPackage, ... }:
{
nix = {
package = pkgs.nixUnstable;
extraOptions = ''
experimental-features = nix-command flakes
'';
};
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
./modules/wm.nix
./modules/syncthing.nix
./modules/discord.nix
./modules/gtk.nix
./modules/hosts.nix
#./modules/picom.nix
./modules/sound.nix
./modules/zsh.nix
./fonts.nix
];
# Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.grub.device = "/dev/nvme0n1";
boot.loader.grub.useOSProber = true;
nixpkgs.config.allowUnfree = true;
nixpkgs.config.allowBroken = true;
networking.hostName = "lap"; # Define your hostname.
environment.variables = {
MAIN_DISK="/dev/nvme0n1";
TERMINAL="alacritty";
};
# let inputs = {
# home-manager = {
# url = "github:rycee/home-manager/release-20.09";
# inputs = {
# nixpkgs.follows = "nixpkgs";
# };
# };
# nur.url = "github:nix-community/NUR";
# emacs-overlay.url = "github:nix-community/emacs-overlay";
# neovim-overlay.url = "github:nix-community/neovim-nightly-overlay";
#
# nixpkgs.url = "github:nixos/nixpkgs/nixos-20.09";
# unstable.url = "github:nixos/nixpkgs/nixos-unstable";
# master.url = "github:nixos/nixpkgs/master";
#};
#
# nur = final: prev: {
# nur = import inputs.nur { nurpkgs = final.unstable; pkgs = final.unstable; };
# };
# networking.wireless.enable = true;
# enable = true;
# networks={
# Goga = {
# hidden = true;
# pskRaw = "aaeb0f9e9709a1f25bc93d34290054849e3f8b37071801bbfa4eef5e2eac5084";
# };
# };
# };
# Set your time zone.
time.timeZone = "Europe/Moscow";
# 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.wlp2s0.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 = "en_US.UTF-8";
console = {
font = "Lat2-Terminus16";
keyMap = "us";
};
# Configure keymap in X11
# Enable CUPS to print documents.
services.printing.enable = true;
services.blueman.enable = true;
hardware.bluetooth.enable = true;
# Enable sound.
# Enable touchpad support (enabled default in most desktopManager).
services.xserver.libinput.enable = true;
services.xserver.libinput.touchpad.tapping = true;
services.xserver.libinput.touchpad.disableWhileTyping = true;
# TODO create touchpad.nix
# Define a user account. Don't forget to set a password with passwd.
users.defaultUserShell = pkgs.zsh;
users.users.horhik = {
isNormalUser = true;
extraGroups = [ "wheel" "networkmanager" "audio" "docker" "light" "adbusers" ]; # Enable sudo for the user.
};
system.autoUpgrade.enable = true;
system.autoUpgrade.channel = https://nixos.org/channels/nixos-unstable;
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
papirus-icon-theme pop-gtk-theme
wget git vim neovim emacs alacritty xterm zsh tmux stow dunst
# haskellPackages.xmonad haskellPackages.xmonad-contrib haskellPackages.xmonad-utils
haskellPackages.xmobar
tabbed
i3 surf dmenu st qutebrowser
lightdm rofi nitrogen rofi-emoji
mononoki fontmatrix
firefox
connman
wpa_supplicant python3 xkblayout-state acpi yaru-theme
pipewire pulsemixer nerdfonts
feh compton ninja meson cmake
anki clang zathura redshift rustup neofetch tree
killall audacity thefuck
polkit etcher gsettings-qt appimage-run pamixer unzip qjackctl gnome3.nautilus bluez pkgconfig pavucontrol bpytop
#nur.repos.reedrw.picom-next-ibhagwan
spotify obsidian discord
];
# 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 = "20.09"; # Did you read the comment?
### OH MY ZSH ###
#programs.zsh.interactiveShellInit = ''
# export ZSH=${pkgs.oh-my-zsh}/share/oh-my-zsh/
# export CC=/usr/bin/clang
# export CXX=/usr/bin/clang++
# export _JAVA_AWT_WM_NONREPARENTING=1
# export ANDROID_SDK_ROOT=/home/horhik/Android/Sdk/
# export NDK_HOME=/home/horhik/Android/Sdk/ndk/22.0.7026061/
# ZSH_THEME="cloud"
# plugins=(git colorize colored-man-pages emoji rustup sudo zsh-syntax-highlighting zsh-autosuggestions zsh-completions)
# autoload -U compinit && compinit
# source $ZSH/oh-my-zsh.sh
# export PATH=$HOME/.local/bin:$PATH
# export PATH=/usr/local/bin:$PATH
# export PATH=$HOME/.cargo/bin:$PATH
# export PATH=$HOME/.emacs.d/bin:$PATH
# export PATH=$HOME/Desktop:$PATH
# export PATH=/home/horhik/code/projects/potato-notify:$PATH
# export PATH="/root/.deno/bin:$PATH"
# alias vim=nvim
# alias vi=vim
# alias libvirtdaemon="sudo start-stop-daemon --start libvirtd"
# alias virtm="sudo start-stop-daemon --start virtlogd &; sudo start-stop-daemon --start libvirtd &; virt-manager &"
# alias clip=xclip -selection clipboard
# alias suspend="loginctl suspend"
# if [ -f '/home/horhik/yandex-cloud/path.bash.inc' ]; then source '/home/horhik/yandex-cloud/path.bash.inc'; fi
# if [ -f '/home/horhik/yandex-cloud/completion.zsh.inc' ]; then source '/home/horhik/yandex-cloud/completion.zsh.inc'; fi
# alias rd='rustc -g --emit="obj,link"'
#
#
# alias rdr=compile_and_run
# alias aia=ankiaudio
# alias picom="killall picom; picom --experimental-backends &;"
# alias cc="cargo check"
# alias ct="cargo test"
# alias gc="git clone"
# alias gs="git status"
# alias vim="nvim"
#
# neofetch
#
# eval $(thefuck --alias)
# source $ZSH/oh-my-zsh.sh
#'';
#
#
### FONTS ###
programs.adb.enable = true;
services.emacs.package = pkgs.emacsUnstable;
nixpkgs.overlays = [
(import (builtins.fetchTarball {
url = https://github.com/nix-community/emacs-overlay/archive/master.tar.gz;
sha256 = "0c2p2ycx6c50rzfd5k56cc411cb0ilhc3zyhhxlwcjnz1ysn5laj";
}))
];
}