Commit b6a446d98a10

Vincent Demeester <vincent@sbr.pm>
2020-06-29 08:44:46
systems/hokkaido: experiment with gnome3 setup
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
1 parent 54372d4
Changed files (4)
systems/hokkaido.nix
@@ -1,4 +1,4 @@
-{ lib, ... }:
+{ pkgs, lib, ... }:
 
 with lib;
 let
@@ -34,18 +34,81 @@ in
     hostName = hostname;
   };
 
+  boot = {
+    tmpOnTmpfs = true;
+    plymouth.enable = true;
+  };
+
+  hardware.bluetooth.enable = true;
   profiles = {
+    syncthing.enable = true;
     home = true;
     laptop.enable = true;
+    desktop.enable = lib.mkForce false;
     avahi.enable = true;
     git.enable = true;
     ssh.enable = true;
     dev.enable = true;
     yubikey.enable = true;
+    virtualization = { enable = true; nested = true; };
+  };
+  environment.systemPackages = with pkgs; [ virtmanager ];
+
+  networking.networkmanager = {
+    enable = true;
+    unmanaged = [
+      "interface-name:ve-*"
+      "interface-name:veth*"
+      "interface-name:wg0"
+      "interface-name:docker0"
+      "interface-name:virbr*"
+    ];
+    packages = with pkgs; [ networkmanager-openvpn ];
+  };
+
+  services.xserver.enable = true;
+  services.xserver.layout = "fr";
+  services.xserver.xkbVariant = "bepo";
+  services.xserver.xkbOptions = "grp:menu_toggle,grp_led:caps,compose:caps";
+  services.xserver.displayManager.gdm.enable = true;
+  services.xserver.desktopManager.gnome3.enable = true;
+  services.gnome3.chrome-gnome-shell.enable = true;
+  services.gnome3.core-shell.enable = true;
+  services.gnome3.core-os-services.enable = true;
+  services.gnome3.core-utilities.enable = true;
+
+  fonts = {
+    enableFontDir = true;
+    enableGhostscriptFonts = true;
+    fonts = with pkgs; [
+      corefonts
+      dejavu_fonts
+      emojione
+      feh
+      fira
+      fira-code
+      fira-code-symbols
+      fira-mono
+      hasklig
+      inconsolata
+      iosevka
+      noto-fonts
+      noto-fonts-cjk
+      noto-fonts-emoji
+      noto-fonts-extra
+      overpass
+      symbola
+      source-code-pro
+      twemoji-color-font
+      ubuntu_font_family
+      unifont
+    ];
   };
 
   services = {
     fprintd.enable = true;
+    # FIXME re-generate hokkaido key
+    /*
     wireguard = {
       enable = true;
       ips = ips;
@@ -53,6 +116,7 @@ in
       endpointPort = endpointPort;
       endpointPublicKey = endpointPublicKey;
     };
+    */
   };
 
   virtualisation.containers = {
users/vincent/desktop/gnome.nix
@@ -0,0 +1,78 @@
+{ pkgs, ... }:
+
+{
+  imports = [
+    # autorandr
+    ./finances.nix
+    ./firefox.nix
+    ./next.nix
+    ./gtk.nix
+    ./keyboard.nix
+    ./mpv.nix
+    ./redshift.nix
+    ./spotify.nix
+  ];
+  home.sessionVariables = { WEBKIT_DISABLE_COMPOSITING_MODE = 1; };
+  home.packages = with pkgs; [
+    gnome3.dconf-editor
+    gnome3.gnome-tweak-tool
+    gnome3.pomodoro
+    gnome3.gnome-boxes
+
+    gnome3.gnome-documents
+    gnome3.gnome-nettool
+    gnome3.gnome-power-manager
+    gnome3.gnome-todo
+    gnome3.gnome-tweaks
+    gnome3.gnome-usage
+
+    gnomeExtensions.sound-output-device-chooser
+    gnomeExtensions.paperwm
+    gnome3.gnome-shell-extensions
+
+    pop-gtk-theme
+    pop-icon-theme
+    pinentry-gnome
+
+    aspell
+    aspellDicts.en
+    aspellDicts.fr
+    hunspell
+    hunspellDicts.en_US-large
+    hunspellDicts.en_GB-ize
+    hunspellDicts.fr-any
+    wmctrl
+    xclip
+    xdg-user-dirs
+    xdg_utils
+    xsel
+    # TODO make this an option
+    slack
+    # FIXME move this elsewhere
+    keybase
+    pass
+    profile-sync-daemon
+  ];
+
+  home.file.".XCompose".source = ./xorg/XCompose;
+  home.file.".Xmodmap".source = ./xorg/Xmodmap;
+  xdg.configFile."xorg/emoji.compose".source = ./xorg/emoji.compose;
+  xdg.configFile."xorg/parens.compose".source = ./xorg/parens.compose;
+  xdg.configFile."xorg/modletters.compose".source = ./xorg/modletters.compose;
+
+  xdg.configFile."nr/desktop" = {
+    text = builtins.toJSON [
+      { cmd = "peek"; }
+      { cmd = "shutter"; }
+      { cmd = "station"; }
+      { cmd = "dmenu"; }
+      { cmd = "sxiv"; }
+      { cmd = "screenkey"; }
+      { cmd = "gimp"; }
+      { cmd = "update-desktop-database"; pkg = "desktop-file-utils"; chan = "unstable"; }
+      { cmd = "lgogdownloader"; chan = "unstable"; }
+      { cmd = "xev"; pkg = "xorg.xev"; }
+    ];
+    onChange = "${pkgs.my.nr}/bin/nr desktop";
+  };
+}
users/vincent/default.nix
@@ -49,6 +49,7 @@ in
     ]
     ++ optionals config.profiles.dev.enable [ (import ./dev) ]
     ++ optionals config.profiles.desktop.enable [ (import ./desktop) ]
+    ++ optionals config.services.xserver.desktopManager.gnome3.enable [ (import ./desktop/gnome.nix) ]
     ++ optionals (config.networking.hostName == "wakasu") [{
       programs.google-chrome.enable = true;
       home.packages = with pkgs; [
tasks.org
@@ -662,3 +662,13 @@
   + need to identify requirements on naruhodo
     - package list
     - features (sharing, xorg/wayland,vpn, kerberos)
+** TODO Initial gnome3 setup
+
+** TODO gnome3 modules
+
+** TODO gnome settings
+
+** TODO boxes and libvirt
+** TODO redhat sepcifics
+
+** TODO Add gnome3 extensions