{ config, pkgs, ... }: with import ; let user = config.krebs.build.user; in { imports = [ ./alacritty.nix ./mpv.nix ./power-action.nix ./urxvt.nix ./xdg-open.nix ./yubikey.nix ./pipewire.nix ./tmux.nix ./xmonad.nix ./themes.nix ./fonts.nix { users.users.mainUser.packages = [ pkgs.sshuttle ]; security.sudo.extraConfig = '' lass ALL= (root) NOPASSWD:SETENV: ${pkgs.sshuttle}/bin/.sshuttle-wrapped ''; } { #font magic options.lass.fonts = { regular = mkOption { type = types.str; default = "xft:Iosevka Term SS15:style=regular"; }; bold = mkOption { type = types.str; default = "xft:Iosevka Term SS15:style=bold"; }; italic = mkOption { type = types.str; default = "xft:Iosevka Term SS15:style=italic"; }; }; config.krebs.xresources.resources.X = '' *.font: ${config.lass.fonts.regular} *.boldFont: ${config.lass.fonts.bold} *.italicFont: ${config.lass.fonts.italic} ''; } ]; users.users.mainUser.extraGroups = [ "audio" "pipewire" "video" ]; time.timeZone = "Europe/Berlin"; programs.ssh.agentTimeout = "10m"; programs.ssh.startAgent = false; services.openssh.forwardX11 = true; environment.systemPackages = with pkgs; [ acpi acpilight ripgrep cabal2nix dic dmenu font-size fzfmenu gimp gitAndTools.gh git-crypt git-preview dconf iodine libarchive lm_sensors ncdu nix-index nixpkgs-review nmap pavucontrol ponymix powertop rxvt-unicode sshvnc sxiv nsxiv taskwarrior termite transgui wirelesstools x11vnc xclip xephyrify xorg.xmodmap xorg.xhost xdotool xsel zathura flameshot (pkgs.writeDashBin "screenshot" '' set -efu ${pkgs.flameshot}/bin/flameshot gui && ${pkgs.klem}/bin/klem '') (pkgs.writers.writeDashBin "IM" '' ${pkgs.mosh}/bin/mosh green.r -- tmux new-session -A -s IM -- weechat '') (pkgs.writers.writeDashBin "deploy_hm" '' target=$1 shift hm_profile=$(${pkgs.home-manager}/bin/home-manager -f ~/sync/stockholm/lass/2configs/home-manager.nix build "$@") nix-copy-closure --to "$target" "$hm_profile" ssh "$target" -- "$hm_profile"/activate '') zbar ]; services.udev.extraRules = '' SUBSYSTEM=="backlight", ACTION=="add", \ RUN+="${pkgs.coreutils}/bin/chgrp video /sys/class/backlight/%k/brightness", \ RUN+="${pkgs.coreutils}/bin/chmod g+w /sys/class/backlight/%k/brightness" ''; services.xserver = { enable = true; layout = "us"; display = mkForce 0; xkbVariant = "altgr-intl"; xkbOptions = "caps:escape"; libinput.enable = true; exportConfiguration = true; displayManager = { lightdm.enable = true; defaultSession = "none+xmonad"; sessionCommands = '' ${pkgs.xorg.xhost}/bin/xhost +LOCAL: ''; }; }; nixpkgs.config.packageOverrides = super: { dmenu = pkgs.writeDashBin "dmenu" '' ${pkgs.fzfmenu}/bin/fzfmenu "$@" ''; }; krebs.xresources.enable = true; lass.klem = { kpaste.script = pkgs.writeDash "kpaste-wrapper" '' ${pkgs.kpaste}/bin/kpaste \ | ${pkgs.coreutils}/bin/tail -1 \ | ${pkgs.coreutils}/bin/tr -d '\r\n' ''; go = { target = "STRING"; script = "${pkgs.goify}/bin/goify"; }; "go.lassul.us" = { target = "STRING"; script = pkgs.writeDash "go.lassul.us" '' export GO_HOST='go.lassul.us' ${pkgs.goify}/bin/goify ''; }; qrcode = { target = "image"; script = pkgs.writeDash "zbar" '' ${pkgs.zbar}/bin/zbarimg -q --raw - ''; }; ocr = { target = "image"; script = pkgs.writeDash "gocr" '' ${pkgs.netpbm}/bin/pngtopnm - \ | ${pkgs.gocr}/bin/gocr - ''; }; }; services.clipmenu.enable = true; # synchronize all the clipboards systemd.user.services.autocutsel = { enable = true; wantedBy = [ "graphical-session.target" ]; after = [ "graphical-session.target" ]; serviceConfig = { Type = "forking"; ExecStart = pkgs.writers.writeDash "autocutsel" '' ${pkgs.autocutsel}/bin/autocutsel -fork -selection PRIMARY ${pkgs.autocutsel}/bin/autocutsel -fork -selection CLIPBOARD ''; }; }; }