From b6e6f75621d5a01f73f2530f8ef2ffa7c37afdb0 Mon Sep 17 00:00:00 2001 From: Julian T Date: Thu, 1 Oct 2020 20:18:58 +0200 Subject: Added slstatus and bluetooth sound --- configuration.nix | 31 ++++++++++++++++-------- slstatus.h | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+), 10 deletions(-) create mode 100644 slstatus.h diff --git a/configuration.nix b/configuration.nix index 48fa165..2bbdfa1 100644 --- a/configuration.nix +++ b/configuration.nix @@ -20,14 +20,29 @@ device = "/dev/sda"; }; tmpOnTmpfs = true; + supportedFilesystems = [ "ntfs" ]; }; + # Enable sound. + sound.enable = true; + hardware = { opengl.enable = true; enableRedistributableFirmware = true; # Thinkpad stuff acpilight.enable = true; + + bluetooth.enable = true; + + pulseaudio = { + enable = true; + # Stupid but need it to control sound from acpid + # systemWide = true; + + # Enable bluetooth audio + package = pkgs.pulseaudioFull; + }; }; networking = { @@ -67,13 +82,6 @@ # Enable the OpenSSH daemon. # services.openssh.enable = true; - # Enable sound. - sound.enable = true; - hardware.pulseaudio.enable = true; - # Stupid but need it to control sound from acpid - # hardware.pulseaudio.systemWide = true; - - programs.gnupg.agent = { enable = true; enableSSHSupport = true; @@ -147,6 +155,8 @@ # Enable CUPS to print documents. printing.enable = true; + + blueman.enable = true; }; # Define a user account. Don't forget to set a password with ‘passwd’. @@ -184,7 +194,7 @@ # General stuff wget vim neovim git htop zsh stow pass tree dnsutils gnupg zip unzip gopass tig file imagemagick whois nmap usbutils lshw gnumake - aspell aspellDicts.da pv acpi jq killall netcat-gnu perl gopass + aspell aspellDicts.da aspellDicts.en pv acpi jq killall netcat-gnu perl gopass cowsay # Landuage support @@ -204,12 +214,13 @@ termite quasselClient nomacs wireshark spotify pavucontrol fractal gnome3.file-roller geogebra gnome3.gnome-calculator gnome3.simple-scan vlc xorg.xev gnome3.evolution - evolution-data-server vimHugeX + evolution-data-server vimHugeX tor-browser-bundle-bin (mumble.override { pulseSupport = true; }) + (slstatus.override { conf = (builtins.readFile ./slstatus.h); }) # Other stuff # texlive.combined.scheme-full biber - aldo + aldo nitrokey-udev-rules nitrokey-app # Hardware stuff. X230 linuxPackages.acpi_call diff --git a/slstatus.h b/slstatus.h new file mode 100644 index 0000000..bd72560 --- /dev/null +++ b/slstatus.h @@ -0,0 +1,72 @@ + +/* See LICENSE file for copyright and license details. */ + +/* interval between updates (in ms) */ +const unsigned int interval = 1000; + +/* text to show if no value can be retrieved */ +static const char unknown_str[] = "n/a"; + +/* maximum output string length */ +#define MAXLEN 2048 + +/* + * function description argument (example) + * + * battery_perc battery percentage battery name (BAT0) + * NULL on OpenBSD/FreeBSD + * battery_state battery charging state battery name (BAT0) + * NULL on OpenBSD/FreeBSD + * battery_remaining battery remaining HH:MM battery name (BAT0) + * NULL on OpenBSD/FreeBSD + * cpu_perc cpu usage in percent NULL + * cpu_freq cpu frequency in MHz NULL + * datetime date and time format string (%F %T) + * disk_free free disk space in GB mountpoint path (/) + * disk_perc disk usage in percent mountpoint path (/) + * disk_total total disk space in GB mountpoint path (/") + * disk_used used disk space in GB mountpoint path (/) + * entropy available entropy NULL + * gid GID of current user NULL + * hostname hostname NULL + * ipv4 IPv4 address interface name (eth0) + * ipv6 IPv6 address interface name (eth0) + * kernel_release `uname -r` NULL + * keyboard_indicators caps/num lock indicators format string (c?n?) + * see keyboard_indicators.c + * keymap layout (variant) of current NULL + * keymap + * load_avg load average NULL + * netspeed_rx receive network speed interface name (wlan0) + * netspeed_tx transfer network speed interface name (wlan0) + * num_files number of files in a directory path + * (/home/foo/Inbox/cur) + * ram_free free memory in GB NULL + * ram_perc memory usage in percent NULL + * ram_total total memory size in GB NULL + * ram_used used memory in GB NULL + * run_command custom shell command command (echo foo) + * swap_free free swap in GB NULL + * swap_perc swap usage in percent NULL + * swap_total total swap size in GB NULL + * swap_used used swap in GB NULL + * temp temperature in degree celsius sensor file + * (/sys/class/thermal/...) + * NULL on OpenBSD + * thermal zone on FreeBSD + * (tz0, tz1, etc.) + * uid UID of current user NULL + * uptime system uptime NULL + * username username of current user NULL + * vol_perc OSS/ALSA volume in percent mixer file (/dev/mixer) + * wifi_perc WiFi signal in percent interface name (wlan0) + * wifi_essid WiFi ESSID interface name (wlan0) + */ +static const struct arg args[] = { + /* function format argument */ + { vol_perc, "[V:%s] ", "/dev/mixer" }, + { ram_free, "[F:%s] ", NULL }, + { battery_perc, "[B:%s,", "BAT0" }, + { battery_state, "%s] ", "BAT0" }, + { datetime, "%s", "%F %T" }, +}; -- cgit v1.2.3