Integrate hummelberg desktop configuration

This commit is contained in:
Fabian Hauser 2020-11-30 16:23:45 +01:00
parent e8f2a29484
commit 81eb15d52a
22 changed files with 824 additions and 25 deletions

View file

@ -0,0 +1,52 @@
{ 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

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

View file

@ -0,0 +1,53 @@
{ config, pkgs, lib, ... }: {
environment.systemPackages = with pkgs;
[ # Utilities
freetype
light
xorg.xbacklight
feh
redshift
numlockx # TODO: Does this work?
lxappearance
] ++ [ # Networking
gnome3.networkmanager-openconnect
] ++ [ # Various
xfce.thunar
xfce.thunar-archive-plugin
xfce.xfce4-appfinder # xfce.thunar-volman # needed?
xfce.terminal
gnome3.gnome-screenshot
pinentry-gtk2 # Required by gnupg
];
programs = {
gnome-terminal.enable = false;
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;
gnome-keyring.enable = true;
evolution-data-server.enable = true;
gnome-online-accounts.enable = true;
sushi.enable = false;
};
services.gvfs.enable = true;
services.flatpak.enable = true;
xdg.portal = {
enable = true;
gtkUsePortal = true;
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
};
}

View file

@ -0,0 +1,36 @@
{ 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,18 @@
{ config, pkgs, lib, ... }:
{
services.blueman.enable = true;
# Enable sound.
sound.enable = true;
hardware = {
pulseaudio.enable = true;
opengl.enable = true;
u2f.enable = true;
acpilight.enable = true;
bluetooth.enable = true;
};
}

View file

@ -0,0 +1,56 @@
{ 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-plugins-base
gst-plugins-bad
gst-plugins-good
gst-plugins-ugly
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

@ -0,0 +1,177 @@
{ config, pkgs, lib, ... }:
{
# Hamster
environment.systemPackages = with pkgs; [ hamster ];
programs.hamster.enable = true;
# Fonts
fonts.fonts = with pkgs; [
google-fonts
lalezar-fonts
nahid-fonts
fontconfig-penultimate
nika-fonts
agave
aileron
amiri
andagii
#andika # Breaks Font-Awesome
ankacoder
ankacoder-condensed
aurulent-sans
caladea
cantarell-fonts
carlito
cascadia-code
#charis-sil # Breaks Font-Awesome
cherry
cnstrokeorder
comfortaa
comic-neue
comic-relief
corefonts
culmus
clearlyU
creep
crimson
dejavu_fonts
dina-font
dina-font-pcf
#doulos-sil # Breaks Font-Awesome
cabin
camingo-code
cooper-hewitt
d2coding
dosis
dosemu_fonts
eb-garamond
eunomia
ferrum
fixedsys-excelsior
emacs-all-the-icons-fonts
emojione
encode-sans
envypn-font
fantasque-sans-mono
fira
fira-code
fira-code-symbols
fira-mono
#gentium
#gentium-book-basic
#gohufont
#go-font
#gubbi-font
#gyre-fonts
#hack-font
##helvetica-neue-lt-std
#hanazono
#hermit
#hyperscrypt-font
#ia-writer-duospace
#inconsolata
#inconsolata-lgc
##input-fonts
#inriafonts
#iosevka
#iosevka-bin
#ipafont
#ipaexfont
#iwona
#jetbrains-mono
#jost
#kanji-stroke-order-font
#latinmodern-math
#lato
#league-of-moveable-type
##liberation-sans-narrow
#libertine
#libertinus
#libre-baskerville
#libre-bodoni
#libre-caslon
#libre-franklin
#lmmath
#lmodern
#luculent
#marathi-cursive
#manrope
#material-design-icons
#material-icons
#meslo-lg
#migmix
#migu
#medio
#mno16
#monoid
#mononoki
#montserrat
#mph_2b_damase
#mplus-outline-fonts
#mro-unicode
#myrica
#nafees
#nanum-gothic-coding
#national-park-typeface
#office-code-pro
#oldstandard
#oldsindhi
#open-dyslexic
open-sans
orbitron
overpass
oxygenfonts
#pecita
paratype-pt-mono
paratype-pt-sans
paratype-pt-serif
penna
poly
powerline-fonts
profont
proggyfonts
public-sans
redhat-official-fonts
route159
#sarasa-gothic
seshat
scheherazade
#signwriting
stix-otf
stix-two
quattrocento
quattrocento-sans
raleway
recursive
rhodium-libre
roboto
roboto-mono
roboto-slab
hasklig
siji
source-code-pro
source-sans-pro
source-serif-pro
tamsyn
theano
tenderness
terminus_font
tipa
twemoji-color-font
twitter-color-emoji
ubuntu_font_family
#ucs-fonts
ultimate-oldschool-pc-font-pack
victor-mono
work-sans
wqy_microhei
wqy_zenhei
xits-math
xkcd-font
yanone-kaffeesatz
norwester-font
font-awesome
]; # Generated with `cd /home/fhauser/projects/nixos/nixpkgs/pkgs/data/fonts; echo *`
}

View file

@ -0,0 +1,17 @@
{ 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

@ -0,0 +1,15 @@
{ 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

@ -0,0 +1,12 @@
{ 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 ]; }