Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # 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,... }:
- {
- imports =
- [
- ./hardware-configuration.nix
- ];
- # Use the systemd-boot EFI boot loader.
- boot.loader.systemd-boot.enable = true;
- boot.loader.efi.canTouchEfiVariables = true;
- # Enable exFAT format for USB/External HDD
- boot.extraModulePackages = [ config.boot.kernelPackages.exfat-nofuse ];
- boot.supportedFilesystems = [ "exfat" ];
- hardware.pulseaudio.enable = true;
- hardware.opengl.driSupport32Bit = true;
- #services.vmwareGuest.enable = true;
- i18n = {
- consoleFont = "Lat2-Terminus16";
- consoleKeyMap = "us";
- defaultLocale = "en_US.UTF-8";
- };
- # Set your time zone.
- time.timeZone = "America/Vancouver";
- ### System Packages ##########################################################
- environment.systemPackages = with pkgs; [
- ### Command line utilities #################################################
- blender
- bundler
- compton
- cmus # terminal music player
- escrotum # Screenshot tool (what a name...)
- feh # Image viewer
- fish # Friendly Interface SHell
- ffmpeg-full
- discord # Chat
- dolphin # File manager
- dunst # Notifications
- git # Version control
- git-lfs # Support for large files for git
- gnumake # 'make' command to build executables
- htop # A better 'top' command
- kate # Text Editor
- lynx # Terminal web browser
- mdbook # A markdown to web "book" generator
- mpv
- moc # Music player in a terminal
- networkmanagerapplet # Systray Applet for Network Manager
- neofetch # screenfetch, but better
- #open-vm-tools # VMware
- polybar
- p7zip # 7z zip manager
- pdfgrep
- ranger # Terminal file manager
- rofi # Window switcher & App launcher
- rtv # Reddit in terminal
- screenfetch # Display info about themes to console
- speedtest-cli # Speed test in terminal
- tree # Print file tree in terminal
- unzip # Command to unzip files
- #qt5.full
- urlview # View URLs in a document (for rtv)
- wget # Download web files
- youtube-dl # YouTube downloader
- # zip # Command to zip files
- i3blocks
- i3status
- ### Applications ###########################################################
- arandr # Multiple display manager
- ark # Archive manager
- atom # Glorified text editor
- calibre # ebooks
- firefox
- gimp
- libreoffice-fresh # Documents/Spreadsheets/Presentations
- libsForQt5.vlc # Video player (VLC)
- pango # Text Layout Engine Library
- pandoc # Document Conversion
- pamixer # Pulse Audio Tool
- pasystray # Pusle Audio System Tray App
- pavucontrol # Pulse Audio controllerList services
- qbittorrent # Torrent Client
- zathura # PDF viewer
- ### System-wide theming ####################################################
- breeze-icons # Breeze theme icons
- hicolor_icon_theme # Hicolor theme icons
- lxappearance
- arc-theme # Arc theme for GTK+
- adapta-gtk-theme # Adapta theme for GTK
- ];
- environment.pathsToLink = [ "/libexec" "/etc" ];
- ### Programs #################################################################
- programs = {
- bash.enableCompletion = true; # Enable completion in bash shell
- fish.enable = true; # Holdup... why is this here?
- fish.shellAliases = { # Extra fish commands
- neofetchnix = "neofetch --ascii_colors 68 110";
- fonts = "fc-list : family | cut -f1 -d\",\" | sort";
- prettify = "python -m json.tool"; # Prettify json!
- dotp = "dot -Tpdf -o $1.pdf";
- doti = "dot -Tpng -o $1.png";
- };
- less.enable = true; # Enables config for the `less` command
- less.commands = { h = "quit"; }; # Rebind the `h` key to quit
- qt5ct.enable = true; # Enable qt5ct (fixes Qt applications)
- };
- nixpkgs.config = {
- allowUnfree = true;
- # packagesOverrides = super: let self = super.pkgs; in
- # {
- # i3status = super.i3status.overrideDerivation (drv: { postInstall = "cp ${./input.txt} $out/etc/i3status.conf"; });
- };
- systemd.user.services = {
- nm-applet = {
- description = "Network manager applet";
- wantedBy = [ "graphical-session.target" ];
- partOf = [ "graphical-session.target" ];
- serviceConfig.ExecStart = "${pkgs.networkmanagerapplet}/bin/nm-applet";
- };
- };
- fonts = {
- fonts = with pkgs; [
- corefonts
- hack-font
- emojione # Emoji font
- fira-code-symbols # Fancy font with programming ligatures
- fira-code # Fancy font with programming ligatures
- font-awesome_5 # Fancy icons font
- nerdfonts
- powerline-fonts
- roboto
- roboto-mono
- roboto-slab
- siji # Iconic bitmap font
- source-code-pro ];
- fontconfig = {
- ultimate.enable = true;
- defaultFonts = {
- monospace = [ "roboto-mono" ];
- sansSerif = [ "roboto" ];
- serif = [ "roboto-slab" ];
- };
- };
- };
- virtualisation.vmware.guest = {
- enable = true;
- };
- services ={
- openssh.enable = true;
- #vmwareGuest.enable = true;
- # virtualisation.vmware.guest = {
- #enable = true;
- xserver = {
- enable = true;
- layout = "us";
- xkbOptions = "eurosign:e";
- desktopManager = {
- plasma5.enable = true;
- xterm.enable = false;
- };
- windowManager.default = "i3";
- windowManager.i3.enable = true;
- displayManager.lightdm = {
- enable = true;
- };
- };
- # Compton is a visual compositor. Without it, I can see screen tearing on fullscreen video or when scrolling quickly.
- compton = {
- enable = true;
- };
- #DNSCrypt
- dnscrypt-proxy.enable = true;
- dnscrypt-proxy.customResolver = {
- address = "142.4.204.111";
- port = 443;
- name = "2.dnscrypt-cert.ns3.ca.luggs.co";
- key = "1C19:7933:1BE8:23CC:CF08:9A79:0693:7E5C:3410:2A56:AC7F:6270:E046:25B2:EDDB:04E3";
- };
- };
- #environment.etc."i3.conf".text = pkgs.callPackage ./i3-config.nix
- networking.hostName = "Seneca";
- networking.networkmanager.enable = true;
- networking.nameservers = ["127.0.0.1"];
- # Define a user account. Don't forget to set a password with ‘passwd’.
- users.users.v0id = {
- isNormalUser = true;
- description = "v0iD";
- extraGroups = [
- "wheel"
- "disk"
- "networkmanager"
- "audio"
- "pulse"
- "video"
- "input" ];
- shell = "${pkgs.fish}/bin/fish";
- uid = 1000;
- };
- security.sudo.wheelNeedsPassword = false;
- security.polkit.extraConfig = ''
- polkit.addRule(function(action, subject) {
- if (subject.isInGroup("wheel")) {
- return polkit.Result.YES;
- }
- });
- '';
- # This value determines the NixOS release with which your system is to be
- # compatible, in order to avoid breaking some software such as database
- # servers. You should change this only after NixOS release notes say you
- # should.
- system.stateVersion = "19.03"; # Did you read the comment?
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement