mirror of
https://github.com/Feliix42/dotfiles.git
synced 2024-11-22 06:06:29 +00:00
Clean up nix config
This commit is contained in:
parent
26874d5207
commit
3f7e4e32c3
9 changed files with 191 additions and 281 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -4,3 +4,5 @@ entropy/mail/neomutt/signature.txt
|
||||||
entropy/mail/neomutt/notmuch-hook.sh
|
entropy/mail/neomutt/notmuch-hook.sh
|
||||||
entropy/mail/neomutt/whoami.muttrc
|
entropy/mail/neomutt/whoami.muttrc
|
||||||
entropy/vpn/credentials.txt
|
entropy/vpn/credentials.txt
|
||||||
|
|
||||||
|
**/*.swp
|
||||||
|
|
|
@ -26,6 +26,7 @@ Plug 'rust-lang/rust.vim', { 'for': 'rust' }
|
||||||
Plug 'cespare/vim-toml', { 'for': 'toml' }
|
Plug 'cespare/vim-toml', { 'for': 'toml' }
|
||||||
Plug 'keith/swift.vim', { 'for': 'swift' }
|
Plug 'keith/swift.vim', { 'for': 'swift' }
|
||||||
Plug 'neovimhaskell/haskell-vim', { 'for': 'haskell' }
|
Plug 'neovimhaskell/haskell-vim', { 'for': 'haskell' }
|
||||||
|
Plug 'jalvesaq/Nvim-R', {'branch': 'stable', 'for': 'r'}
|
||||||
|
|
||||||
" Lingua Franca
|
" Lingua Franca
|
||||||
Plug 'lf-lang/lingua-franca.vim'
|
Plug 'lf-lang/lingua-franca.vim'
|
||||||
|
|
|
@ -8,47 +8,39 @@
|
||||||
imports =
|
imports =
|
||||||
[ # Include the results of the hardware scan.
|
[ # Include the results of the hardware scan.
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
|
||||||
|
./modules/audio.nix
|
||||||
|
./modules/video.nix
|
||||||
|
./modules/virtualisation.nix
|
||||||
|
|
||||||
|
# Desktop configuration
|
||||||
|
./modules/sway.nix
|
||||||
|
./modules/kde.nix
|
||||||
|
# old i3 compositor
|
||||||
|
# ./modules/i3.nix
|
||||||
|
|
||||||
|
./modules/printing.nix
|
||||||
|
./modules/backup.nix
|
||||||
|
|
||||||
# include and configure R
|
# include and configure R
|
||||||
./modules/r.nix
|
./modules/r.nix
|
||||||
# python with modules
|
# python with modules
|
||||||
./modules/python.nix
|
./modules/python.nix
|
||||||
# Wayland
|
|
||||||
./modules/sway.nix
|
|
||||||
# old i3 compositor
|
|
||||||
# ./modules/i3.nix
|
|
||||||
./modules/backup.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# set up LUKS discovery
|
# set up LUKS discovery
|
||||||
boot.initrd.luks.devices.cryptlvm.device = "/dev/disk/by-uuid/f382cd01-9048-4b1b-8a73-48e1f61e6c08";
|
boot.initrd.luks.devices.cryptlvm.device = "/dev/disk/by-uuid/f382cd01-9048-4b1b-8a73-48e1f61e6c08";
|
||||||
|
|
||||||
# make the screen usable
|
|
||||||
#hardware.video.hidpi.enable = true;
|
|
||||||
#services.xserver.dpi = 180;
|
|
||||||
|
|
||||||
# Use the systemd-boot EFI boot loader.
|
# Use the systemd-boot EFI boot loader.
|
||||||
boot.loader.systemd-boot.enable = true;
|
boot.loader.systemd-boot.enable = true;
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
# enable powertop for saving power
|
# ------------ networking ---------------------------------------------------
|
||||||
#powerManagement.powertop.enable = true;
|
|
||||||
|
|
||||||
networking.hostName = "entropy"; # Define your hostname.
|
networking.hostName = "entropy"; # Define your hostname.
|
||||||
networking.wireless = {
|
networking.wireless = {
|
||||||
enable = true; # Enables wireless support via wpa_supplicant.
|
enable = true; # Enables wireless support via wpa_supplicant.
|
||||||
interfaces = [ "wlp0s20f3" ];
|
interfaces = [ "wlp0s20f3" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
# Set your time zone.
|
|
||||||
time.timeZone = "Europe/Berlin";
|
|
||||||
|
|
||||||
# geoclue2 does not yield a location at home, so I'll make the manual configuration the default
|
|
||||||
# location.provider = "geoclue2";
|
|
||||||
location.provider = "manual";
|
|
||||||
# using the location of the cafe ascii should be good enough
|
|
||||||
location.latitude = 51.0250869;
|
|
||||||
location.longitude = 13.7210005;
|
|
||||||
|
|
||||||
# The global useDHCP flag is deprecated, therefore explicitly set to false here.
|
# The global useDHCP flag is deprecated, therefore explicitly set to false here.
|
||||||
# Per-interface useDHCP will be mandatory in the future, so this generated config
|
# Per-interface useDHCP will be mandatory in the future, so this generated config
|
||||||
# replicates the default behaviour.
|
# replicates the default behaviour.
|
||||||
|
@ -58,31 +50,26 @@
|
||||||
networking.interfaces.enp0s20f0u2u1.useDHCP = true;
|
networking.interfaces.enp0s20f0u2u1.useDHCP = true;
|
||||||
networking.interfaces.wlp0s20f3.useDHCP = true;
|
networking.interfaces.wlp0s20f3.useDHCP = true;
|
||||||
|
|
||||||
# Configure network proxy if necessary
|
# enable OpenVPN for connecting to the TUD network
|
||||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
services.openvpn.servers.tud = {
|
||||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
config = '' config /home/felix/.config/vpn/TUD.ovpn '';
|
||||||
|
autoStart = false; #true;
|
||||||
|
updateResolvConf = true;
|
||||||
|
};
|
||||||
|
|
||||||
nixpkgs.config = {
|
# for SAMBA file shares
|
||||||
# enable hardware-accelerated graphics
|
services.gvfs.enable = true;
|
||||||
packageOverrides = pkgs: {
|
|
||||||
vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; };
|
|
||||||
# add nixpkgs for unstable package sources
|
# ------------ time, location & input ---------------------------------------
|
||||||
#unstable = import <nixpkgs> {
|
# Set your time zone.
|
||||||
#config = config.nixpkgs.config;
|
time.timeZone = "Europe/Berlin";
|
||||||
#};
|
# geoclue2 does not yield a location at home, so I'll make the manual configuration the default
|
||||||
};
|
# location.provider = "geoclue2";
|
||||||
# allow unfree licenced packges
|
location.provider = "manual";
|
||||||
allowUnfree = true;
|
# using the location of the cafe ascii should be good enough
|
||||||
};
|
location.latitude = 51.0250869;
|
||||||
hardware.opengl = {
|
location.longitude = 13.7210005;
|
||||||
enable = true;
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
intel-media-driver # LIBVA_DRIVER_NAME=iHD
|
|
||||||
vaapiIntel # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
|
|
||||||
vaapiVdpau
|
|
||||||
libvdpau-va-gl
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Select internationalisation properties.
|
# Select internationalisation properties.
|
||||||
i18n.defaultLocale = "en_US.UTF-8";
|
i18n.defaultLocale = "en_US.UTF-8";
|
||||||
|
@ -100,75 +87,8 @@
|
||||||
# enable touchpad support
|
# enable touchpad support
|
||||||
services.xserver.libinput.enable = true;
|
services.xserver.libinput.enable = true;
|
||||||
|
|
||||||
# Enable CUPS to print documents.
|
|
||||||
services.printing.enable = true;
|
|
||||||
services.printing.drivers = [
|
|
||||||
pkgs.gutenprint
|
|
||||||
pkgs.epson-escpr
|
|
||||||
];
|
|
||||||
|
|
||||||
# set up my printer at home
|
|
||||||
hardware.printers.ensurePrinters = [
|
|
||||||
{
|
|
||||||
description = "My private printer";
|
|
||||||
deviceUri = "https://192.168.178.30:631/ipp/print";
|
|
||||||
location = "Home";
|
|
||||||
model = "epson-inkjet-printer-escpr/Epson-XP-322_323_325_Series-epson-escpr-en.ppd";
|
|
||||||
name = "Home";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
# setup the printers at work
|
|
||||||
#hardware.printers.ensurePrinters = [
|
|
||||||
#{
|
|
||||||
#description = "CC printer";
|
|
||||||
#deviceUri = "";
|
|
||||||
#location = "BAR/III51";
|
|
||||||
#model = "Ricoh-MP_C307_PS.ppd";
|
|
||||||
#name = "CC_small";
|
|
||||||
#}
|
|
||||||
#{
|
|
||||||
#description = "PD printer (A3)";
|
|
||||||
#deviceUri = "";
|
|
||||||
#location = "BAR/III71B";
|
|
||||||
#model = "Ricoh-MP_C3004_PS.ppd";
|
|
||||||
#name = "PD_Chair";
|
|
||||||
#}
|
|
||||||
#];
|
|
||||||
|
|
||||||
# Enable sound.
|
|
||||||
sound.enable = true;
|
|
||||||
# configure pulseaudio to work with bluetooth headsets using aptx
|
|
||||||
hardware.pulseaudio = {
|
|
||||||
enable = true;
|
|
||||||
extraModules = [ pkgs.pulseaudio-modules-bt ];
|
|
||||||
# the full package is necessary for BT support
|
|
||||||
package = pkgs.pulseaudioFull;
|
|
||||||
# switch to bluetooth automatically if they are connected
|
|
||||||
extraConfig = "
|
|
||||||
load-module module-switch-on-connect
|
|
||||||
load-module module-bluetooth-policy auto_switch=2
|
|
||||||
";
|
|
||||||
};
|
|
||||||
nixpkgs.config.pulseaudio = true;
|
|
||||||
|
|
||||||
# enable bluetooth in general and add a simple tool for connecting devices
|
|
||||||
hardware.bluetooth = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.bluezFull;
|
|
||||||
# enable A2DP
|
|
||||||
settings = {
|
|
||||||
General = {
|
|
||||||
Enable = "Source,Sink,Media";
|
|
||||||
Disable = "Socket";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
services.blueman.enable = true;
|
|
||||||
|
|
||||||
# Enable touchpad support (enabled default in most desktopManager).
|
|
||||||
# services.xserver.libinput.enable = true;
|
|
||||||
|
|
||||||
|
# ------------ security -----------------------------------------------------
|
||||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||||
users.users.felix = {
|
users.users.felix = {
|
||||||
createHome = true;
|
createHome = true;
|
||||||
|
@ -189,36 +109,29 @@
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
programs.gnupg.agent = {
|
||||||
|
enable = true;
|
||||||
|
enableSSHSupport = true;
|
||||||
|
pinentryFlavor = "curses";
|
||||||
|
};
|
||||||
|
|
||||||
|
services.udev.packages = [ pkgs.libu2f-host ];
|
||||||
|
|
||||||
## enable fingerprint reader
|
## enable fingerprint reader
|
||||||
#services.fprintd.enable = true;
|
#services.fprintd.enable = true;
|
||||||
#security.pam.services.login.fprintAuth = true;
|
#security.pam.services.login.fprintAuth = true;
|
||||||
##security.pam.services.xscreensaver.fprintAuth = true;
|
##security.pam.services.xscreensaver.fprintAuth = true;
|
||||||
#security.pam.services.sudo.fprintAuth = true;
|
#security.pam.services.sudo.fprintAuth = true;
|
||||||
|
|
||||||
# set up virtualization with virtualbox
|
|
||||||
virtualisation.virtualbox.host.enable = true;
|
|
||||||
# I'm gonna keep this disabled for the sake of my sanity
|
|
||||||
# virtualisation.virtualbox.host.enableExtensionPack = true;
|
|
||||||
users.extraGroups.vboxusers.members = [ "felix" ];
|
|
||||||
|
|
||||||
# enable docker on-demand
|
# ------------ programs -----------------------------------------------------
|
||||||
virtualisation.docker.enable = true;
|
programs.fish.enable = true;
|
||||||
virtualisation.docker.enableOnBoot = false;
|
programs.vim.defaultEditor = true;
|
||||||
users.extraGroups.docker.members = [ "felix" ];
|
|
||||||
|
|
||||||
# add overlay for the LF IDE
|
# List of packages installed in system profile.
|
||||||
#nixpkgs.overlays = [
|
|
||||||
#(self: super: {
|
|
||||||
#lingua-franca-ide = super.callPackage ./overlays/lf-eclipse.nix { };
|
|
||||||
#})
|
|
||||||
#];
|
|
||||||
|
|
||||||
# List packages installed in system profile. To search, run:
|
|
||||||
# $ nix search wget
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
## basic command line tooling
|
## basic command line tooling
|
||||||
wget
|
wget
|
||||||
vim
|
|
||||||
emacs
|
emacs
|
||||||
w3m
|
w3m
|
||||||
htop
|
htop
|
||||||
|
@ -276,11 +189,10 @@
|
||||||
kitty
|
kitty
|
||||||
vscodium
|
vscodium
|
||||||
eclipses.eclipse-platform
|
eclipses.eclipse-platform
|
||||||
typora
|
# typora # aged electron?
|
||||||
firefox-wayland
|
firefox-wayland
|
||||||
# torbrowser
|
# torbrowser
|
||||||
#next
|
#next
|
||||||
# rstudio
|
|
||||||
## time tracking
|
## time tracking
|
||||||
watson
|
watson
|
||||||
## file managers
|
## file managers
|
||||||
|
@ -322,8 +234,6 @@
|
||||||
xdg-desktop-portal-wlr
|
xdg-desktop-portal-wlr
|
||||||
];
|
];
|
||||||
|
|
||||||
#services.emacs.enable = true;
|
|
||||||
|
|
||||||
# install fonts
|
# install fonts
|
||||||
fonts.fonts = with pkgs; [
|
fonts.fonts = with pkgs; [
|
||||||
font-awesome
|
font-awesome
|
||||||
|
@ -341,40 +251,6 @@
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
# Some programs need SUID wrappers, can be configured further or are
|
|
||||||
# started in user sessions.
|
|
||||||
# programs.mtr.enable = true;
|
|
||||||
# programs.gnupg.agent = {
|
|
||||||
# enable = true;
|
|
||||||
# enableSSHSupport = true;
|
|
||||||
# };
|
|
||||||
programs.fish.enable = true;
|
|
||||||
programs.vim.defaultEditor = true;
|
|
||||||
|
|
||||||
programs.gnupg.agent = {
|
|
||||||
enable = true;
|
|
||||||
enableSSHSupport = true;
|
|
||||||
pinentryFlavor = "curses";
|
|
||||||
};
|
|
||||||
# List services that you want to enable:
|
|
||||||
|
|
||||||
# Enable the OpenSSH daemon.
|
|
||||||
# services.openssh.enable = true;
|
|
||||||
|
|
||||||
services.udev.packages = [ pkgs.libu2f-host ];
|
|
||||||
# for SAMBA file shares
|
|
||||||
services.gvfs.enable = true;
|
|
||||||
|
|
||||||
# allow brightness control
|
|
||||||
services.illum.enable = true;
|
|
||||||
|
|
||||||
# enable OpenVPN for connecting to the TUD network
|
|
||||||
services.openvpn.servers.tud = {
|
|
||||||
config = '' config /home/felix/.config/vpn/TUD.ovpn '';
|
|
||||||
autoStart = false; #true;
|
|
||||||
updateResolvConf = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# periodic automated mail fetching
|
# periodic automated mail fetching
|
||||||
systemd.user.services.mailfetch = {
|
systemd.user.services.mailfetch = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -391,13 +267,6 @@
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
# Open ports in the firewall.
|
|
||||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
|
||||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
|
||||||
# Or disable the firewall altogether.
|
|
||||||
# networking.firewall.enable = false;
|
|
||||||
|
|
||||||
|
|
||||||
# This value determines the NixOS release from which the default
|
# This value determines the NixOS release from which the default
|
||||||
# settings for stateful data, like file locations and database versions
|
# settings for stateful data, like file locations and database versions
|
||||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||||
|
|
33
entropy/nixos/modules/audio.nix
Normal file
33
entropy/nixos/modules/audio.nix
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# Enable sound.
|
||||||
|
sound.enable = true;
|
||||||
|
# configure pulseaudio to work with bluetooth headsets using aptx
|
||||||
|
hardware.pulseaudio = {
|
||||||
|
enable = true;
|
||||||
|
extraModules = [ pkgs.pulseaudio-modules-bt ];
|
||||||
|
# the full package is necessary for BT support
|
||||||
|
package = pkgs.pulseaudioFull;
|
||||||
|
# switch to bluetooth automatically if they are connected
|
||||||
|
extraConfig = "
|
||||||
|
load-module module-switch-on-connect
|
||||||
|
load-module module-bluetooth-policy auto_switch=2
|
||||||
|
";
|
||||||
|
};
|
||||||
|
nixpkgs.config.pulseaudio = true;
|
||||||
|
|
||||||
|
# enable bluetooth in general and add a simple tool for connecting devices
|
||||||
|
hardware.bluetooth = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.bluezFull;
|
||||||
|
# enable A2DP
|
||||||
|
settings = {
|
||||||
|
General = {
|
||||||
|
Enable = "Source,Sink,Media";
|
||||||
|
Disable = "Socket";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
services.blueman.enable = true;
|
||||||
|
}
|
12
entropy/nixos/modules/kde.nix
Normal file
12
entropy/nixos/modules/kde.nix
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services.xserver.desktopManager.plasma5 = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
#environment.variables = {
|
||||||
|
#GDK_SCALE = "2";
|
||||||
|
#GDK_DPI_SCALE = "0.5";
|
||||||
|
#_JAVA_OPTIONS = "-Dsun.java2d.uiScale=2";
|
||||||
|
#};
|
||||||
|
}
|
39
entropy/nixos/modules/printing.nix
Normal file
39
entropy/nixos/modules/printing.nix
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# Enable CUPS to print documents.
|
||||||
|
services.printing.enable = true;
|
||||||
|
services.printing.drivers = [
|
||||||
|
pkgs.gutenprint
|
||||||
|
pkgs.epson-escpr
|
||||||
|
];
|
||||||
|
|
||||||
|
# set up my printer at home
|
||||||
|
hardware.printers.ensurePrinters = [
|
||||||
|
{
|
||||||
|
description = "My private printer";
|
||||||
|
deviceUri = "https://192.168.178.30:631/ipp/print";
|
||||||
|
location = "Home";
|
||||||
|
model = "epson-inkjet-printer-escpr/Epson-XP-322_323_325_Series-epson-escpr-en.ppd";
|
||||||
|
name = "Home";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
# setup the printers at work
|
||||||
|
#hardware.printers.ensurePrinters = [
|
||||||
|
#{
|
||||||
|
#description = "CC printer";
|
||||||
|
#deviceUri = "";
|
||||||
|
#location = "BAR/III51";
|
||||||
|
#model = "Ricoh-MP_C307_PS.ppd";
|
||||||
|
#name = "CC_small";
|
||||||
|
#}
|
||||||
|
#{
|
||||||
|
#description = "PD printer (A3)";
|
||||||
|
#deviceUri = "";
|
||||||
|
#location = "BAR/III71B";
|
||||||
|
#model = "Ricoh-MP_C3004_PS.ppd";
|
||||||
|
#name = "PD_Chair";
|
||||||
|
#}
|
||||||
|
#];
|
||||||
|
}
|
|
@ -31,36 +31,17 @@
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
programs.waybar.enable = true;
|
||||||
|
|
||||||
#environment = {
|
services.redshift = {
|
||||||
#etc = {
|
enable = true;
|
||||||
## Put config files in /etc. Note that you also can put these in ~/.config, but then you can't manage them with NixOS anymore!
|
package = pkgs.redshift-wlr;
|
||||||
#"sway/config".source = ./dotfiles/sway/config;
|
temperature.night = 3500;
|
||||||
#"xdg/waybar/config".source = ./dotfiles/waybar/config;
|
};
|
||||||
#"xdg/waybar/style.css".source = ./dotfiles/waybar/style.css;
|
|
||||||
#};
|
|
||||||
#};
|
|
||||||
|
|
||||||
# Here we but a shell script into path, which lets us start sway.service (after importing the environment of the login shell).
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
(
|
|
||||||
pkgs.writeTextFile {
|
|
||||||
name = "startsway";
|
|
||||||
destination = "/bin/startsway";
|
|
||||||
executable = true;
|
|
||||||
text = ''
|
|
||||||
#! ${pkgs.bash}/bin/bash
|
|
||||||
|
|
||||||
# first import environment variables from the login manager
|
# ------------ Display Manager ----------------------------------------------
|
||||||
systemctl --user import-environment
|
# use sddm for authentication
|
||||||
# then start the service
|
|
||||||
exec systemctl --user start sway.service
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
)
|
|
||||||
];
|
|
||||||
|
|
||||||
# use gdm for authentication
|
|
||||||
services.xserver.enable = true;
|
services.xserver.enable = true;
|
||||||
#services.xserver.displayManager.gdm = {
|
#services.xserver.displayManager.gdm = {
|
||||||
#enable = true;
|
#enable = true;
|
||||||
|
@ -69,79 +50,4 @@
|
||||||
services.xserver.displayManager.sddm = {
|
services.xserver.displayManager.sddm = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
services.xserver.desktopManager.plasma5 = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
#environment.variables = {
|
|
||||||
#GDK_SCALE = "2";
|
|
||||||
#GDK_DPI_SCALE = "0.5";
|
|
||||||
#_JAVA_OPTIONS = "-Dsun.java2d.uiScale=2";
|
|
||||||
#};
|
|
||||||
|
|
||||||
services.redshift = {
|
|
||||||
enable = true;
|
|
||||||
# Redshift with wayland support isn't present in nixos-19.09 atm. You have to cherry-pick the commit from https://github.com/NixOS/nixpkgs/pull/68285 to do that.
|
|
||||||
package = pkgs.redshift-wlr;
|
|
||||||
temperature.night = 3500;
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.user.targets.sway-session = {
|
|
||||||
description = "Sway compositor session";
|
|
||||||
documentation = [ "man:systemd.special(7)" ];
|
|
||||||
bindsTo = [ "graphical-session.target" ];
|
|
||||||
wants = [ "graphical-session-pre.target" ];
|
|
||||||
after = [ "graphical-session-pre.target" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.user.services.sway = {
|
|
||||||
description = "Sway - Wayland window manager";
|
|
||||||
documentation = [ "man:sway(5)" ];
|
|
||||||
bindsTo = [ "graphical-session.target" ];
|
|
||||||
wants = [ "graphical-session-pre.target" ];
|
|
||||||
after = [ "graphical-session-pre.target" ];
|
|
||||||
# We explicitly unset PATH here, as we want it to be set by
|
|
||||||
# systemctl --user import-environment in startsway
|
|
||||||
environment.PATH = pkgs.lib.mkForce null;
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "simple";
|
|
||||||
ExecStart = ''
|
|
||||||
${pkgs.dbus}/bin/dbus-run-session ${pkgs.sway}/bin/sway --debug
|
|
||||||
'';
|
|
||||||
Restart = "on-failure";
|
|
||||||
RestartSec = 1;
|
|
||||||
TimeoutStopSec = 10;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.user.services.swayidle = {
|
|
||||||
description = "Idle Manager for Wayland";
|
|
||||||
documentation = [ "man:swayidle(1)" ];
|
|
||||||
wantedBy = [ "sway-session.target" ];
|
|
||||||
partOf = [ "graphical-session.target" ];
|
|
||||||
path = [ pkgs.bash ];
|
|
||||||
serviceConfig = {
|
|
||||||
ExecStart = '' ${pkgs.swayidle}/bin/swayidle -w -d \
|
|
||||||
timeout 300 '${pkgs.sway}/bin/swaymsg "output * dpms off"' \
|
|
||||||
resume '${pkgs.sway}/bin/swaymsg "output * dpms on"'
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.waybar.enable = true;
|
|
||||||
|
|
||||||
systemd.user.services.kanshi = {
|
|
||||||
description = "Kanshi output autoconfig ";
|
|
||||||
wantedBy = [ "graphical-session.target" ];
|
|
||||||
partOf = [ "graphical-session.target" ];
|
|
||||||
serviceConfig = {
|
|
||||||
# kanshi doesn't have an option to specifiy config file yet, so it looks
|
|
||||||
# at .config/kanshi/config
|
|
||||||
ExecStart = ''
|
|
||||||
${pkgs.kanshi}/bin/kanshi
|
|
||||||
'';
|
|
||||||
RestartSec = 5;
|
|
||||||
Restart = "always";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
32
entropy/nixos/modules/video.nix
Normal file
32
entropy/nixos/modules/video.nix
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# make the screen usable
|
||||||
|
#hardware.video.hidpi.enable = true;
|
||||||
|
#services.xserver.dpi = 180;
|
||||||
|
|
||||||
|
nixpkgs.config = {
|
||||||
|
# enable hardware-accelerated graphics
|
||||||
|
packageOverrides = pkgs: {
|
||||||
|
vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; };
|
||||||
|
# add nixpkgs for unstable package sources
|
||||||
|
#unstable = import <nixpkgs> {
|
||||||
|
#config = config.nixpkgs.config;
|
||||||
|
#};
|
||||||
|
};
|
||||||
|
# allow unfree licenced packges
|
||||||
|
allowUnfree = true;
|
||||||
|
};
|
||||||
|
hardware.opengl = {
|
||||||
|
enable = true;
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
intel-media-driver # LIBVA_DRIVER_NAME=iHD
|
||||||
|
vaapiIntel # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
|
||||||
|
vaapiVdpau
|
||||||
|
libvdpau-va-gl
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# allow brightness control
|
||||||
|
services.illum.enable = true;
|
||||||
|
}
|
16
entropy/nixos/modules/virtualisation.nix
Normal file
16
entropy/nixos/modules/virtualisation.nix
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# set up virtualization with virtualbox
|
||||||
|
virtualisation.virtualbox.host.enable = true;
|
||||||
|
# I'm gonna keep this disabled for the sake of my sanity
|
||||||
|
# virtualisation.virtualbox.host.enableExtensionPack = true;
|
||||||
|
|
||||||
|
# enable docker on-demand
|
||||||
|
virtualisation.docker.enable = true;
|
||||||
|
virtualisation.docker.enableOnBoot = false;
|
||||||
|
users.extraGroups = {
|
||||||
|
docker.members = [ "felix" ];
|
||||||
|
vboxusers.members = [ "felix" ];
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue