feat: a lot

This commit is contained in:
Jacob Bachmann 2024-02-12 11:49:35 +01:00
parent d0c7269927
commit 7ff831ee1c
Signed by: bchmnn
GPG key ID: 732A612DAD28067D
13 changed files with 128 additions and 79 deletions

18
flake.lock generated
View file

@ -7,11 +7,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1706955260, "lastModified": 1707175763,
"narHash": "sha256-W3y0j77IDVbmbajudHoUr46RpswujUCl+D5Vru53UsI=", "narHash": "sha256-0MKHC6tQ4KEuM5rui6DjKZ/VNiSANB4E+DJ/+wPS1PU=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "880d9bc2110f7cae59698f715b8ca42cdc53670c", "rev": "f99eace7c167b8a6a0871849493b1c613d0f1b80",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -22,11 +22,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1706834982, "lastModified": 1707211557,
"narHash": "sha256-3CfxA7gZ+DVv/N9Pvw61bV5Oe/mWfxYPyVQGqp9TMJA=", "narHash": "sha256-LTKTzZ6fM5j8XWXf51IMBzDaOaJg9kYWLUZxoIhzRN8=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "83e571bb291161682b9c3ccd48318f115143a550", "rev": "6e5cc385fc8cf5ca6495d70243074ccdea9f64c7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -38,11 +38,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1706732774, "lastModified": 1707092692,
"narHash": "sha256-hqJlyJk4MRpcItGYMF+3uHe8HvxNETWvlGtLuVpqLU0=", "narHash": "sha256-ZbHsm+mGk/izkWtT4xwwqz38fdlwu7nUUKXTOmm4SyE=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "b8b232ae7b8b144397fdb12d20f592e5e7c1a64d", "rev": "faf912b086576fd1a15fca610166c98d47bc667e",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -55,6 +55,7 @@
./dbus.nix ./dbus.nix
./fonts.nix ./fonts.nix
./greetd.nix ./greetd.nix
./gstreamer.nix
./i18n.nix ./i18n.nix
./kdeconnect.nix ./kdeconnect.nix
./keyd.nix ./keyd.nix
@ -70,6 +71,7 @@
./packages.nix ./packages.nix
./printing.nix ./printing.nix
./security.nix ./security.nix
./services.nix
./shell.nix ./shell.nix
./steam.nix ./steam.nix
./udisks2.nix ./udisks2.nix

8
modules/gstreamer.nix Normal file
View file

@ -0,0 +1,8 @@
{ lib, pkgs, ... }: {
environment.sessionVariables.GST_PLUGIN_SYSTEM_PATH_1_0 = lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" (with pkgs.gst_all_1; [
gst-plugins-base
gst-plugins-good
gst-plugins-bad
gst-plugins-ugly
]);
}

View file

@ -1,21 +1,21 @@
{ lib, pkgs, config, ... }: { { lib, pkgs, config, ... }: {
environment.systemPackages = with pkgs; with config.bchmnn; [ environment.systemPackages = with pkgs; with config.bchmnn; [
pciutils pciutils # A collection of programs for inspecting and manipulating configuration of PCI devices
usbutils usbutils # Tools for working with USB devices, such as lsusb
git git # Distributed version control system
gnumake gnumake # A tool to control the generation of non-source files from sources
mercurial # contains 'hg' mercurial # A fast, lightweight SCM system for very large distributed projects
wget wget # Tool for retrieving files using HTTP, HTTPS, and FTP
neofetch neofetch # A fast, highly customizable system info script
lsd lsd # The next gen ls command
ripgrep ripgrep # A utility that combines the usability of The Silver Searcher with the raw speed of grep
expect # contains 'unbuffer' expect # A tool for automating interactive applications
jq # parse json jq # A lightweight and flexible command-line JSON processor
unzip unzip # An extraction utility for archives compressed in .zip format
libsecret libsecret # A library for storing and retrieving passwords and other secrets
xidel # xml parser xidel # Command line tool to download and extract data from HTML/XML pages as well as JSON APIs
nvd # nix diff package versions between two store paths nvd # Nix/NixOS package version diff tool
inotify-tools # set of command-line programs providing a simple interface to inotify inotify-tools # a C library and a set of command-line programs providing a simple interface to inotify
] ++ lib.optionals (devenv.enable) [ ] ++ lib.optionals (devenv.enable) [
# languages # languages
gcc13 gcc13
@ -32,10 +32,11 @@
bun-baseline bun-baseline
nodejs_21 nodejs_21
nodenv nodenv
nodePackages.yarn
nodePackages.pnpm
] ++ lib.optionals (gui.enable) [ ] ++ lib.optionals (gui.enable) [
libnotify libnotify # A library that sends desktop notifications to a notification daemon
glib # gsettings xdg-utils # A set of command line tools that assist applications with a variety of desktop integration tasks
xdg-utils # for opening default programs
] ++ lib.optionals (gui.enable && lib.elem "sway" gui.flavour) [ ] ++ lib.optionals (gui.enable && lib.elem "sway" gui.flavour) [
qt5.qtwayland qt5.qtwayland
qt6.qtwayland qt6.qtwayland

View file

@ -1,8 +1,9 @@
{ config, lib, ... }: { { config, lib, ... }: {
security.polkit.enable = true;
security.polkit.enable = true;
# rtkit is optional but recommended # rtkit is optional but recommended
security.rtkit.enable = true; security.rtkit.enable = true;
networking.firewall.enable = true;
} // (lib.mkIf (lib.elem "sway" config.bchmnn.gui.flavour) { } // (lib.mkIf (lib.elem "sway" config.bchmnn.gui.flavour) {
@ -10,4 +11,10 @@
# https://github.com/NixOS/nixpkgs/issues/158025 # https://github.com/NixOS/nixpkgs/issues/158025
security.pam.services.swaylock = { }; security.pam.services.swaylock = { };
}) // (lib.mkIf (config.bchmnn.devenv.enable) {
networking.firewall = {
allowedTCPPorts = [ 3000 ];
};
}) })

