1
0
Fork 0
localhost/desktop.nix

207 lines
5.6 KiB
Nix

{ config, pkgs, ... }:
let
nonfree = import <nixos> { config.allowUnfree = true; };
secrets = import ./secrets.nix;
in {
systemd.services.display-manager.serviceConfig = {
StartLimitBurst = 16;
StartLimitIntervalSec = 4;
};
services.xserver = {
enable = true;
layout = "us,ru"; # see also home-manager.nix
xkbOptions = "ctrl:nocaps,grp:rctrl_toggle"; # see also home-manager.nix
dpi = 282; # 15.6 inch, 3840x2160, comment out in case of nvidia
windowManager.xmonad.enable = true;
};
systemd.user.services.xmodmap = {
description = "xmodmap hotplug";
wantedBy = [ "graphical-session.target" ];
partOf = [ "graphical-session.target" ];
unitConfig = {
StartLimitIntervalSec = 0;
};
serviceConfig = {
PassEnvironment = "DISPLAY";
Restart = "always";
RestartSec = 0;
};
script = ''
${pkgs.inotify-tools}/bin/inotifywait -e create /dev/input
sleep 1s
${pkgs.xorg.xmodmap}/bin/xmodmap -e 'add mod3 = Muhenkan'
'';
};
#services.xserver.videoDrivers = [ "nvidia" ];
services.xserver.xautolock = {
enable = true;
time = 5; # minutes
locker = "${pkgs.xsecurelock}/bin/xsecurelock";
notify = 10; # seconds
notifier = "${pkgs.libnotify}/bin/notify-send \"Locking in 10 seconds\"";
extraOptions = [ "-secure" ];
};
location = {
latitude = secrets.latitude;
longitude = secrets.longitude;
};
services.redshift = {
enable = true;
};
programs.dconf.enable = true;
programs.light.enable = true;
hardware.opengl.enable = true;
hardware.opengl.extraPackages = [ pkgs.vaapiVdpau pkgs.vaapiIntel ];
sound.enable = true;
# > bluetooth audio
services.blueman.enable = true;
hardware.bluetooth = {
enable = true;
settings = {
General = {
Enable = "Source,Sink,Media,Socket";
};
};
};
hardware.pulseaudio = {
enable = true;
package = pkgs.pulseaudioFull;
};
# < bluetooth audio
environment.variables = {
GDK_SCALE = "2";
GDK_DPI_SCALE = "0.4";
};
fonts = {
fontDir.enable = true;
enableGhostscriptFonts = true;
fonts = with pkgs; [
ubuntu_font_family
noto-fonts-emoji
cantarell-fonts
cm_unicode
google-fonts
go-font
cm_unicode
nonfree.corefonts
];
};
environment.etc."X11/xorg.conf.d/60-trackball.conf".text = ''
Section "InputClass"
Identifier "Marble Mouse"
MatchProduct "Logitech USB Trackball"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
Option "ButtonMapping" "3 8 1 4 5 6 7 2 2"
Option "EmulateWheel" "true"
Option "EmulateWheelButton" "9"
Option "EmulateWheelInertia" "10"
Option "ZAxisMapping" "4 5"
Option "Emulate3Buttons" "true"
EndSection
'';
environment.etc."X11/xorg.conf.d/61-trackpoint.conf".text = ''
Section "InputClass"
Identifier "Trackpoint Wheel Emulation"
Driver "evdev"
MatchProduct "TPPS/2 Elan TrackPoint"
MatchDevicePath "/dev/input/event*"
Option "EmulateWheel" "true"
Option "EmulateWheelButton" "2"
Option "Emulate3Buttons" "false"
Option "XAxisMapping" "6 7"
Option "YAxisMapping" "4 5"
Option "Device Accel Constant Deceleration" "0.5"
EndSection
'';
services.udev.extraHwdb = ''
keyboard:usb:*
evdev:input:*
KEYBOARD_KEY_700E7=rightctrl # Super_R -> Control_R
KEYBOARD_KEY_7B=leftalt # Muhenkan -> Alt_R
KEYBOARD_KEY_38=muhenkan # Alt_R -> Muhenkan
KEYBOARD_KEY_70=rightalt # KATAKANAHIRAGANA -> Alt_R
'';
programs.chromium = {
enable = true;
extensions = [
"cjpalhdlnbpafiamejdnhcphjbkeiagm" # uBlock Origin
"dbepggeogbaibhgnhhndojpepiihcmeb" # Vimium
"aapbdbdomjkkjkaonfhkkikfgjllcleb" # Google Translate
"naepdomgkenhinolocfifgehidddafch" # Browserpass
"fihnjjcciajhdojfnbdddfaoknhalnja" # I don't care about cookies
"mnjggcdmjocbbbhaepdhchncahnbgone" # SponsorBlock
"gkmndgjgpolmikgnipipfekglbbgjcel" # AutoHideDownloadsBar
];
extraOpts = {
DefaultBrowserSettingEnabled = true;
TranslateEnabled = false;
SpellcheckEnabled = false;
SpellCheckServiceEnabled = false;
PrintingEnabled = false;
SearchSuggestEnabled = false;
PasswordManagerEnabled = false;
SafeBrowsingEnabled = false;
AutofillAddressEnabled = false;
AutofillCreditCardEnabled = false;
MetricsReportingEnabled = false;
BuiltInDnsClientEnabled = false;
EnableMediaRouter = false;
PromotionalTabsEnabled = false;
SyncDisabled = true;
SigninAllowed = false;
# AudioCaptureAllowed = false;
# VideoCaptureAllowed = false;
SSLErrorOverrideAllowed = false;
AutoplayAllowed = false;
# 0 = Disable browser sign-in
BrowserSignin = 0;
#DefaultSearchProviderEnabled = true;
#DefaultSearchProviderSearchURL = "https://duckduckgo.com/"
#+ "?kae=d&k1=-1&kc=1&kav=1&kd=-1&kh=1&q={searchTerms}";
# Do not allow any site to show desktop notifications
DefaultNotificationsSetting = 2;
# Do not allow any site to track the users' physical location
DefaultGeolocationSetting = 2;
# Block the Flash plugin
DefaultPluginsSetting = 2;
};
};
networking.localCommands = ''
mkdir -p /tmp/chromium && chown user:users /tmp/chromium
mkdir -p /tmp/downloads && chown user:users /tmp/downloads
'';
}