diff options
author | Alan Pearce | 2019-10-02 16:55:35 +0200 |
---|---|---|
committer | Alan Pearce | 2019-10-02 16:55:35 +0200 |
commit | 340b2c244c0b7c331f6633edf9a69f1381916ad2 (patch) | |
tree | 2f430f20fbe01191c6b4a455bf792facef3f4fe7 /system/modules/user-interface.nix | |
parent | ec7f1357d16ff2f4aa7430a2940a0b9519018595 (diff) | |
parent | 5016c7440ad771fd990e1aa142fc4de0bdc382bd (diff) | |
download | nixfiles-340b2c244c0b7c331f6633edf9a69f1381916ad2.tar.lz nixfiles-340b2c244c0b7c331f6633edf9a69f1381916ad2.tar.zst nixfiles-340b2c244c0b7c331f6633edf9a69f1381916ad2.zip |
Add 'system/' from commit '5016c7440ad771fd990e1aa142fc4de0bdc382bd'
git-subtree-dir: system git-subtree-mainline: ec7f1357d16ff2f4aa7430a2940a0b9519018595 git-subtree-split: 5016c7440ad771fd990e1aa142fc4de0bdc382bd
Diffstat (limited to 'system/modules/user-interface.nix')
-rw-r--r-- | system/modules/user-interface.nix | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/system/modules/user-interface.nix b/system/modules/user-interface.nix new file mode 100644 index 00000000..7c98d291 --- /dev/null +++ b/system/modules/user-interface.nix @@ -0,0 +1,144 @@ +{ config, pkgs, lib, makeDesktopItem, ... }: + +let + emacsPackage = import ../packages/emacs.nix { + pkgs = pkgs.unstable; + emacs = pkgs.unstable.emacs.override { + withGTK3 = false; + }; + }; + editorScript = pkgs.writeScriptBin "edit" '' + #!${pkgs.runtimeShell} + if [ -z "$1" ]; then + exec ${emacsPackage}/bin/emacsclient --create-frame --alternate-editor ${emacsPackage}/bin/emacs + else + exec ${emacsPackage}/bin/emacsclient --alternate-editor ${emacsPackage}/bin/emacs "$@" + fi + ''; + desktopApplicationFile = makeDesktopItem { + name = "emacsclient.desktop"; + destination = "/share/applications/emacsclient.desktop"; + text = '' + [Desktop Entry] + Name=Emacsclient + GenericName=Text Editor + Comment=Edit text + MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++; + Exec=${editorScript}/bin/edit %F + Icon=emacs + Type=Application + Terminal=false + Categories=Development;TextEditor; + StartupWMClass=Emacs + Keywords=Text;Editor; + ''; + }; +in +{ documentation.info.enable = true; + nixpkgs.config.firefox.enableOfficialBranding = true; + + nixpkgs.config.packageOverrides = pkgs: { + myEmacs = emacsPackage; + }; + environment.systemPackages = with pkgs; [ + aria2 + firefox + pcmanfm + + epdfview + geeqie + + cmus + + fish # for emacs-fish-completion + myEmacs + editorScript + + unstable.xst # st, but with support for XResources + + lxappearance + lxrandr + lxtask + + python3Packages.keyring + isync + msmtp + html2text + + weechat + + unstable.pass-otp + + mpv + + mosh + aspell + aspellDicts.en + + cifs-utils + hexchat + signal-desktop + wire-desktop + + trash-cli + ] ++ (if !stdenv.isDarwin + then [ + unstable.mu + ] + else []); + + nixpkgs.config.allowUnfree = true; + + services.compton = { + enable = true; + }; + + services.devmon.enable = true; + + environment.sessionVariables.TERMINAL = "st"; + + systemd.user.services.trash-clean = { + path = with pkgs; [ trash-cli ]; + description = "Remove old files from FreeDesktop.org trash"; + + serviceConfig = { + Type = "oneshot"; + }; + script = "trash-empty 30"; + }; + systemd.user.timers.trash-clean = { + wantedBy = [ "default.target" ]; + timerConfig = { + OnCalendar = "weekly"; + Persistent = true; + }; + }; + + environment.variables = { + # This is required so that GTK applications launched from Emacs + # get properly themed: + GTK_DATA_PREFIX = "${config.system.path}"; + EDITOR = lib.mkOverride 900 "${editorScript}/bin/edit"; + }; + + services.redshift = { + enable = true; + temperature = { + day = 6500; + night = 3600; + }; + }; + + programs.ssh.startAgent = true; + + programs.dconf.enable = true; + services.gnome3 = { + gnome-keyring.enable = true; + seahorse.enable = true; + at-spi2-core.enable = true; + }; + + imports = [ + ./services/xserver.nix + ]; +} |