2023-09-29 23:46:34 -04:00
|
|
|
{ pkgs, hyprland, ... }:
|
2023-06-20 12:52:19 -04:00
|
|
|
|
|
|
|
{
|
2023-08-23 23:09:52 -04:00
|
|
|
systemd.user.services.protonmail-bridge = {
|
|
|
|
description = "Protonmail Bridge";
|
|
|
|
enable = true;
|
|
|
|
script = "${pkgs.protonmail-bridge}/bin/protonmail-bridge --noninteractive --log-level info";
|
|
|
|
path = [ pkgs.gnome.gnome-keyring ]; # HACK: https://github.com/ProtonMail/proton-bridge/issues/176
|
|
|
|
wantedBy = [ "graphical-session.target" ];
|
|
|
|
partOf = [ "graphical-session.target" ];
|
|
|
|
};
|
|
|
|
|
2023-06-24 04:59:54 -04:00
|
|
|
services = {
|
|
|
|
xserver = {
|
|
|
|
enable = true;
|
|
|
|
layout = "ca";
|
|
|
|
displayManager = {
|
2023-07-15 00:45:09 -04:00
|
|
|
sddm = {
|
2023-06-24 04:59:54 -04:00
|
|
|
enable = true;
|
2023-07-15 00:45:09 -04:00
|
|
|
settings = {
|
|
|
|
General = {
|
|
|
|
DisplayServer = "wayland";
|
|
|
|
InputMethod = "";
|
|
|
|
};
|
|
|
|
Wayland.CompositorCommand = "${pkgs.weston}/bin/weston --shell=fullscreen-shell.so";
|
|
|
|
Theme = {
|
|
|
|
Current = "Dracula";
|
2023-10-03 13:20:18 -04:00
|
|
|
CursorTheme = "Dracula-cursors";
|
|
|
|
CursorSize = 24;
|
2023-07-15 00:45:09 -04:00
|
|
|
};
|
|
|
|
};
|
2023-06-24 04:59:54 -04:00
|
|
|
};
|
|
|
|
sessionPackages = [
|
2023-09-29 23:46:34 -04:00
|
|
|
hyprland.packages.x86_64-linux.default
|
2023-06-24 04:59:54 -04:00
|
|
|
];
|
|
|
|
defaultSession = "hyprland";
|
2023-09-29 23:46:34 -04:00
|
|
|
autoLogin = {
|
2023-07-30 19:13:15 -04:00
|
|
|
enable = true;
|
|
|
|
user = "matt";
|
|
|
|
};
|
2023-06-24 04:59:54 -04:00
|
|
|
};
|
|
|
|
libinput.enable = true;
|
|
|
|
};
|
|
|
|
dbus.enable = true;
|
2023-09-15 23:22:16 -04:00
|
|
|
gvfs.enable = true;
|
2023-06-24 04:59:54 -04:00
|
|
|
flatpak.enable = true;
|
|
|
|
tlp.enable = true;
|
|
|
|
|
2023-10-06 00:14:54 -04:00
|
|
|
kmscon = {
|
|
|
|
enable = true;
|
|
|
|
hwRender = true;
|
|
|
|
fonts = [
|
|
|
|
{
|
|
|
|
name = "Source Code Pro";
|
|
|
|
package = pkgs.source-code-pro;
|
|
|
|
}
|
|
|
|
];
|
|
|
|
};
|
|
|
|
|
2023-06-24 04:59:54 -04:00
|
|
|
locate = {
|
|
|
|
enable = true;
|
2023-10-03 22:59:32 -04:00
|
|
|
locate = pkgs.mlocate;
|
|
|
|
localuser = null;
|
2023-06-24 04:59:54 -04:00
|
|
|
interval = "hourly";
|
|
|
|
prunePaths = [
|
|
|
|
"/tmp"
|
|
|
|
"/var/tmp"
|
|
|
|
"/var/cache"
|
|
|
|
"/var/lock"
|
|
|
|
"/var/run"
|
|
|
|
"/var/spool"
|
|
|
|
"/nix/var/log/nix"
|
|
|
|
"/proc"
|
2023-10-03 22:59:32 -04:00
|
|
|
"/run/user"
|
2023-06-24 04:59:54 -04:00
|
|
|
];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2023-07-02 21:03:44 -04:00
|
|
|
xdg.portal = {
|
|
|
|
enable = true;
|
|
|
|
wlr.enable = true;
|
|
|
|
extraPortals = [
|
|
|
|
pkgs.xdg-desktop-portal-gtk
|
|
|
|
];
|
|
|
|
};
|
2023-06-24 04:59:54 -04:00
|
|
|
|
|
|
|
programs = {
|
|
|
|
|
2023-07-06 20:37:53 -04:00
|
|
|
# TODO: install plugins through nix
|
2023-06-24 04:59:54 -04:00
|
|
|
tmux = {
|
|
|
|
enable = true;
|
|
|
|
keyMode = "vi";
|
|
|
|
terminal = "screen-256color";
|
|
|
|
newSession = true;
|
|
|
|
historyLimit = 30000;
|
|
|
|
extraConfig = ''
|
|
|
|
bind-key -n Home send Escape "OH"
|
|
|
|
bind-key -n End send Escape "OF"
|
|
|
|
set -g mouse on
|
|
|
|
set -ga terminal-overrides ',xterm*:smcup@:rmcup@'
|
|
|
|
bind -T root WheelUpPane if-shell -F -t = "#{alternate_on}" "send-keys -M" "select-pane -t =; copy-mode -e; send-keys -M"
|
|
|
|
bind -T root WheelDownPane if-shell -F -t = "#{alternate_on}" "send-keys -M" "select-pane -t =; send-keys -M"
|
2023-07-06 20:37:53 -04:00
|
|
|
|
|
|
|
set -g @plugin 'dracula/tmux'
|
|
|
|
run 'bash -c "$HOME/.tmux/plugins/tpm/tpm ||
|
|
|
|
${pkgs.git}/bin/git clone https://github.com/tmux-plugins/tpm $HOME/.tmux/plugins/tpm &&
|
|
|
|
$HOME/.tmux/plugins/tpm/tpm"'
|
2023-06-24 04:59:54 -04:00
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
|
|
|
git = { # TODO: make better config
|
|
|
|
enable = true;
|
|
|
|
lfs.enable = true;
|
2023-07-07 11:41:31 -04:00
|
|
|
config = {
|
|
|
|
# Dracula Dark Theme
|
|
|
|
color = {
|
|
|
|
ui = "auto";
|
|
|
|
branch = {
|
|
|
|
current = "cyan bold reverse";
|
|
|
|
local = "white";
|
|
|
|
plain = "";
|
|
|
|
remote = "cyan";
|
|
|
|
};
|
|
|
|
diff = {
|
|
|
|
commit = "";
|
|
|
|
func = "cyan";
|
|
|
|
plain = "";
|
|
|
|
whitespace = "magenta reverse";
|
|
|
|
meta = "white";
|
|
|
|
frag = "cyan bold reverse";
|
|
|
|
old = "red";
|
|
|
|
new = "green";
|
|
|
|
};
|
|
|
|
grep = {
|
|
|
|
context = "";
|
|
|
|
filename = "";
|
|
|
|
function = "";
|
|
|
|
linenumber = "white";
|
|
|
|
match = "";
|
|
|
|
selected = "";
|
|
|
|
separator = "";
|
|
|
|
};
|
|
|
|
interactive = {
|
|
|
|
error = "";
|
|
|
|
header = "";
|
|
|
|
help = "";
|
|
|
|
prompt = "";
|
|
|
|
};
|
|
|
|
status = {
|
|
|
|
added = "green";
|
|
|
|
changed = "yellow";
|
|
|
|
header = "";
|
|
|
|
localBranch = "";
|
|
|
|
nobranch = "";
|
|
|
|
remoteBranch = "cyan bold";
|
|
|
|
unmerged = "magenta bold reverse";
|
|
|
|
untracked = "red";
|
|
|
|
updated = "green bold";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
2023-06-24 04:59:54 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
htop = {
|
|
|
|
enable = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
fzf = {
|
|
|
|
fuzzyCompletion = true;
|
|
|
|
keybindings = true;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2023-06-20 12:52:19 -04:00
|
|
|
# List packages in root user PATH
|
|
|
|
environment.systemPackages = with pkgs; [
|
2023-10-03 13:20:18 -04:00
|
|
|
# for sddm
|
|
|
|
dracula-theme
|
|
|
|
plasma5Packages.plasma-framework
|
|
|
|
plasma5Packages.plasma-workspace
|
|
|
|
|
2023-09-12 08:02:35 -04:00
|
|
|
qemu
|
2023-06-20 12:52:19 -04:00
|
|
|
wl-clipboard
|
|
|
|
alsa-utils
|
|
|
|
wget
|
|
|
|
tree
|
|
|
|
rsync
|
|
|
|
killall
|
|
|
|
imagemagick
|
|
|
|
usbutils
|
|
|
|
evtest
|
|
|
|
plasma5Packages.kio-admin
|
|
|
|
plasma5Packages.ksshaskpass
|
|
|
|
];
|
|
|
|
|
|
|
|
fonts = {
|
|
|
|
fontconfig = {
|
|
|
|
enable = true;
|
|
|
|
/*defaultFonts = {
|
|
|
|
emoji = [ "Noto Color Emoji" ];
|
|
|
|
monospace = [ "MesloLGS Nerd Font" ];
|
|
|
|
sansSerif = [ "MesloLGS Nerd Font" ];
|
|
|
|
serif = [ "MesloLGS Nerd Font" ];
|
|
|
|
};*/
|
|
|
|
};
|
2023-06-24 04:59:54 -04:00
|
|
|
|
2023-07-27 21:45:31 -04:00
|
|
|
packages = with pkgs; [
|
2023-10-06 14:36:15 -04:00
|
|
|
(nerdfonts.override { fonts = [
|
|
|
|
"JetBrainsMono"
|
|
|
|
"Go-Mono"
|
|
|
|
"Iosevka"
|
|
|
|
"NerdFontsSymbolsOnly"
|
|
|
|
"SpaceMono"
|
|
|
|
"Ubuntu"
|
|
|
|
]; })
|
2023-06-20 12:52:19 -04:00
|
|
|
noto-fonts
|
|
|
|
noto-fonts-cjk
|
|
|
|
noto-fonts-emoji
|
|
|
|
liberation_ttf
|
|
|
|
font-awesome
|
|
|
|
meslo-lgs-nf
|
|
|
|
jetbrains-mono
|
|
|
|
ubuntu_font_family
|
|
|
|
];
|
|
|
|
};
|
|
|
|
}
|