8
modules/services.nix Normal file
View file

@ -0,0 +1,8 @@
{ ... }: {
services.plex = {
enable = false;
openFirewall = false;
};
}

View file

@ -1,7 +1,13 @@
{ config, lib, pkgs, ... }: lib.mkIf config.bchmnn.virtualisation.enable { { config, lib, pkgs, ... }: lib.mkIf config.bchmnn.virtualisation.enable {
# virt-manager # virt-manager
virtualisation.libvirtd.enable = true; virtualisation = {
docker = {
enable = true;
storageDriver = "btrfs";
};
libvirtd.enable = true;
};
programs = { programs = {
dconf.enable = true; dconf.enable = true;
virt-manager.enable = true; virt-manager.enable = true;

View file

@ -5,7 +5,7 @@ in
{ {
users.users.gandalf = { users.users.gandalf = {
isNormalUser = true; isNormalUser = true;
extraGroups = [ "wheel" "networkmanager" "libvirtd" ]; extraGroups = [ "wheel" "networkmanager" "libvirtd" "docker" ];
}; };
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;

View file

@ -24,7 +24,7 @@ in
udiskie # automount usb udiskie # automount usb
blueman # control bluetooth blueman # control bluetooth
nextcloud-client # nextcloud client to connect to any instance nextcloud-client # nextcloud client to connect to any instance
plasma5Packages.kdeconnect-kde # sync phone and pc libsForQt5.kdeconnect-kde # sync phone and pc
system-config-printer # printer manager system-config-printer # printer manager
]; ];

View file

@ -7,33 +7,40 @@
./keyring.nix ./keyring.nix
./obs.nix ./obs.nix
./vscode.nix ./vscode.nix
./zathura.nix
]; ];
home.packages = with pkgs; [ home.packages = with pkgs; [
tor-browser
firefox firefox # a web browser built from firefox source tree
thunderbird thunderbird # a full-featured e-mail client
speechd # https://support.mozilla.org/en-US/kb/speechd-setup speechd # common interface to speech synthesis - https://support.mozilla.org/en-us/kb/speechd-setup
gnome.nautilus tor-browser # privacy-focused browser routing traffic through the tor network
gimp qbittorrent # featureful free software bittorrent client
vlc
calibre telegram-desktop # telegram desktop messaging app
qbittorrent signal-desktop # private, simple, and secure messenger
gnome.simple-scan zoom-us # zoom.us video conferencing application
telegram-desktop
signal-desktop gnome.nautilus # the file manager for gnome
zoom-us gnome.simple-scan # simple scanning utility
zathura feh # a light-weight image viewer
obsidian vlc # cross-platform media player and streaming server
libreoffice zathura # a highly customizable and functional pdf viewer
neovide # a simple graphical user interface for neovim
obsidian # a powerful knowledge base that works on top of a local folder of plain text markdown files
gimp # the gnu image manipulation program
calibre # comprehensive e-book software
libreoffice # comprehensive, professional-quality productivity suite, a variant of openoffice.org
carla # audio plugin host carla # audio plugin host
aether-lv2 # an algorithmic reverb lv2 based on cloudseed
picard # musicbrainz picard audio file tagger picard # musicbrainz picard audio file tagger
] ++ lib.optionals nixosConfig.bchmnn.printing.enable [ ] ++ lib.optionals nixosConfig.bchmnn.printing.enable [
system-config-printer system-config-printer # graphical user interface for cups administration
] ++ lib.optionals nixosConfig.bchmnn.games.enable [ ] ++ lib.optionals nixosConfig.bchmnn.games.enable [
prismlauncher openjdk17 # the open-source java development kit
openjdk17 prismlauncher # a free, open source launcher for minecraft
]; ];
} }

View file

@ -0,0 +1,9 @@
{ ... }: {
# a highly customizable and functional pdf viewer
programs.zathura = {
enable = true;
options = {
selection-clipboard = "clipboard";
};
};
}

