diff --git a/.gitignore b/.gitignore index a01ee28..6862725 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ .*.swp +/result +*.qcow2 diff --git a/colord.nix b/colord.nix new file mode 100644 index 0000000..c3dedbb --- /dev/null +++ b/colord.nix @@ -0,0 +1,17 @@ +{ config, pkgs, ... }: + +{ + environment.systemPackages = [ pkgs.colord ]; + services.dbus.packages = [ pkgs.colord ]; + + systemd.services.colord = { + description = "Manage, Install and Generate Color Profiles"; + serviceConfig = { + Type = "dbus"; + BusName = "org.freedesktop.ColorManager"; + ExecStart = "${pkgs.colord}/libexec/colord"; + User = "root"; + PrivateTmp = "yes"; + }; + }; +} diff --git a/common.nix b/common.nix index 5fda0f8..e749b6e 100644 --- a/common.nix +++ b/common.nix @@ -4,7 +4,7 @@ imports = [ /etc/nixos/hardware-configuration.nix - ./gnome3.nix + ./i3.nix ]; boot.kernelPackages = pkgs.linuxPackages_latest; diff --git a/gnome3.nix b/gnome3.nix index a09b0b8..a361419 100644 --- a/gnome3.nix +++ b/gnome3.nix @@ -32,5 +32,4 @@ services.xserver.layout = "us"; services.xserver.xkbVariant = "altgr-intl"; services.xserver.xkbOptions = "caps:ctrl_modifier"; - services.dbus.packages = [ pkgs.colord ]; } diff --git a/i3.nix b/i3.nix new file mode 100644 index 0000000..a2a1d4d --- /dev/null +++ b/i3.nix @@ -0,0 +1,100 @@ +{ config, pkgs, ... }: + +{ + programs.ibus.enable = true; + programs.ibus.plugins = [ pkgs.ibus-anthy pkgs.mozc ]; + + environment.systemPackages = with pkgs; with haskellngPackages; with gnome3; [ + i3 + i3status + rofi + pa_applet + feh + gnome_keyring + networkmanagerapplet + gnome_terminal + colord + evince + arandr + ] ++ gnome3.corePackages; + + environment.gnome3.packageSet = pkgs.gnome3_16; + nixpkgs.config.packageOverrides = pkgs: rec { + gnome3 = pkgs.gnome3_16; + }; + + fonts = { + fonts = with pkgs; [ + inconsolata + dejavu_fonts + ipafont + unifont + ubuntu_font_family + + cantarell_fonts # from gnome3 module + ]; + }; + + services.xserver = { + enable = true; + + displayManager = { + slim.enable = true; + slim.defaultUser = "gebner"; + # slim.autoLogin = true; + }; + + desktopManager = { + default = "i3wm"; + xterm.enable = false; + + session = [ { + name = "i3wm"; + start = '' + ${pkgs.gnome3.gnome_settings_daemon}/libexec/gnome-settings-daemon-localeexec & + ${pkgs.i3}/bin/i3 & + waitPID=$! + ''; + } ]; + }; + + windowManager = { + default = "i3"; + i3.enable = true; + }; + + layout = "us"; + xkbVariant = "altgr-intl"; + xkbOptions = "caps:ctrl_modifier"; + }; + + services.dbus.packages = with pkgs; [ colord dunst ]; + + # copied from gnome3 module + security.polkit.enable = true; + services.udisks2.enable = true; + services.accounts-daemon.enable = true; + services.geoclue2.enable = true; + services.gnome3.at-spi2-core.enable = true; + services.gnome3.evolution-data-server.enable = true; + # services.gnome3.gnome-documents.enable = true; + services.gnome3.gnome-keyring.enable = true; + services.gnome3.gnome-online-accounts.enable = true; + services.gnome3.gnome-user-share.enable = true; + services.gnome3.gvfs.enable = true; + services.gnome3.seahorse.enable = true; + services.gnome3.sushi.enable = true; + services.gnome3.tracker.enable = true; + hardware.pulseaudio.enable = true; + services.telepathy.enable = true; + networking.networkmanager.enable = true; + services.upower.enable = config.powerManagement.enable; + hardware.bluetooth.enable = true; + # Needed for themes and backgrounds + environment.pathsToLink = [ "/share" ]; + environment.variables.GIO_EXTRA_MODULES = with pkgs.gnome3; [ + "${dconf}/lib/gio/modules" + "${glib_networking}/lib/gio/modules" + "${gvfs}/lib/gio/modules" ]; + +}