195 lines
4.9 KiB
Nix
195 lines
4.9 KiB
Nix
{ config, pkgs, ... }:
|
|
|
|
let
|
|
home-manager = builtins.fetchTarball {
|
|
url = "https://github.com/nix-community/home-manager/archive/release-22.11.tar.gz";
|
|
};
|
|
in {
|
|
imports = [ "${home-manager}/nixos" ];
|
|
|
|
home-manager.useUserPackages = true;
|
|
|
|
home-manager.users.root = {
|
|
home.stateVersion = "22.11";
|
|
programs = {
|
|
zsh = {
|
|
enable = true;
|
|
oh-my-zsh = {
|
|
enable = true;
|
|
theme = "gentoo";
|
|
plugins = [ "git" ];
|
|
};
|
|
};
|
|
};
|
|
home.file.".emacs.d/init.el".source = ./etc/emacs.el;
|
|
};
|
|
|
|
home-manager.users.user = {
|
|
home.stateVersion = "22.11";
|
|
services.dunst = {
|
|
enable = true;
|
|
settings = {
|
|
global = {
|
|
font = "Ubuntu Mono 12";
|
|
};
|
|
ignore = {
|
|
summary = "browserpass: Install native host app";
|
|
format = "";
|
|
};
|
|
};
|
|
};
|
|
|
|
programs = {
|
|
git = {
|
|
enable = true;
|
|
userName = "Mikhail Klementev";
|
|
userEmail = "blame@dumpstack.io";
|
|
signing = {
|
|
signByDefault = true;
|
|
key = "0x1525585D1B43C62A";
|
|
};
|
|
extraConfig = {
|
|
init = {
|
|
defaultBranch = "default";
|
|
};
|
|
};
|
|
};
|
|
|
|
tmux = {
|
|
enable = true;
|
|
baseIndex = 1;
|
|
historyLimit = 100500;
|
|
keyMode = "emacs";
|
|
extraConfig = ''
|
|
unbind C-Space
|
|
set -g prefix C-Space
|
|
bind C-Space send-prefix
|
|
|
|
set -g status off
|
|
'';
|
|
plugins = [ pkgs.tmuxPlugins.yank ];
|
|
};
|
|
|
|
zsh = {
|
|
enable = true;
|
|
|
|
oh-my-zsh = {
|
|
enable = true;
|
|
theme = "gentoo";
|
|
plugins = [ "git" "cp" "tmux" ];
|
|
};
|
|
|
|
sessionVariables = {
|
|
LC_ALL = "en_US.utf8";
|
|
LIBVIRT_DEFAULT_URI = "qemu:///system";
|
|
GOPATH = "\${HOME}";
|
|
PATH = "\${PATH}:\${HOME}/bin:\${HOME}/.local/bin";
|
|
|
|
# TODO: Autoconnect only to non-attached session
|
|
ZSH_TMUX_AUTOSTART = "true";
|
|
ZSH_TMUX_AUTOCONNECT = "false";
|
|
|
|
NIX_AUTO_RUN = "true";
|
|
};
|
|
|
|
shellAliases = {
|
|
mutt = "neomutt";
|
|
vim = "emacs -nw";
|
|
emacs = "emacs -nw";
|
|
clipimage = "xclip -selection clipboard -target image/png -out > out.png";
|
|
};
|
|
|
|
initExtra = ''
|
|
which apt >/dev/null 2>&1 && plugins=("\$\{(@)plugins:#tmux-my\}")
|
|
|
|
# git does not support shell aliases as subcommands, but also
|
|
# there is no way to change the current working directory from
|
|
# the subprocess. Emulating the required behavior with the wrapper
|
|
function git {
|
|
if [[ "$1" = "get" ]]; then
|
|
REPO=$(echo $2 | sed 's;http.*://;;')
|
|
REPO=$(echo $REPO | sed 's;\.git$;;')
|
|
${pkgs.git}/bin/git clone https://$REPO $GOPATH/src/$REPO
|
|
cd $GOPATH/src/$REPO
|
|
else
|
|
${pkgs.git}/bin/git $@
|
|
fi
|
|
}
|
|
'';
|
|
};
|
|
|
|
gpg = {
|
|
enable = true;
|
|
settings = {
|
|
throw-keyids = false;
|
|
};
|
|
};
|
|
};
|
|
|
|
home.file = {
|
|
".emacs.d/init.el".source = ./etc/emacs.el;
|
|
|
|
".mutt/mailcap".source = ./etc/mutt/mailcap;
|
|
".mutt/muttrc".source = ./etc/mutt/muttrc;
|
|
".mutt/signature".source = ./etc/mutt/signature;
|
|
|
|
".config/user-dirs.dirs".source = ./etc/user-dirs.dir;
|
|
".config/kitty/kitty.conf".source = ./etc/kitty.conf;
|
|
|
|
".config/rofi/config.rasi".source = ./etc/rofi.rasi;
|
|
};
|
|
|
|
home.keyboard = {
|
|
layout = "us,ru";
|
|
options = [ "ctrl:nocaps" "grp:rctrl_toggle" ];
|
|
};
|
|
|
|
xsession = {
|
|
enable = true;
|
|
windowManager.xmonad = {
|
|
enable = true;
|
|
config = pkgs.writeText "xmonad.hs" (builtins.readFile ./etc/xmonad.hs);
|
|
extraPackages = haskellPackages: [
|
|
haskellPackages.xmonad-contrib
|
|
];
|
|
};
|
|
initExtra = ''
|
|
touchpad=$(xinput | grep -o 'Synaptics.*id=[0-9]*' | cut -d '=' -f 2)
|
|
trackpoint=$(xinput | grep -o 'TrackPoint.*id=[0-9]*' | cut -d '=' -f 2)
|
|
|
|
xsetroot -solid '#000000'
|
|
|
|
xinput --disable $touchpad
|
|
xinput --set-prop $trackpoint 'Device Accel Constant Deceleration' 0.20
|
|
|
|
${pkgs.xorg.xhost}/bin/xhost local:
|
|
|
|
ln -fs /tmp/chromium .config/
|
|
ln -fs /tmp/chromium .cache/
|
|
|
|
ln -fs ${pkgs.gtk3}/share/gsettings-schemas/gtk+3-*/glib-2.0 .local/share/
|
|
|
|
ln -fs .config/tmux/tmux.conf .tmux.conf
|
|
|
|
kitty --class=viewShiftW3 &
|
|
emacs &
|
|
chromium &
|
|
'';
|
|
};
|
|
|
|
gtk = {
|
|
enable = true;
|
|
theme.name = "Adwaita-dark";
|
|
font.name = "Ubuntu 12";
|
|
iconTheme = {
|
|
name = "Adwaita";
|
|
package = pkgs.gnome3.adwaita-icon-theme;
|
|
};
|
|
gtk2.extraConfig = ''
|
|
gtk-cursor-theme-name = capitaine-cursors;
|
|
'';
|
|
gtk3.extraConfig = { gtk-cursor-theme-name = "capitaine-cursors"; };
|
|
};
|
|
};
|
|
}
|