From feaafeb76c2378245e9f10a4627d52bf4f045b72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Klime=C5=A1?= Date: Fri, 21 Dec 2018 12:28:04 +0100 Subject: [PATCH] first commit --- configuration.nix | 124 +++++++++++++++++++++++++++++++++++++ hardware-configuration.nix | 25 ++++++++ packages.nix | 59 ++++++++++++++++++ users.nix | 30 +++++++++ workstation.nix | 51 +++++++++++++++ 5 files changed, 289 insertions(+) create mode 100644 configuration.nix create mode 100644 hardware-configuration.nix create mode 100644 packages.nix create mode 100644 users.nix create mode 100644 workstation.nix diff --git a/configuration.nix b/configuration.nix new file mode 100644 index 0000000..70c2aaa --- /dev/null +++ b/configuration.nix @@ -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? + +} diff --git a/hardware-configuration.nix b/hardware-configuration.nix new file mode 100644 index 0000000..d12bbdd --- /dev/null +++ b/hardware-configuration.nix @@ -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 = + [ + ]; + + 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; +} diff --git a/packages.nix b/packages.nix new file mode 100644 index 0000000..563e1bd --- /dev/null +++ b/packages.nix @@ -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 + ] diff --git a/users.nix b/users.nix new file mode 100644 index 0000000..25f0033 --- /dev/null +++ b/users.nix @@ -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" + # ]; + }; +} diff --git a/workstation.nix b/workstation.nix new file mode 100644 index 0000000..a824b49 --- /dev/null +++ b/workstation.nix @@ -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; +}