Browse Source

first commit

master
Martin Klimeš 5 years ago
commit
feaafeb76c
5 changed files with 289 additions and 0 deletions
  1. +124
    -0
      configuration.nix
  2. +25
    -0
      hardware-configuration.nix
  3. +59
    -0
      packages.nix
  4. +30
    -0
      users.nix
  5. +51
    -0
      workstation.nix

+ 124
- 0
configuration.nix View File

@ -0,0 +1,124 @@
# 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 =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
./users.nix
./workstation.nix
];
# Use the GRUB 2 boot loader.
boot.loader.grub.enable = true;
boot.loader.grub.version = 2;
# boot.loader.grub.efiSupport = true;
# boot.loader.grub.efiInstallAsRemovable = true;
# boot.loader.efi.efiSysMountPoint = "/boot/efi";
# Define on which hard drive you want to install Grub.
boot.loader.grub.device = "/dev/sda"; # or "nodev" for efi only
programs.vim.defaultEditor = true;
programs.wireshark.enable = true;
networking.hostName = "kurixos"; # Define your hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
networking.networkmanager.enable = true;
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
nixpkgs.config.allowUnfree = true;
# Select internationalisation properties.
i18n = {
consoleFont = "Lat2-Terminus16";
consoleKeyMap = "uk";
defaultLocale = "en_GB.UTF-8";
};
services.emacs.enable = true;
# services.emacs.package = import /home/klimi/.emacs.d { pkgs = pkgs; };
# Set your time zone.
time.timeZone = "Europe/Prague";
hardware.pulseaudio.support32Bit = true;
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = import ./packages.nix {pkgs = pkgs;};
# 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;
# Enable CUPS to print documents.
services.printing.enable = true;
# Enable sound.
sound.enable = true;
hardware.pulseaudio.enable = true;
# Enable the X11 windowing system.
services.xserver.enable = true;
services.xserver.layout = "gb";
# services.xserver.xkbOptions = "eurosign:e";
# services.xserver.windowManager.xmonad.enable = true;
services.xserver.videoDrivers = [ "nvidiaLegacy340" ];
# hardware.opengl.driSupport32Bit = true;
# Enable touchpad support.
services.xserver.libinput.enable = true;
services.xserver.libinput.tapping = true;
fonts.fonts = with pkgs; [
caladea
carlito
cantarell-fonts
comic-relief
liberation_ttf
fira
fira-mono
dejavu_fonts
powerline-fonts
];
security.sudo.configFile =
''
Defaults:root,%wheel env_keep+=LOCALE_ARCHIVE
Defaults:root,%wheel env_keep+=NIX_PATH
Defaults:root,%wheel env_keep+=TERMINFO_DIRS
Defaults env_keep+=SSH_AUTH_SOCK
Defaults lecture=never
Defaults shell_noargs
root ALL=(ALL) SETENV: ALL
%wheel ALL=(ALL) NOPASSWD: ALL, SETENV: ALL
'';
# Enable the KDE Desktop Environment.
# services.xserver.displayManager.sddm.enable = true;
# services.xserver.desktopManager.plasma5.enable = true;
# Define a user account. Don't forget to set a password with ‘passwd’.
programs.fish.enable = true;
programs.tmux.enable = true;
# 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 = "18.09"; # Did you read the comment?
}

+ 25
- 0
hardware-configuration.nix View File

@ -0,0 +1,25 @@
# Do not modify this file! It was generated by ‘nixos-generate-config’
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, ... }:
{
imports =
[ <nixpkgs/nixos/modules/installer/scan/not-detected.nix>
];
boot.initrd.availableKernelModules = [ "ehci_pci" "ahci" "usb_storage" "sd_mod" ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/72ae2769-3a3e-4bcd-9878-2e0a6fc7e003";
fsType = "ext4";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/0b909833-0603-4923-84c9-9b2e8e6c4a72"; }
];
nix.maxJobs = lib.mkDefault 4;
}

+ 59
- 0
packages.nix View File

@ -0,0 +1,59 @@
{ pkgs, ... }:
with pkgs;
[
wget
# Editors
vim emacs
# Instant Messaging
tdesktop weechat
# Art
gimp krita blender
# Games
multimc
# Internet
firefox
# Terminal Emulator
alacritty
# Readers
zathura mupdf
# Viewers
feh w3m
# Bar
polybar
# App Search
rofi
# Office Tools
texlive.combined.scheme-basic
# MicroControler development
arduino
stdenv
findutils
coreutils
psmisc
iputils
nettools
netcat
rsync
iotop
python
unzip
zip
p7zip
bind
file
bc
sshuttle
lsof
patchelf
binutils
git
gcc
fuse
nmap
tomb
gnupg
nixos-container
nix-prefetch-git
]

+ 30
- 0
users.nix View File

@ -0,0 +1,30 @@
{ pkgs, ... }:
{
users.extraGroups = [
{ name = "jonas"; gid = 1000; }
];
# Define a user account. Don't forget to set a password with ‘passwd’.
users.extraUsers.jonas = {
description = "Martin Klimes";
home = "/home/klimi";
group = "klimi";
extraGroups = [
"users"
"wheel"
"root"
"adm"
"cdrom"
"fuse"
"wireshark"
"sway"
"networkmanager"
];
uid = 1000;
isNormalUser = true;
useDefaultShell = false;
shell = pkgs.fish;
#openssh.authorizedKeys.keys = [
# "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKiAS30ZO+wgfAqDE9Y7VhRunn2QszPHA5voUwo+fGOf jonas"
# ];
};
}

+ 51
- 0
workstation.nix View File

@ -0,0 +1,51 @@
{ pkgs, ... }:
{
# Enable CUPS to print documents.
services.printing.enable = true;
# programs.sway.enable = true;
# programs.sway.extraPackages = with pkgs; [
# i3status xwayland dmenu termite
# ];
# programs.sway.extraSessionCommands = ''
# export XKB_DEFAULT_LAYOUT="us"
# export XKB_DEFAULT_VARIANT="altgr-intl"
# export XKB_DEFAULT_OPTIONS="eurosign:e"
# export WLC_REPEAT_DELAY=660
# export WLC_REPEAT_RATE=25
# '';
# Enable the X11 windowing system.
services.xserver.enable = true;
services.xserver.enableCtrlAltBackspace = true;
services.xserver.layout = "gb";
# services.xserver.xkbVariant = "altgr-intl";
# services.xserver.xkbOptions = "eurosign:e";
# Enable XMonad
services.xserver.windowManager.xmonad.enable = true;
services.xserver.windowManager.xmonad.enableContribAndExtras = true;
services.xserver.windowManager.xmonad.extraPackages = self: [
self.yeganesh
self.taffybar
self.xmobar
pkgs.dmenu2
];
#services.xserver.displayManager.lightdm.enable = true;
services.xserver.displayManager.slim.defaultUser = "klimi";
services.xserver.displayManager.job.logToFile = true;
# services.xserver.desktopManager.gnome3.enable = true;
# services.xserver.desktopManager.xterm.enable = false;
services.upower.enable = true;
# Haskell Reflex FRP
# nix.trustedBinaryCaches = [
# "https://nixcache.reflex-frp.org"
# ];
# nix.binaryCachePublicKeys = [
# "ryantrinkle.com-1:JJiAKaRv9mWgpVAz8dwewnZe0AzzEAzPkagE9SP5NWI="
# ];
#services.xserver.windowManager.xmonad.enableContribAndExtras = true;
}

Loading…
Cancel
Save