Update base and desktop defaults to current state

This commit is contained in:
Fabian Hauser 2021-04-10 16:58:39 +02:00
parent b907586257
commit 2a235cf9af
15 changed files with 68 additions and 244 deletions

View file

@ -20,7 +20,7 @@
rename rename
wipe wipe
gnupg gnupg
pass pass-wayland
pwgen pwgen
units units
powertop powertop

View file

@ -7,10 +7,7 @@ in {
boot.loader.timeout = 2; boot.loader.timeout = 2;
boot.tmpOnTmpfs = true; boot.tmpOnTmpfs = true;
console = { console.keyMap = "de_CH-latin1";
font = "Lat2-Terminus16";
keyMap = "de_CH-latin1";
};
i18n.defaultLocale = "en_US.UTF-8"; i18n.defaultLocale = "en_US.UTF-8";
users.mutableUsers = false; users.mutableUsers = false;
@ -25,12 +22,18 @@ in {
}; };
# Package management # Package management
nix.trustedUsers = [ "root" "@wheel" ]; nix = {
nix.gc = { trustedUsers = [ "root" "@wheel" ];
gc = {
automatic = true; automatic = true;
dates = "weekly"; dates = "weekly";
options = "--delete-older-than 30d"; options = "--delete-older-than 30d";
}; };
package = pkgs.nixFlakes;
extraOptions = ''
experimental-features = nix-command flakes
'';
};
system.autoUpgrade.enable = true; system.autoUpgrade.enable = true;
system.autoUpgrade.allowReboot = false; system.autoUpgrade.allowReboot = false;
@ -60,6 +63,7 @@ in {
gitconfig.source = ./etc/gitconfig; gitconfig.source = ./etc/gitconfig;
vimrc.source = ./etc/vimrc; vimrc.source = ./etc/vimrc;
}; };
programs.autojump.enable = true; programs.autojump.enable = true;
programs.vim.defaultEditor = true; programs.vim.defaultEditor = true;
} }

View file

@ -29,6 +29,7 @@
"pycharm-professional" "pycharm-professional"
"idea-ultimate" "idea-ultimate"
"android-studio-stable" "android-studio-stable"
"android-studio-beta"
"vmware-view" "vmware-view"
]; ];

View file

@ -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
];
}

View file

@ -1,15 +1,10 @@
{ config, pkgs, lib, ... }: { { config, pkgs, lib, ... }: {
imports = [ imports = [
./applications.nix
./desktop-environment.nix ./desktop-environment.nix
./desktop-i3.nix ./greeter.nix
./hardware.nix ./hardware.nix
./multimedia.nix
./office-suite.nix ./office-suite.nix
./scripts.nix
./security.nix
./webapps.nix
]; ];
} }

View file

@ -25,14 +25,13 @@
geary.enable = false; geary.enable = false;
light.enable = true; light.enable = true;
gnupg.agent.pinentryFlavor = "gtk2";
dconf.enable = true; dconf.enable = true;
}; };
services.gnome3 = { services.gnome3 = {
# TODO: Do this manually and not all at once. # TODO: Do this manually and not all at once.
core-utilities.enable = true; core-utilities.enable = true;
core-os-services.enable = true;
gnome-keyring.enable = true; gnome-keyring.enable = true;
evolution-data-server.enable = true; evolution-data-server.enable = true;
@ -46,8 +45,9 @@
services.flatpak.enable = true; services.flatpak.enable = true;
xdg.portal = { xdg.portal = {
enable = true; enable = true;
gtkUsePortal = true; gtkUsePortal = false;
extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; #extraPortals = [ pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-wlr ];
extraPortals = [ pkgs.xdg-desktop-portal-wlr ];
}; };
} }

View file

@ -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";
}

View file

@ -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";
};
}

View file

@ -6,12 +6,26 @@
# Enable sound. # Enable sound.
sound.enable = true; sound.enable = true;
nixpkgs.config.pulseaudio = true;
hardware = { 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; opengl.enable = true;
acpilight.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;
} }

View file

@ -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
];
}

View file

@ -3,12 +3,15 @@
{ {
# Hamster # Hamster
environment.systemPackages = with pkgs; [ hamster ]; environment.systemPackages = with pkgs; [
hamster
openvpn
]; # TODO: move openvpn
programs.hamster.enable = true; programs.hamster.enable = true;
# Fonts # Fonts
fonts.fonts = with pkgs; [ fonts.fonts = with pkgs; [
google-fonts # google-fonts # Breaks fwesome
lalezar-fonts lalezar-fonts
nahid-fonts nahid-fonts
nika-fonts nika-fonts
@ -30,7 +33,7 @@
comfortaa comfortaa
comic-neue comic-neue
comic-relief comic-relief
corefonts # corefonts # breaks fawesome
culmus culmus
clearlyU clearlyU
creep creep
@ -42,13 +45,13 @@
cabin cabin
camingo-code camingo-code
cooper-hewitt cooper-hewitt
d2coding #d2coding
dosis dosis
dosemu_fonts dosemu_fonts
eb-garamond eb-garamond
eunomia eunomia
ferrum ferrum
fixedsys-excelsior # fixedsys-excelsior # Breaks fawesome
emacs-all-the-icons-fonts emacs-all-the-icons-fonts
emojione emojione
encode-sans encode-sans
@ -123,9 +126,9 @@
overpass overpass
oxygenfonts oxygenfonts
#pecita #pecita
paratype-pt-mono #paratype-pt-mono # Breaks fawseome
paratype-pt-sans #paratype-pt-sans # Breaks fawseome
paratype-pt-serif #paratype-pt-serif # Breaks fawseome
penna penna
poly poly
powerline-fonts powerline-fonts

View file

@ -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 ];
}

View file

@ -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";
}

View file

@ -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 ]; }

View file

@ -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?
];
}