View file

@ -1,4 +1,4 @@
{ pkgs, lib, config, nixosConfig, ... }: { pkgs, lib, config, ... }:
let let
cfg = config.wayland.windowManager.sway.config; cfg = config.wayland.windowManager.sway.config;
@ -15,22 +15,22 @@ in
]; ];
home.packages = with pkgs; [ home.packages = with pkgs; [
brightnessctl # control screen brightness brightnessctl # this program allows you read and control device brightness
pavucontrol # control audio pavucontrol # pulseaudio volume control
playerctl # control player playerctl # command-line utility and library for controlling media players that implement mpris
networkmanagerapplet # control network networkmanagerapplet # networkmanager control applet for gnome
udiskie # automount usb udiskie # removable disk automounter for udisks
dracula-theme # gtk theme dracula-theme # dracula variant of the ant theme
gnome3.adwaita-icon-theme # default gnome cursors gnome3.adwaita-icon-theme
wl-clipboard # cli tool to manage wayland clipboard wl-clipboard # command-line copy/paste utilities for wayland
sway-contrib.grimshot sway-contrib.grimshot # a helper for screenshots within sway
wdisplays wdisplays # a graphical application for configuring displays in wayland compositors
wlr-randr wlr-randr # an xrandr clone for wlroots compositors
kanshi # display manager kanshi # dynamic display configuration tool
nextcloud-client # self hosted cloud client nextcloud-client # nextcloud themed desktop client
plasma5Packages.kdeconnect-kde # sync phone and pc libsForQt5.kdeconnect-kde # kde connect provides several features to integrate your phone and your computer
system-config-printer # printer manager system-config-printer # graphical user interface for cups administration
emote # emoji picker emote # modern emoji picker for linux
]; ];
programs.swaylock = { programs.swaylock = {
@ -81,12 +81,12 @@ in
menu = "${pkgs.wofi}/bin/wofi"; menu = "${pkgs.wofi}/bin/wofi";
startup = with pkgs; [ startup = with pkgs; [
# TODO activate with systemd prbly requires a graphical.target? # TODO activate with systemd prbly requires a graphical.target?
{ command = "${nixosConfig.systemd.package}/bin/systemctl --user import-environment XDG_SESSION_TYPE XDG_CURRENT_DESKTOP"; } # { command = "${nixosConfig.systemd.package}/bin/systemctl --user import-environment XDG_SESSION_TYPE XDG_CURRENT_DESKTOP"; }
{ command = "${dbus}/bin/dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway"; } # { command = "${dbus}/bin/dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway"; }
{ command = "${nixosConfig.systemd.package}/bin/systemctl --user stop xdg-desktop-portal xdg-desktop-portal-wlr"; } # { command = "${nixosConfig.systemd.package}/bin/systemctl --user stop xdg-desktop-portal xdg-desktop-portal-wlr"; }
{ command = "${nixosConfig.systemd.package}/bin/systemctl --user start xdg-desktop-portal xdg-desktop-portal-wlr"; } # { command = "${nixosConfig.systemd.package}/bin/systemctl --user start xdg-desktop-portal xdg-desktop-portal-wlr"; }
# { command = "${dbus}/bin/dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK"; } # { command = "${dbus}/bin/dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK"; }
# { command = "${dbus}/bin/dbus-update-activation-environment --all"; } { command = "${dbus}/bin/dbus-update-activation-environment --all"; }
{ command = "${kanshi}/bin/kanshi"; } { command = "${kanshi}/bin/kanshi"; }
{ command = "${networkmanagerapplet}/bin/nm-applet"; } { command = "${networkmanagerapplet}/bin/nm-applet"; }
{ command = "${blueman}/bin/blueman-applet"; } { command = "${blueman}/bin/blueman-applet"; }

View file

@ -1,15 +1,16 @@
{ pkgs, ... }: { { pkgs, ... }: {
home.packages = with pkgs; [ home.packages = with pkgs; [
gopass gopass # slightly more awesome standard unix password manager for teams. written in go
gopass-jsonapi gopass-jsonapi # enables communication with gopass via json messages
yt-dlp yt-dlp # command-line tool to download videos from youtube.com and other sites (youtube-dl fork)
ranger # a vim-inspired filemanager for the console ranger # a vim-inspired filemanager for the console
gdu # fast disk usage analyzer with console interface written in go gdu # fast disk usage analyzer with console interface written in go
duf # disk usage/free utility - a better 'df' alternative duf # disk usage/free utility - a better 'df' alternative
phoronix-test-suite # the phoronix test suite open-source, cross-platform automated testing/benchmarking software phoronix-test-suite # the phoronix test suite open-source, cross-platform automated testing/benchmarking software
ffmpeg ffmpeg # complete, cross-platform solution to record, convert and stream audio and video
texliveFull texliveFull # tex live environment
imagemagick # software suite to create, edit, compose, or convert bitmap images
]; ];
} }