Giter VIP home page Giter VIP logo

nix's Introduction

NixOS Configuration

Table Of Contents

About This Config

Hardware Configuration

{ config, pkgs, ... }:

{
  imports =
    [ # Include the results of the hardware scan.
      ./hardware-configuration.nix
    ];

Bootloader

# Bootloader.
boot.loader.grub.enable = true;
# boot.loader.grub.device = "/dev/vda";
boot.loader.grub.device = "/dev/sda";
boot.loader.grub.useOSProber = true;

Hostname

networking.hostName = "nixos"; # Define your hostname.
# networking.wireless.enable = true;  # Enables wireless support via wpa_supplicant.

Networking proxy

# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";

Networking Manager

networking.networkmanager.enable = true;

Local Time Zone

time.timeZone = "America/New_York";

Internationalization Properties

i18n.defaultLocale = "en_US.utf8";

Enable The X11 Windowing System

services.xserver.enable = true;

Display Manger

services.xserver.displayManager.lightdm.enable = true;

Desktop Environments

Cinnamon

services.xserver.desktopManager.cinnamon.enable = true;

Awesome

services.xserver.windowManager.awesome.enable = true;

Configuring Keymap in X11

services.xserver = {
  layout = "us";
  xkbVariant = "";
};

Cups Printing Service

services.printing.enable = true;

Pipewire

sound.enable = true;
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
  enable = true;
  alsa.enable = true;
  alsa.support32Bit = true;
  pulse.enable = true;

JACK applications

# If you want to use JACK applications, uncomment this
#jack.enable = true;

Media Session Manager

  # use the example session manager (no others are packaged yet so this is enabled by default,
  # no need to redefine it in your config for now)
  #media-session.enable = true;
};

Touchpad Support

Enable touchpad support (enabled default in most desktopManager).

# services.xserver.libinput.enable = true;

Default User Shell

users.defaultUserShell - pkgs.fish;

User Account

Define a user account. Don’t forget to set a password with ‘passwd’.

users.users.gb = {
  isNormalUser = true;
  description = "gb";
  extraGroups = [ "networkmanager" "wheel" "kvm" "libvirt"];
  packages = with pkgs; [
    firefox
  #  thunderbird
  ];
};

Automatic Login

Enable Automatic login for the user

#services.xserver.displayManager.autoLogin.enable = true;
#services.xserver.displayManager.autoLogin.user = "gb";

Unfree Packages

Enabling Nonfree software.

nixpkgs.config.allowUnfree = true;

Building Emacs From Source

  nixpkgs.overlays = [
  (import (builtins.fetchTarball https://github.com/nix-community/emacs-overlay/archive/master.tar.gz))
];

System Packages

List packages installed in system profile. To search, run: $ nix search wget

environment.systemPackages = with pkgs; [

Command Line Stuff

#command line stuff
pkgs.wget #A command line tool for downloading things from the internet
pkgs.git #A distributed version control system
pkgs.btop #A tool for monitoring system information
pkgs.hyfetch #A replacement for neofetch adds pride flags and maintained neowofetch
pkgs.exa #A replacement for ls written in rust
pkgs.fd #A replacement for find written in rust
pkgs.ripgrep #A replacement for grep also written in rust
pkgs.clang
pkgs.pandoc #A tool for converting files written in Haskell
pkgs.gnuplot #A tool for ploting graphs

Shells

#shells
pkgs.home-manager
pkgs.pkgs.zsh
pkgs.zsh-syntax-highlighting
pkgs.fish #the Friendly Interactive SHell: Finally a shell for the 90's
pkgs.oh-my-fish

Terminal Emulators

#Terminal Emulators
pkgs.kitty #A GPU accelerated terminal editor with tabs
pkgs.kitty-themes
pkgs.alacritty #A GPU accelerated terminal editor written in rust

Text Editors

#Text Editors
pkgs.neovim #A mid fall back editor
pkgs.emacs #The greatest editor of all times
pkgs.micro #An excellent fall back editor

Internet

#Internet
pkgs.brave
pkgs.firefox
pkgs.zoom-us

Productivity

#Productivity
pkgs.mpv
pkgs.libreoffice #The best libre office suite
pkgs.cura
#rustdesk

Gaming

#Gaming
pkgs.steam
pkgs.discord
pkgs.element-desktop

Window Manger Stuff

#Window Manager stuff
pkgs.sddm
pkgs.hyprland
pkgs.wofi
pkgs.awesome
pkgs.dmenu
pkgs.nitrogen #A tool for setting wallpaper's on X11
pkgs.cinnamon.nemo #A good GUI file-manager
pkgs.arandr
pkgs.lxappearance #A tool for setting themes

Fonts

#Fonts
pkgs.jetbrains-mono
pkgs.overpass
pkgs.source-sans-pro
pkgs.julia-mono
pkgs.iosevka

Utils

#Utils
pkgs.cmake
pkgs.hunspell
pkgs.enchant #A library for interacting with different spell checking back ends

Languages

  #Languages
  pkgs.go
  pkgs.gopls
  pkgs.kotlin
  pkgs.kotlin-language-server
  pkgs.python
  pkgs.lua
  pkgs.lua-language-server
];

SUID Wrappers

# 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;
# };

Enabled Services

SSH Daemon

# services.openssh.enable = true;

Firewall Settings

# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;

NixOS Version

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. It‘s 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 = "23.05"; # Did you read the comment?

}

nix's People

Contributors

game-warrior avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.