From 4892f8bb0ccf7e8bba24c03b8143330f0be7d650 Mon Sep 17 00:00:00 2001 From: Felix Tenley Date: Fri, 18 Oct 2019 20:05:36 +0200 Subject: [PATCH] add work config --- home/felschr-work.nix | 143 ++++++++++++++++++++++++++++++++++++ work-pc.nix | 167 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 310 insertions(+) create mode 100644 home/felschr-work.nix create mode 100644 work-pc.nix diff --git a/home/felschr-work.nix b/home/felschr-work.nix new file mode 100644 index 0000000..16a20f1 --- /dev/null +++ b/home/felschr-work.nix @@ -0,0 +1,143 @@ +{ config, pkgs, ... }: + +with pkgs; +let + unstable = import { + config = removeAttrs config.nixpkgs.config [ "packageOverrides" ]; + }; + shellAliases = { + chromium = "chromium --force-dark-mode"; + emacs = "emacsclient -c"; + }; + dotnet-sdk_3 = pkgs.callPackage (import (pkgs.fetchFromGitHub { + name = "nixos-pr-dotnet-sdk_3"; + owner = "NixOS"; + repo = "nixpkgs"; + rev = "c3978355e1b1b23a0e1af5abe4a8901321126f49"; + sha256 = "006jxl07kfl2qbsglx0nsnmygdj3wvwfl98gpl3bprrja0l4gplk"; + } + /pkgs/development/compilers/dotnet/sdk/3.nix )) {}; +in +{ + imports = [ + # ./vscode.nix + ]; + + home-manager.users.felschr = { + nixpkgs.config.allowUnfree = true; + nixpkgs.config.allowBroken = true; # needed for steam + + xdg.mimeApps.enable = true; + xdg.mimeApps.defaultApplications = { + "text/html" = [ "chromium-browser.desktop" ]; + "text/calendar" = [ "chromium-browser.desktop" ]; + "x-scheme-handler/mailto" = [ "chromium-browser.desktop" ]; + }; + + # xsession.enable = true; + # xsession.windowManager.xmonad.enable = true; + # xsession.windowManager.command = "gnome-shell"; + + dconf.enable = true; + dconf.settings = { + "org/gnome/shell" = { + enabled-extensions = [ + "dash-to-panel@jderose9.github.com" + "TopIcons@phocean.net" + ]; + favorite-apps = [ + "org.gnome.Nautilus.desktop" + "chromium-browser.desktop" + "code.desktop" + ]; + }; + "org/gnome/shell/extensions/dash-to-panel" = { + appicon-padding = 4; + panel-size = 36; + }; + }; + + gtk.enable = true; + gtk.theme.name = "Adwaita-dark"; + gtk.gtk3.extraConfig = { + gtk-application-prefer-dark-theme = true; + }; + + services.redshift = { + enable = true; + latitude = "53.2603609"; + longitude = "10.4014691"; + }; + + programs.direnv = { + enable = true; + enableBashIntegration = true; + enableFishIntegration = true; + }; + + programs.bash = { + inherit shellAliases; + }; + + programs.fish = { + enable = true; + inherit shellAliases; + }; + + programs.neovim = { + enable = true; + viAlias = true; + vimAlias = true; + plugins = with pkgs.vimPlugins; [ + vim-nix + ]; + }; + + programs.git = { + enable = true; + userName = "Felix Schroeter"; + userEmail = "fs@upsquared.com"; + }; + + services.emacs.enable = true; + programs.emacs.enable = true; + + services.keybase.enable = true; + services.kbfs.enable = true; + + programs.chromium = { + enable = true; + }; + + programs.firefox.enable = true; + + home.file.".envrc".text = '' + dotenv + ''; + + home.sessionVariables = { + }; + + home.packages = with pkgs; [ + gparted + + # productivity + signal-desktop + discord + keybase-gui + libreoffice + skypeforlinux + vscode + + # development tools + unzip + # dotnet-sdk + dotnet-sdk_3 + omnisharp-roslyn + kubectl + kubernetes-helm + awscli + ]; + + home.stateVersion = "19.09"; + }; +} diff --git a/work-pc.nix b/work-pc.nix new file mode 100644 index 0000000..a4a32a9 --- /dev/null +++ b/work-pc.nix @@ -0,0 +1,167 @@ +# Import unstable and home-manager channels: +# sudo nix-channel --add http://nixos.org/channels/nixos-unstable nixos-unstable +# sudo nix-channel --add https://github.com/rycee/home-manager/archive/release-19.09.tar.gz home-manager +# sudo nix-channel --update + +{ config, pkgs, ... }: + +let + unstable = import { + config = removeAttrs config.nixpkgs.config [ "packageOverrides" ]; + }; +in +{ + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + + ./home/felschr-work.nix + ]; + + # configure unfree and unstable packages + nixpkgs.config.allowUnfree = true; + + nixpkgs.overlays = [ + ]; + + # Use the systemd-boot EFI boot loader. + boot.initrd.luks.devices = [ + { + name = "root"; + device = "/dev/disk/by-partlabel/nixos"; + preLVM = true; + allowDiscards = true; + } + ]; + boot.kernelPackages = pkgs.linuxPackages_latest; + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + networking.hostName = "pilot1-nixos"; # Define your hostname. + # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. + + # Select internationalisation properties. + i18n = { + consoleFont = "Lat2-Terminus16"; + consoleKeyMap = "uk"; + defaultLocale = "en_GB.UTF-8"; + inputMethod.enabled = "ibus"; + inputMethod.ibus.engines = with pkgs.ibus-engines; [ uniemoji ]; + }; + + # Set your time zone. + time.timeZone = "Europe/Berlin"; + + programs.slock.enable = true; + + environment.shellAliases = { + chromium = "chromium --force-dark-mode"; + }; + + # List packages installed in system profile. To search, run: + # $ nix search wget + environment.systemPackages = with pkgs; [ + wget + curl + networkmanager + neovim + docker-compose + + # gnome3.gnome-screensaver + gnome3.dconf-editor + gnome3.gnome-tweaks + gnomeExtensions.dash-to-panel + gnomeExtensions.topicons-plus + ]; + + # Use noto fonts with emoji support + fonts.enableDefaultFonts = true; + + # Enable CUPS to print documents. + services.printing.enable = true; + + hardware.bluetooth.enable = true; + + # Enable sound. + sound.enable = true; + hardware.pulseaudio = { + enable = true; + support32Bit = true; + extraModules = [ pkgs.pulseaudio-modules-bt ]; + package = pkgs.pulseaudioFull; + }; + hardware.bluetooth.extraConfig = " + [General] + Enable=Source,Sink,Media,Socket + "; + + # NVIDIA drivers + # services.xserver.videoDrivers = [ "intel" "vesa" ]; + # services.xserver.videoDrivers = [ "nvidia" ]; + # hardware.nvidia.optimus_prime.enable = true; + # hardware.nvidia.optimus_prime.nvidiaBusId = "PCI:2:0:0"; + # hardware.nvidia.optimus_prime.intelBusId = "PCI:0:2:0"; + hardware.bumblebee.enable = true; + # hardware.bumblebee.connectDisplay = true; + hardware.opengl.driSupport32Bit = true; + + # Enable special device support + hardware.ledger.enable = true; + hardware.u2f.enable = true; + + # Enable the X11 windowing system. + services.xserver.enable = true; + services.xserver.layout = "gb"; + services.xserver.xkbOptions = "eurosign:e"; + + # Enable Gnome 3 + services.xserver.displayManager.gdm.enable = true; + services.xserver.displayManager.gdm.wayland = false; + # services.xserver.displayManager.lightdm.enable = true; + + # services.xserver.windowManager.default = "xmonad"; + # services.xserver.windowManager.xmonad.enable = true; + # services.xserver.windowManager.i3.enable = true; + + services.xserver.desktopManager.gnome3.enable = true; + environment.gnome3.excludePackages = with pkgs; [ + gnome3.geary + gnome3.gnome-weather + gnome3.gnome-calendar + gnome3.gnome-maps + gnome3.gnome-contacts + gnome3.gnome-software + gnome3.gnome-packagekit + gnome3.epiphany + ]; + + services.dbus.packages = with pkgs; [ + gnome3.dconf gnome2.GConf + ]; + + virtualisation.docker.enable = true; + virtualisation.virtualbox.host.enable = true; + + # Define a user account. Don't forget to set a password with ‘passwd’. + users.users.felschr = { + isNormalUser = true; + extraGroups = [ "wheel" "audio" "docker" "disk" "vboxusers" ]; # Enable ‘sudo’ for the user. + shell = pkgs.fish; + }; + + nix.autoOptimiseStore = true; + # nix.optimise.automatic = true; + nix.gc = { + automatic = true; + dates = "weekly"; + options = "--delete-older-than 30d"; + }; + + # 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.09"; # Did you read the comment? + + system.autoUpgrade.enable = true; +}