diff --git a/defaults/base/applications.nix b/defaults/base/applications.nix index e5d88a8..7ec3fc0 100644 --- a/defaults/base/applications.nix +++ b/defaults/base/applications.nix @@ -20,7 +20,7 @@ rename wipe gnupg - pass + pass-wayland pwgen units powertop diff --git a/defaults/base/default.nix b/defaults/base/default.nix index 5c1ca11..5431d61 100644 --- a/defaults/base/default.nix +++ b/defaults/base/default.nix @@ -7,10 +7,7 @@ in { boot.loader.timeout = 2; boot.tmpOnTmpfs = true; - console = { - font = "Lat2-Terminus16"; - keyMap = "de_CH-latin1"; - }; + console.keyMap = "de_CH-latin1"; i18n.defaultLocale = "en_US.UTF-8"; users.mutableUsers = false; @@ -25,11 +22,17 @@ in { }; # Package management - nix.trustedUsers = [ "root" "@wheel" ]; - nix.gc = { - automatic = true; - dates = "weekly"; - options = "--delete-older-than 30d"; + nix = { + trustedUsers = [ "root" "@wheel" ]; + gc = { + automatic = true; + dates = "weekly"; + options = "--delete-older-than 30d"; + }; + package = pkgs.nixFlakes; + extraOptions = '' + experimental-features = nix-command flakes + ''; }; system.autoUpgrade.enable = true; @@ -60,6 +63,7 @@ in { gitconfig.source = ./etc/gitconfig; vimrc.source = ./etc/vimrc; }; + programs.autojump.enable = true; programs.vim.defaultEditor = true; } diff --git a/defaults/base/unfree.nix b/defaults/base/unfree.nix index 8004d27..53e70ba 100644 --- a/defaults/base/unfree.nix +++ b/defaults/base/unfree.nix @@ -29,6 +29,7 @@ "pycharm-professional" "idea-ultimate" "android-studio-stable" + "android-studio-beta" "vmware-view" ]; diff --git a/defaults/desktop/applications.nix b/defaults/desktop/applications.nix deleted file mode 100644 index 9837d58..0000000 --- a/defaults/desktop/applications.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - - environment.systemPackages = with pkgs; - [ # Networking - unison - transmission # GUI Tools, maybe extract... - ] ++ [ # Desktop Environment Applications - firefox - google-chrome - chromium - midori - qutebrowser - gnome3.evolution # TODO: Evolution EWS - synergy - quicksynergy - simple-scan - nextcloud-client - owncloud-client - ] ++ [ # office # TODO: Migrate to office.nix - libreoffice-fresh # TODO: Dictionaries, nixos/nixpkgs#14430 - pdfgrep - pdftk - calibre - tectonic - texstudio - pandoc - system-config-printer - cups-pk-helper - cups-bjnp - gutenprint - gutenprintBin - hplipWithPlugin - gnome3.gnome-online-accounts - gnome3.gnome-control-center - ] ++ [ # Communication - signal-desktop - tdesktop - discord - mattermost-desktop - # pidgin pidgin-otr pidgin-with-plugins #TODO: Pidgin needed? - #TODO: ekiga? - skype - slack - teams - teamviewer - rdesktop - vmware-horizon-client - ]; - -} diff --git a/defaults/desktop/default.nix b/defaults/desktop/default.nix index 425c2a4..cc28483 100644 --- a/defaults/desktop/default.nix +++ b/defaults/desktop/default.nix @@ -1,15 +1,10 @@ { config, pkgs, lib, ... }: { imports = [ - ./applications.nix ./desktop-environment.nix - ./desktop-i3.nix + ./greeter.nix ./hardware.nix - ./multimedia.nix ./office-suite.nix - ./scripts.nix - ./security.nix - ./webapps.nix ]; } diff --git a/defaults/desktop/desktop-environment.nix b/defaults/desktop/desktop-environment.nix index 4b1525d..4d03c84 100644 --- a/defaults/desktop/desktop-environment.nix +++ b/defaults/desktop/desktop-environment.nix @@ -25,14 +25,13 @@ geary.enable = false; light.enable = true; - gnupg.agent.pinentryFlavor = "gtk2"; - dconf.enable = true; }; services.gnome3 = { # TODO: Do this manually and not all at once. core-utilities.enable = true; + core-os-services.enable = true; gnome-keyring.enable = true; evolution-data-server.enable = true; @@ -46,8 +45,9 @@ services.flatpak.enable = true; xdg.portal = { enable = true; - gtkUsePortal = true; - extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; + gtkUsePortal = false; + #extraPortals = [ pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-wlr ]; + extraPortals = [ pkgs.xdg-desktop-portal-wlr ]; }; } diff --git a/defaults/desktop/desktop-i3.nix b/defaults/desktop/desktop-i3.nix deleted file mode 100644 index db25ff1..0000000 --- a/defaults/desktop/desktop-i3.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ config, pkgs, lib, ... }: { - - services.xserver = { - enable = true; - desktopManager.xterm.enable = false; - displayManager = { - startx.enable = false; - lightdm.enable = true; - defaultSession = "none+i3"; - }; - windowManager.i3 = { - enable = true; - extraPackages = with pkgs; [ - xdotool # for passmenu - python37Packages.py3status - file # TODO: py3status dependencies that should be added to nixpkgs - i3status - i3lock - redshift - rofi # TODO: add themes to global shared - feh - gnome3.networkmanagerapplet - pulseaudioLight.out - gnome3.gnome-screenshot - ]; - }; - }; - - # Enable touchpad support. - services.xserver.libinput.enable = true; - - # i18n - services.xserver.layout = "ch,de"; - services.xserver.xkbOptions = "eurosign:e"; - -} diff --git a/defaults/desktop/greeter.nix b/defaults/desktop/greeter.nix new file mode 100644 index 0000000..87cd0a7 --- /dev/null +++ b/defaults/desktop/greeter.nix @@ -0,0 +1,21 @@ +{ config, pkgs, lib, ... }: { + + services.xserver.windowManager.i3.enable = true; + + services.xserver = { + enable = true; + desktopManager.xterm.enable = false; + displayManager = { + startx.enable = false; + lightdm.enable = true; + defaultSession = "sway"; + }; + + # Enable touchpad support. + libinput.enable = true; + + # TODO: Extract i18n + layout = "ch,de"; + xkbOptions = "eurosign:e"; + }; +} diff --git a/defaults/desktop/hardware.nix b/defaults/desktop/hardware.nix index 4071ec5..cd9fd21 100644 --- a/defaults/desktop/hardware.nix +++ b/defaults/desktop/hardware.nix @@ -6,12 +6,26 @@ # Enable sound. sound.enable = true; + nixpkgs.config.pulseaudio = true; hardware = { - pulseaudio.enable = true; + pulseaudio = { + enable = true; + extraModules = with pkgs; [ pulseaudio-modules-bt ]; + package = pkgs.pulseaudioFull; + extraConfig = '' + load-module module-switch-on-connect + ''; + }; opengl.enable = true; acpilight.enable = true; - bluetooth.enable = true; + bluetooth = { + enable = true; + package = pkgs.bluezFull; + config.General.Enable = "Source,Sink,Media,Socket"; + }; }; + programs.light.enable = true; + } diff --git a/defaults/desktop/multimedia.nix b/defaults/desktop/multimedia.nix deleted file mode 100644 index f413b2e..0000000 --- a/defaults/desktop/multimedia.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - - environment.systemPackages = with pkgs; - [ vlc v4l-utils calibre blender openshot-qt playerctl youtube-dl ] - ++ [ # Audio - audacity - enblend-enfuse - ffmpeg - mplayer - sox # TODO: mencoder? - vorbis-tools - vorbisgain - opusTools - flac - lame - id3lib - id3v2 # TODO: icedax? - pasystray - pavucontrol - spotify - ] ++ [ # Imaging - gimp - hugin - lensfun - luminanceHDR - darktable - geeqie - gphoto2 - # ImageMagick-perl perl-File-Type perl-Term-ProgressBar #TODO: Support libraries for scripts - inkscape - ghostscript - stellarium - unity3d - ] ++ [ # Codecs for Audio and Video - vobcopy - libdv - libdvbpsi # TODO: librtmp? - xvidcore - x264 - gst_all_1.gstreamer - gst_all_1.gst-vaapi - gst_all_1.gst-rtsp-server - gst_all_1.gst-libav - gst_all_1.gst-plugins-base - gst_all_1.gst-plugins-bad - gst_all_1.gst-plugins-good - gst_all_1.gst-plugins-ugly - ]; - -} diff --git a/defaults/desktop/office-suite.nix b/defaults/desktop/office-suite.nix index bc551fd..7970f1f 100644 --- a/defaults/desktop/office-suite.nix +++ b/defaults/desktop/office-suite.nix @@ -3,12 +3,15 @@ { # Hamster - environment.systemPackages = with pkgs; [ hamster ]; + environment.systemPackages = with pkgs; [ + hamster + openvpn + ]; # TODO: move openvpn programs.hamster.enable = true; # Fonts fonts.fonts = with pkgs; [ - google-fonts + # google-fonts # Breaks fwesome lalezar-fonts nahid-fonts nika-fonts @@ -30,7 +33,7 @@ comfortaa comic-neue comic-relief - corefonts + # corefonts # breaks fawesome culmus clearlyU creep @@ -42,13 +45,13 @@ cabin camingo-code cooper-hewitt - d2coding + #d2coding dosis dosemu_fonts eb-garamond eunomia ferrum - fixedsys-excelsior + # fixedsys-excelsior # Breaks fawesome emacs-all-the-icons-fonts emojione encode-sans @@ -123,9 +126,9 @@ overpass oxygenfonts #pecita - paratype-pt-mono - paratype-pt-sans - paratype-pt-serif + #paratype-pt-mono # Breaks fawseome + #paratype-pt-sans # Breaks fawseome + #paratype-pt-serif # Breaks fawseome penna poly powerline-fonts diff --git a/defaults/desktop/scripts.nix b/defaults/desktop/scripts.nix deleted file mode 100644 index 761663d..0000000 --- a/defaults/desktop/scripts.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ config, pkgs, lib, ... }: - -let - locksuspend = pkgs.writeScriptBin "locksuspend" '' - #!${pkgs.stdenv.shell} - set -euo pipefail - IFS=$'\n\t' - i3lock --ignore-empty-password --show-failed-attempts --color=000000 - sleep 0.5 - exec systemctl suspend - ''; -in { - - environment.homeBinInPath = true; - - environment.systemPackages = [ locksuspend ]; -} diff --git a/defaults/desktop/security.nix b/defaults/desktop/security.nix deleted file mode 100644 index d092f28..0000000 --- a/defaults/desktop/security.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - programs.gnupg.agent = { - enable = true; - enableSSHSupport = true; - }; - - services.pcscd.enable = true; - - # Ignore Broadcom smartcard - # See https://ludovicrousseau.blogspot.com/2015/12/remove-andor-customize-pcsc-reader-names.html - systemd.services.pcscd.environment.PCSCLITE_FILTER_IGNORE_READER_NAMES = - "Broadcom"; -} diff --git a/defaults/desktop/webapps.nix b/defaults/desktop/webapps.nix deleted file mode 100644 index 6862d09..0000000 --- a/defaults/desktop/webapps.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ config, pkgs, lib, ... }: - -let - web-app = name: url: - pkgs.writeScriptBin name '' - #!${pkgs.stdenv.shell} - exec ${pkgs.chromium}/bin/chromium --app="${url}" - ''; - whatsapp = web-app "whatsapp" "https://web.whatsapp.com/"; - threema = web-app "threema" "https://web.threema.ch/"; - netflix = web-app "netflix" "https://netflix.com/"; -in { environment.systemPackages = with pkgs; [ whatsapp netflix threema ]; } diff --git a/defaults/development-tools/default.nix b/defaults/development-tools/default.nix deleted file mode 100644 index 1315ade..0000000 --- a/defaults/development-tools/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - virtualisation = { # TODO: This should probably be somewhere else. - docker.enable = true; - libvirtd.enable = true; - }; - - environment.systemPackages = with pkgs; - [ - vscodium - jetbrains.webstorm - jetbrains.pycharm-professional - jetbrains.idea-ultimate - android-studio - #umlet - #hugo # TODO: Is this the extended version? - #kubernetes-helm # TODO: is this the client? - #wireshark # sslscan aircrack-ng # Network - pipenv # Python - yubikey-manager # cracklib genisoimage # Security - gitlab-runner - ] ++ [ # Virtualisation, Docker & Kubernetes # TODO: MOoe - virt-manager - docker-compose - kubectl - vagrant # TODO: Supports libvirtd? - ]; - -}