Integrate hummelberg desktop configuration
This commit is contained in:
parent
e8f2a29484
commit
81eb15d52a
22 changed files with 824 additions and 25 deletions
52
defaults/desktop/applications.nix
Normal file
52
defaults/desktop/applications.nix
Normal 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
|
||||
];
|
||||
|
||||
}
|
15
defaults/desktop/default.nix
Normal file
15
defaults/desktop/default.nix
Normal 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
|
||||
];
|
||||
|
||||
}
|
53
defaults/desktop/desktop-environment.nix
Normal file
53
defaults/desktop/desktop-environment.nix
Normal 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 ];
|
||||
};
|
||||
|
||||
}
|
36
defaults/desktop/desktop-i3.nix
Normal file
36
defaults/desktop/desktop-i3.nix
Normal 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";
|
||||
|
||||
}
|
18
defaults/desktop/hardware.nix
Normal file
18
defaults/desktop/hardware.nix
Normal 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;
|
||||
};
|
||||
|
||||
}
|
56
defaults/desktop/multimedia.nix
Normal file
56
defaults/desktop/multimedia.nix
Normal 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
|
||||
];
|
||||
|
||||
}
|
177
defaults/desktop/office-suite.nix
Normal file
177
defaults/desktop/office-suite.nix
Normal 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 *`
|
||||
}
|
17
defaults/desktop/scripts.nix
Normal file
17
defaults/desktop/scripts.nix
Normal 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 ];
|
||||
}
|
15
defaults/desktop/security.nix
Normal file
15
defaults/desktop/security.nix
Normal 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";
|
||||
}
|
12
defaults/desktop/webapps.nix
Normal file
12
defaults/desktop/webapps.nix
Normal 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 ]; }
|
Loading…
Add table
Add a link
Reference in a new issue