You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

214 lines
5.9 KiB
Nix

{pkgs, lib, ... }:
{
home.packages = with pkgs; [ clipit ncmpcpp pandoc unzip wirelesstools xsel anki pavucontrol blueman gifsicle networkmanager paprefs steam pinentry vlc nitrogen wine yarn spotify signal-desktop google-chrome emacs-all-the-icons-fonts python3 python37Packages.pip veracrypt bashmount exfat exfat-utils i3lock-pixeled p4v killall calc cargo cava diceware xorg.xmodmap zip cacert dropbox-cli keepassx2 wireshark-qt vdirsyncer slack riot-web retroarch gimp blender khal khard mu xcape
];
home.keyboard.options = [ "ctrl:nocaps" "compose:ralt" ];
# services.xcape = {
# enable = true;
# mapExpression = {
# Control_L = "Escape";
# };
# };
services.mpd = {
enable = true;
musicDirectory = "/home/dustinswan/Music";
playlistDirectory = "/home/dustinswan/Music/Playlists";
};
services.syncthing = {
enable = true;
tray = true;
};
services.compton = {
enable = true;
inactiveOpacity = "0.90";
};
services.gpg-agent = {
enable = true;
enableSshSupport = true;
defaultCacheTtl = 86400;
maxCacheTtl = 86400;
defaultCacheTtlSsh = 86400;
maxCacheTtlSsh = 86400;
extraConfig = ''
pinentry-program /home/dustinswan/.nix-profile/bin/pinentry
'';
};
services.polybar = {
enable = true;
package = pkgs.polybar.override {
i3GapsSupport = true;
mpdSupport = true;
alsaSupport = true;
};
config = ~/dotfiles/polybar;
script = "PATH=$PATH:${pkgs.i3-gaps}/bin polybar top &";
};
services.screen-locker = {
enable = true;
inactiveInterval = 30;
lockCmd = "${pkgs.i3lock-pixeled}/bin/i3lock-pixeled";
};
services.dunst = {
enable = true;
iconTheme = {
package = pkgs.numix-icon-theme;
name = "Numix";
size = "32";
};
settings = {
global = {
geometry = "300x5-30+50";
padding = 12;
horizontal_padding = 12;
transparency = 10;
frame_color = "#66aaff";
frame_width = 2;
font = "Iosevka Nerd Font Regular 9";
markup = "full";
word_wrap = true;
format = "<b>%s</b> \n %b";
icon_position = "left";
background = "#000000";
foreground = "#dddddd";
};
urgency_low = {
background = "#000000";
foreground = "#dddddd";
};
urgency_normal = {
background = "#000000";
foreground = "#dddddd";
};
urgency_critical = {
foreground = "#eceff1";
background = "#bd2c40";
frame_color = "#9b0a20";
};
};
};
# services.udiskie.enable = true;
services.unclutter.enable = true;
# services.keepassx.enable = true;
services.flameshot.enable = true;
services.keybase.enable = true;
services.pasystray.enable = true;
services.network-manager-applet.enable = true;
services.blueman-applet.enable = true;
services.emacs.enable = true;
programs.feh.enable = true;
programs.firefox.enable = true;
programs.rofi = {
enable = true;
};
programs.beets = {
enable = true;
settings = {
directory = "~/Music";
library = "~/Music/musiclibrary.db";
import = {
copy = true;
};
plugins = [ "lastgenre" "fetchart" "embedart" "lyrics" "scrub" "mpdupdate" ]; # TODO bandcamp
lastfm = {
user = "dustinswan";
};
bandcamp = {
lyrics = true;
art = true;
};
};
};
xsession = {
enable = true;
initExtra = ''
xmodmap -e "keycode 96 = dead_greek dead_greek dead_greek dead_greek"
xcape -e 'Control_L=Escape'
'';
profileExtra = ''
xrandr --output DP-0 --rotate left
sh ~/dotfiles/logitech_linux_mouse.sh
nitrogen --restore &
xsetroot -solid black -cursor_name left_ptr
'';
windowManager.i3 = {
enable = true;
package = pkgs.i3-gaps;
config = {
modifier = "Mod4";
gaps = {
inner = 10;
outer = 0;
smartBorders = "on";
};
window = {
border = 0;
commands = [
# { criteria = { class = "mpv"; }; command = "floating enable, move absolute position center"; }
# { criteria = { class = "feh"; }; command = "floating enable, move absolute position center"; }
];
};
bars = [];
startup = [{
command = "systemctl --user restart polybar";
always = true;
notification = false;
}];
keybindings = let mod = "Mod4"; in lib.mkOptionDefault {
"${mod}+space" = "exec \"rofi -show combi\"";
"${mod}+Return" = "exec alacritty";
"${mod}+Ctrl+Mod1+t" = "exec alacritty";
"${mod}+Ctrl+Mod1+e" = "exec \"emacsclient -c\"";
"${mod}+Ctrl+Mod1+b" = "exec firefox";
"${mod}+Ctrl+Mod1+1" = "exec \"cvlc rtsp://viewer:rockwall1@192.168.1.30/stream0\"";
"${mod}+Ctrl+Mod1+2" = "exec \"cvlc rtsp://viewer:rockwall1@192.168.1.31/stream0\"";
"${mod}+Ctrl+Mod1+3" = "exec \"cvlc rtsp://viewer:rockwall1@192.168.1.32/stream0\"";
"${mod}+h" = "focus left";
"${mod}+j" = "focus down";
"${mod}+k" = "focus up";
"${mod}+l" = "focus right";
"${mod}+Shift+h" = "move left";
"${mod}+Shift+j" = "move down";
"${mod}+Shift+k" = "move up";
"${mod}+Shift+l" = "move right";
"${mod}+s" = "layout stacking";
"${mod}+comma" = "layout tabbed";
"${mod}+period" = "layout toggle split";
"${mod}+apostrophe" = "split h";
"${mod}+minus" = "split v";
"${mod}+Shift+space" = "floating toggle";
"${mod}+Ctrl+space" = "focus mode_toggle";
"${mod}+p" = "focus parent";
"${mod}+c" = "focus child";
"${mod}+r" = "mode resize";
};
};
};
};
imports = [ ./home-common.nix ./home-mail.nix ];
programs.alacritty.settings.font.size = 10.0;
}