remove system dir
This commit is contained in:
parent
74d9d7146b
commit
a2e0d1cfd5
11 changed files with 74 additions and 127 deletions
|
|
@ -1,901 +0,0 @@
|
|||
{ config, pkgs, user, name, lib, ... }:
|
||||
# https://nix-community.github.io/home-manager/options.html
|
||||
let
|
||||
my-deps = {
|
||||
notify-send = "${pkgs.libnotify}/bin/notify-send";
|
||||
playerctl = "${pkgs.playerctl}/bin/playerctl";
|
||||
grim = "${pkgs.grim}/bin/grim";
|
||||
slurp = "${pkgs.slurp}/bin/slurp";
|
||||
amixer = "${pkgs.alsa-utils}/bin/amixer";
|
||||
swaybg = "${pkgs.swaybg}/bin/swaybg";
|
||||
terminal = "${pkgs.foot}/bin/foot";
|
||||
chafa = "${pkgs.chafa}/bin/chafa";
|
||||
exiftool = "${pkgs.exiftool}/bin/exiftool";
|
||||
wc = "${pkgs.coreutils}/bin/wc";
|
||||
jq = "${pkgs.jq}/bin/jq";
|
||||
hyprctl = "${pkgs.hyprland}/bin/hyprctl";
|
||||
xargs = "${pkgs.findutils}/bin/xargs";
|
||||
menu = "${config.programs.menu.package}${config.programs.menu.dmenuCommand}";
|
||||
fileman = "${pkgs.pcmanfm}/bin/pcmanfm";
|
||||
gawk = "${pkgs.gawk}/bin/awk";
|
||||
};
|
||||
lf-sixel = pkgs.callPackage ../../custom/lf-sixel/. { };
|
||||
in
|
||||
{
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
home.username = "tristan";
|
||||
home.homeDirectory = "/home/tristan";
|
||||
|
||||
xdg.userDirs.enable = true;
|
||||
|
||||
home.packages = (with pkgs; [
|
||||
libnotify
|
||||
dig
|
||||
wl-clipboard
|
||||
du-dust
|
||||
htop
|
||||
imv
|
||||
libsixel
|
||||
lf-sixel
|
||||
yt-dlp
|
||||
playerctl
|
||||
swww
|
||||
neofetch
|
||||
obs-studio
|
||||
selectdefaultapplication
|
||||
|
||||
inkscape
|
||||
libsForQt5.okular
|
||||
pavucontrol
|
||||
qpwgraph
|
||||
element-desktop
|
||||
brave
|
||||
gimp
|
||||
quickemu
|
||||
bitwarden
|
||||
libsForQt5.kasts
|
||||
libreoffice
|
||||
gimp
|
||||
(makeDesktopItem {
|
||||
name = "logseq";
|
||||
desktopName = "Logseq";
|
||||
exec = "${logseq}/bin/logseq --ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --disable-gpu";
|
||||
})
|
||||
]);
|
||||
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
programs.swaylock = {
|
||||
enable = true;
|
||||
package = pkgs.swaylock-effects;
|
||||
settings = {
|
||||
clock = true;
|
||||
screenshots = true;
|
||||
effect-scale = 0.5;
|
||||
effect-blur = "10x10";
|
||||
grace = 5;
|
||||
};
|
||||
};
|
||||
|
||||
services.swayidle.enable = true;
|
||||
services.swayidle.systemdTarget = "graphical-session.target";
|
||||
services.swayidle.events = [
|
||||
{ event = "before-sleep"; command = "${pkgs.swaylock-effects}/bin/swaylock"; }
|
||||
{ event = "lock"; command = "${pkgs.swaylock-effects}/bin/swaylock"; }
|
||||
];
|
||||
services.swayidle.timeouts = [
|
||||
{
|
||||
timeout = 300;
|
||||
command = "${pkgs.swaylock-effects}/bin/swaylock -f";
|
||||
}
|
||||
];
|
||||
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
systemdIntegration = true;
|
||||
# https://wiki.hyprland.org/Configuring/Variables/
|
||||
extraConfig = ''
|
||||
## global hyprland configuration
|
||||
env = GDK_BACKEND,wayland,x11
|
||||
env = QT_QPA_PLATFORM,wayland;xcb
|
||||
env = SDL_VIDEODRIVER,wayland
|
||||
env = CLUTTER_BACKEND,wayland
|
||||
env = XDG_CURRENT_DESKTOP,Hyprland
|
||||
env = XDG_SESSION_TYPE,wayland
|
||||
env = XDG_SESSION_DESKTOP,Hyprland
|
||||
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
|
||||
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
|
||||
env = NIXOS_OZONE_WL,1
|
||||
|
||||
input {
|
||||
kb_layout = gb
|
||||
kb_options = caps:escape
|
||||
numlock_by_default = true
|
||||
|
||||
touchpad {
|
||||
natural_scroll = yes
|
||||
scroll_factor = 0.5
|
||||
}
|
||||
}
|
||||
|
||||
bind = SUPER_SHIFT, X, killactive,
|
||||
bind = SUPER_SHIFT, E, exit,
|
||||
bind = SUPER, SLASH, focuswindow, brave-browser
|
||||
bind = SUPER, n, focuswindow, Logseq
|
||||
|
||||
windowrule = float, title:wlogout
|
||||
|
||||
bind = SUPER, h, movefocus,l
|
||||
bind = SUPER, l, movefocus,r
|
||||
|
||||
bindm = SUPER, mouse:272, movewindow
|
||||
bindm = SUPER, mouse:273, resizewindow
|
||||
|
||||
bind = SUPER, j, layoutmsg,cyclenext
|
||||
bind = SUPER, k, layoutmsg,cycleprev
|
||||
bind = SUPER, space, layoutmsg,swapwithmaster master
|
||||
bind = SUPER_SHIFT, k, layoutmsg, orientationtop
|
||||
bind = SUPER_SHIFT, h, layoutmsg, orientationleft
|
||||
bind = SUPER, F, fullscreen,
|
||||
bind = SUPER, V, togglefloating,
|
||||
bind = SUPER_SHIFT, V, togglegroup,
|
||||
bind = SUPER_SHIFT, space, changegroupactive,n
|
||||
bind = SUPER, Y, togglespecialworkspace
|
||||
bind = SUPER_SHIFT, Y, movetoworkspace, special
|
||||
|
||||
bind = SUPER,1,workspace,1
|
||||
bind = SUPER,2,workspace,2
|
||||
bind = SUPER,3,workspace,3
|
||||
bind = SUPER,4,workspace,4
|
||||
bind = SUPER,5,workspace,5
|
||||
bind = SUPER,6,workspace,6
|
||||
bind = SUPER,7,workspace,7
|
||||
bind = SUPER,8,workspace,8
|
||||
bind = SUPER,9,workspace,9
|
||||
bind = SUPER,0,workspace,10
|
||||
|
||||
bind = SUPER_SHIFT,1,movetoworkspace,1
|
||||
bind = SUPER_SHIFT,2,movetoworkspace,2
|
||||
bind = SUPER_SHIFT,3,movetoworkspace,3
|
||||
bind = SUPER_SHIFT,4,movetoworkspace,4
|
||||
bind = SUPER_SHIFT,5,movetoworkspace,5
|
||||
bind = SUPER_SHIFT,6,movetoworkspace,6
|
||||
bind = SUPER_SHIFT,7,movetoworkspace,7
|
||||
bind = SUPER_SHIFT,8,movetoworkspace,8
|
||||
bind = SUPER_SHIFT,9,movetoworkspace,9
|
||||
bind = SUPER_SHIFT,0,movetoworkspace,10
|
||||
|
||||
gestures {
|
||||
workspace_swipe = yes
|
||||
}
|
||||
|
||||
decoration {
|
||||
rounding = 5
|
||||
drop_shadow = no
|
||||
}
|
||||
|
||||
bezier = overshot, 0.05, 0.9, 0.1, 1.1
|
||||
bezier = linear, 0.0, 0.0, 1.0, 1.0
|
||||
|
||||
animations {
|
||||
enabled = 1
|
||||
animation = windows, 1, 1, default, popin
|
||||
animation = border, 1, 1, default
|
||||
animation = fade, 1, 1, default
|
||||
animation = workspaces, 1, 3, overshot
|
||||
animation = borderangle,1, 50, linear, loop
|
||||
}
|
||||
|
||||
general {
|
||||
resize_on_border = yes
|
||||
layout = master
|
||||
col.active_border = rgb(FFFF00) rgb(00FFFF) rgb(FF00FF)
|
||||
border_size = 5
|
||||
}
|
||||
|
||||
master {
|
||||
mfact = 0.7
|
||||
new_on_top = yes
|
||||
}
|
||||
|
||||
misc {
|
||||
vrr = 2
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
programs.wlogout = {
|
||||
enable = true;
|
||||
style = ''
|
||||
window {
|
||||
background-color: rgba(12, 12, 12, 0.2);
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
settings = {
|
||||
mainBar = {
|
||||
layer = "top";
|
||||
position = "top";
|
||||
height = 36;
|
||||
modules-left = [ "hyprland/window" ];
|
||||
modules-right = [ "mpris" "pulseaudio" "clock" "tray" "battery" ];
|
||||
clock = {
|
||||
format = "📅 {:%a %b-%d %I:%M %p}";
|
||||
};
|
||||
pulseaudio = {
|
||||
format-muted = "🔇 {volume}";
|
||||
format = "{icon} {volume}";
|
||||
format-icons.default = [ "🔈" "🔉" "🔊" ];
|
||||
on-click = "${pkgs.pavucontrol}/bin/pavucontrol";
|
||||
};
|
||||
mpris = {
|
||||
format = "{player_icon} {artist} - {title}";
|
||||
format-paused = "{status_icon} {artist} - {title}";
|
||||
player-icons = {
|
||||
default = "▶️";
|
||||
mpd = "🎵";
|
||||
};
|
||||
status-icons = {
|
||||
paused = "⏸️";
|
||||
};
|
||||
};
|
||||
battery = {
|
||||
format = "{icon} {capacity}%";
|
||||
format-icons = [ "🤏" "🪫" "🔋" "🔋" ];
|
||||
states = {
|
||||
warning = 30;
|
||||
critical = 15;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
systemd = {
|
||||
enable = true;
|
||||
target = "graphical-session.target";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
services.udiskie = {
|
||||
enable = true;
|
||||
notify = true;
|
||||
};
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
theme = {
|
||||
name = "Materia-dark";
|
||||
package = pkgs.materia-theme;
|
||||
};
|
||||
iconTheme = {
|
||||
name = "Vimix-Doder";
|
||||
package = pkgs.vimix-icon-theme;
|
||||
};
|
||||
cursorTheme = {
|
||||
name = "Vanilla-DMZ";
|
||||
package = pkgs.vanilla-dmz;
|
||||
size = 24;
|
||||
};
|
||||
gtk3.bookmarks = [
|
||||
"file:///home/tristan/Documents"
|
||||
"file:///home/tristan/Pictures/Screenshots"
|
||||
"file:///home/tristan/Downloads"
|
||||
];
|
||||
};
|
||||
|
||||
services.mako = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
programs.ncmpcpp = {
|
||||
enable = true;
|
||||
settings.mpd_host = "music.local";
|
||||
bindings = [
|
||||
{ key = "j"; command = "scroll_down"; }
|
||||
{ key = "k"; command = "scroll_up"; }
|
||||
{ key = "l"; command = "next_column"; }
|
||||
{ key = "h"; command = "previous_column"; }
|
||||
{ key = "J"; command = [ "select_item" "scroll_down" ]; }
|
||||
{ key = "K"; command = [ "select_item" "scroll_up" ]; }
|
||||
];
|
||||
};
|
||||
services.mpd-mpris.enable = true;
|
||||
services.mpd-mpris.mpd = {
|
||||
host = "music.local";
|
||||
};
|
||||
|
||||
programs.mpv.enable = true;
|
||||
programs.mpv.bindings = {
|
||||
l = "seek 5";
|
||||
h = "seek -5";
|
||||
e = "add chapter 1";
|
||||
b = "add chapter -1";
|
||||
">" = "multiply speed 1.1";
|
||||
"<" = "multiply speed 1/1.1";
|
||||
"." = "frame-step";
|
||||
"," = "frame-back-step";
|
||||
"ctrl+n" = "playlist-next";
|
||||
"ctrl+p" = "playlist-prev";
|
||||
k = "add volume 2";
|
||||
j = "add volume -2";
|
||||
m = "cycle mute";
|
||||
c = "cycle sub-visibility";
|
||||
};
|
||||
programs.mpv.scripts = [
|
||||
pkgs.mpvScripts.mpris
|
||||
];
|
||||
|
||||
programs.foot.settings = {
|
||||
main = {
|
||||
term = "xterm-256color";
|
||||
font = "mono:size=12";
|
||||
};
|
||||
colors = {
|
||||
foreground = "abb2bf";
|
||||
background = "000000";
|
||||
regular0 = "222222";
|
||||
regular1 = "eb3a26";
|
||||
regular2 = "7fbc59";
|
||||
regular3 = "e9db65";
|
||||
regular4 = "4781d1";
|
||||
regular5 = "7d74bb";
|
||||
regular6 = "50a2bd";
|
||||
regular7 = "dcdccc";
|
||||
bright0 = "666666";
|
||||
bright1 = "e15d4e";
|
||||
bright2 = "8fbd73";
|
||||
bright3 = "e3d97e";
|
||||
bright4 = "6791ce";
|
||||
bright5 = "8f88be";
|
||||
bright6 = "6caabf";
|
||||
bright7 = "ffffff";
|
||||
alpha = 0.8;
|
||||
};
|
||||
};
|
||||
|
||||
programs.vscode = {
|
||||
extensions = with pkgs; [
|
||||
vscode-extensions.asvetliakov.vscode-neovim
|
||||
];
|
||||
userSettings = {
|
||||
"vscode-neovim.neovimExecutablePaths.linux" = "/run/current-system/sw/bin/nvim";
|
||||
"keyboard.dispatch" = "keyCode";
|
||||
};
|
||||
};
|
||||
|
||||
programs.rbw = {
|
||||
enable = true;
|
||||
settings = {
|
||||
email = "tristan@tristans.cloud";
|
||||
base_url = "https://vault.tristans.cloud";
|
||||
};
|
||||
};
|
||||
|
||||
programs.ssh.enable = true;
|
||||
programs.ssh.matchBlocks = {
|
||||
"git.tristans.cloud" = {
|
||||
user = "git";
|
||||
port = 2222;
|
||||
};
|
||||
"alpine" = {
|
||||
hostname = "100.116.82.65";
|
||||
user = "tristan";
|
||||
};
|
||||
};
|
||||
|
||||
programs.neovim.defaultEditor = true;
|
||||
|
||||
programs.lf.enable = true;
|
||||
programs.lf.package = lf-sixel;
|
||||
programs.lf.keybindings = {
|
||||
D = "trash";
|
||||
"<f-2>" = ":rename";
|
||||
"<enter>" = "open-with";
|
||||
};
|
||||
programs.lf.commands = {
|
||||
trash = "%${pkgs.trash-cli}/bin/trash-put \"$fx\"";
|
||||
open = "$set -f; ${pkgs.ranger}/bin/rifle -p 0 \"$fx\"";
|
||||
open-with = ''''${{
|
||||
set -f
|
||||
${pkgs.ranger}/bin/rifle -l "$fx"
|
||||
read -p "Open with: " method
|
||||
${pkgs.ranger}/bin/rifle -p "$method" "$fx"
|
||||
}}'';
|
||||
bulk-rename = ''''${{
|
||||
old="$(mktemp)"
|
||||
new="$(mktemp)"
|
||||
if [ -n "$fs" ]; then
|
||||
fs="$(basename -a $fs)"
|
||||
else
|
||||
fs="$(ls)"
|
||||
fi
|
||||
printf '%s\n' "$fs" >"$old"
|
||||
printf '%s\n' "$fs" >"$new"
|
||||
$EDITOR "$new"
|
||||
[ "$(wc -l < "$new")" -ne "$(wc -l < "$old")" ] && exit
|
||||
paste "$old" "$new" | while IFS= read -r names; do
|
||||
src="$(printf '%s' "$names" | cut -f1)"
|
||||
dst="$(printf '%s' "$names" | cut -f2)"
|
||||
if [ "$src" = "$dst" ] || [ -e "$dst" ]; then
|
||||
continue
|
||||
fi
|
||||
mv -- "$src" "$dst"
|
||||
done
|
||||
rm -- "$old" "$new"
|
||||
lf -remote "send $id unselect"
|
||||
}}'';
|
||||
};
|
||||
programs.lf.previewer.source = pkgs.writeShellScript "preview" ''
|
||||
image () {
|
||||
${my-deps.chafa} "$1" -f sixel -s "$(($2/2))x$3" | sed 's/#/\n#/g'
|
||||
${ my-deps.exiftool } "$1"
|
||||
}
|
||||
|
||||
batted () {
|
||||
cat "$@"
|
||||
}
|
||||
|
||||
CACHE="$HOME/.cache/lf/thumbnail.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | awk '{print $1}'))"
|
||||
|
||||
case "$(printf "%s\n" "$(readlink -f "$1")" | awk '{print tolower($0)}')" in
|
||||
*.tgz|*.tar.gz) tar tzf "$1" ;;
|
||||
*.tar.bz2|*.tbz2) tar tjf "$1" ;;
|
||||
*.tar.txz|*.txz) xz --list "$1" ;;
|
||||
*.tar) tar tf "$1" ;;
|
||||
*.zip|*.jar|*.war|*.ear|*.oxt) unzip -l "$1" ;;
|
||||
*.rar) unrar l "$1" ;;
|
||||
*.md) glow -s dark "$1" ;;
|
||||
*.7z) 7z l "$1" ;;
|
||||
*.[1-8]) man "$1" | col -b ;;
|
||||
*.o) nm "$1";;
|
||||
*.torrent) transmission-show "$1" ;;
|
||||
*.iso) iso-info --no-header -l "$1" ;;
|
||||
*.odt|*.ods|*.odp|*.sxw) odt2txt "$1" ;;
|
||||
*.doc) catdoc "$1" ;;
|
||||
*.docx) docx2txt "$1" - ;;
|
||||
*.xml|*.html) w3m -dump "$1";;
|
||||
*.xls|*.xlsx)
|
||||
ssconvert --export-type=Gnumeric_stf:stf_csv "$1" "fd://1" | batted --language=csv
|
||||
;;
|
||||
*.wav|*.mp3|*.flac|*.m4a|*.wma|*.ape|*.ac3|*.og[agx]|*.spx|*.opus|*.as[fx]|*.mka)
|
||||
${ my-deps.exiftool } "$1"
|
||||
;;
|
||||
*.pdf)
|
||||
[ ! -f "$CACHE.jpg" ] && \
|
||||
pdftoppm -jpeg -f 1 -singlefile "$1" "$CACHE"
|
||||
image "$CACHE.jpg" "$2" "$3" "$4" "$5"
|
||||
;;
|
||||
*.epub)
|
||||
[ ! -f "$CACHE" ] && \
|
||||
epub-thumbnailer "$1" "$CACHE" 1024
|
||||
image "$CACHE" "$2" "$3" "$4" "$5"
|
||||
;;
|
||||
*.cbz|*.cbr|*.cbt)
|
||||
[ ! -f "$CACHE" ] && \
|
||||
comicthumb "$1" "$CACHE" 1024
|
||||
image "$CACHE" "$2" "$3" "$4" "$5"
|
||||
;;
|
||||
*.avi|*.mp4|*.wmv|*.dat|*.3gp|*.ogv|*.mkv|*.mpg|*.mpeg|*.vob|*.fl[icv]|*.m2v|*.mov|*.webm|*.ts|*.mts|*.m4v|*.r[am]|*.qt|*.divx)
|
||||
[ ! -f "$CACHE.jpg" ] && \
|
||||
ffmpegthumbnailer -i "$1" -o "$CACHE.jpg" -s 0 -q 5
|
||||
image "$CACHE.jpg" "$2" "$3" "$4" "$5"
|
||||
;;
|
||||
*.bmp|*.jpg|*.jpeg|*.png|*.xpm|*.webp|*.jfif)
|
||||
image "$1" "$2" "$3" "$4" "$5"
|
||||
;;
|
||||
*.svg)
|
||||
[ ! -f "$CACHE.jpg" ] && \
|
||||
convert "$1" "$CACHE.jpg"
|
||||
image "$CACHE.jpg" "$2" "$3" "$4" "$5"
|
||||
;;
|
||||
*.ino)
|
||||
batted --language=cpp "$1"
|
||||
;;
|
||||
*)
|
||||
batted "$1"
|
||||
;;
|
||||
esac
|
||||
'';
|
||||
home.file.".icons/default".source = "${pkgs.vanilla-dmz}/share/icons/Vanilla-DMZ";
|
||||
|
||||
programs.librewolf.enable = true;
|
||||
|
||||
|
||||
programs.helix = {
|
||||
enable = true;
|
||||
languages = {
|
||||
nix = {
|
||||
auto-format = true;
|
||||
language-server = {
|
||||
command = "${pkgs.rnix-lsp}/bin/rnix-lsp";
|
||||
};
|
||||
};
|
||||
go = {
|
||||
auto-format = true;
|
||||
language-server = {
|
||||
command = "${pkgs.gopls}/bin/gopls";
|
||||
};
|
||||
};
|
||||
typescript = {
|
||||
auto-format = true;
|
||||
language-server = {
|
||||
command = "${pkgs.nodePackages.typescript-language-server}/bin/typescript-language-server";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs.neomutt.extraConfig = ''
|
||||
|
||||
# Default index colors:
|
||||
color index yellow default '.*'
|
||||
color index_author red default '.*'
|
||||
color index_number blue default
|
||||
color index_subject cyan default '.*'
|
||||
|
||||
# New mail is boldened:
|
||||
color index brightyellow black "~N"
|
||||
color index_author brightred black "~N"
|
||||
color index_subject brightcyan black "~N"
|
||||
|
||||
# Tagged mail is highlighted:
|
||||
color index brightyellow blue "~T"
|
||||
color index_author brightred blue "~T"
|
||||
color index_subject brightcyan blue "~T"
|
||||
|
||||
# Other colors and aesthetic settings:
|
||||
mono bold bold
|
||||
mono underline underline
|
||||
mono indicator reverse
|
||||
mono error bold
|
||||
color normal default default
|
||||
color indicator brightblack white
|
||||
color sidebar_highlight red default
|
||||
color sidebar_divider brightblack black
|
||||
color sidebar_flagged red black
|
||||
color sidebar_new green black
|
||||
color normal brightyellow default
|
||||
color error red default
|
||||
color tilde black default
|
||||
color message cyan default
|
||||
color markers red white
|
||||
color attachment white default
|
||||
color search brightmagenta default
|
||||
color status brightyellow black
|
||||
color hdrdefault brightgreen default
|
||||
color quoted green default
|
||||
color quoted1 blue default
|
||||
color quoted2 cyan default
|
||||
color quoted3 yellow default
|
||||
color quoted4 red default
|
||||
color quoted5 brightred default
|
||||
color signature brightgreen default
|
||||
color bold black default
|
||||
color underline black default
|
||||
color normal default default
|
||||
|
||||
# Regex highlighting:
|
||||
color header blue default ".*"
|
||||
color header brightmagenta default "^(From)"
|
||||
color header brightcyan default "^(Subject)"
|
||||
color header brightwhite default "^(CC|BCC)"
|
||||
color body brightred default "[\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+" # Email addresses
|
||||
color body brightblue default "(https?|ftp)://[\-\.,/%~_:?&=\#a-zA-Z0-9]+" # URL
|
||||
color body green default "\`[^\`]*\`" # Green text between ` and `
|
||||
color body brightblue default "^# \.*" # Headings as bold blue
|
||||
color body brightcyan default "^## \.*" # Subheadings as bold cyan
|
||||
color body brightgreen default "^### \.*" # Subsubheadings as bold green
|
||||
color body yellow default "^(\t| )*(-|\\*) \.*" # List items as yellow
|
||||
color body brightcyan default "[;:][-o][)/(|]" # emoticons
|
||||
color body brightcyan default "[;:][)(|]" # emoticons
|
||||
color body brightcyan default "[ ][*][^*]*[*][ ]?" # more emoticon?
|
||||
color body brightcyan default "[ ]?[*][^*]*[*][ ]" # more emoticon?
|
||||
color body red default "(BAD signature)"
|
||||
color body cyan default "(Good signature)"
|
||||
color body brightblack default "^gpg: Good signature .*"
|
||||
color body brightyellow default "^gpg: "
|
||||
color body brightyellow red "^gpg: BAD signature from.*"
|
||||
mono body bold "^gpg: Good signature"
|
||||
mono body bold "^gpg: BAD signature from.*"
|
||||
color body red default "([a-z][a-z0-9+-]*://(((([a-z0-9_.!~*'();:&=+$,-]|%[0-9a-f][0-9a-f])*@)?((([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?|[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)(:[0-9]+)?)|([a-z0-9_.!~*'()$,;:@&=+-]|%[0-9a-f][0-9a-f])+)(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?(#([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?|(www|ftp)\\.(([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?(:[0-9]+)?(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?(#([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?)[^].,:;!)? \t\r\n<>\"]"
|
||||
'';
|
||||
|
||||
programs.aerc.extraBinds = ''
|
||||
# Binds are of the form <key sequence> = <command to run>
|
||||
# To use '=' in a key sequence, substitute it with "Eq": "<Ctrl+Eq>"
|
||||
# If you wish to bind #, you can wrap the key sequence in quotes: "#" = quit
|
||||
<C-p> = :prev-tab<Enter>
|
||||
<C-n> = :next-tab<Enter>
|
||||
<C-t> = :term<Enter>
|
||||
|
||||
[messages]
|
||||
Q = :quit<Enter>
|
||||
|
||||
T = :toggle-threads<Enter>
|
||||
|
||||
j = :next<Enter>
|
||||
<Down> = :next<Enter>
|
||||
<C-d> = :next 50%<Enter>
|
||||
<C-f> = :next 100%<Enter>
|
||||
<PgDn> = :next -s 100%<Enter>
|
||||
|
||||
k = :prev<Enter>
|
||||
<Up> = :prev<Enter>
|
||||
<C-u> = :prev 50%<Enter>
|
||||
<C-b> = :prev<Enter>
|
||||
<PgUp> = :prev -s 100%<Enter>
|
||||
gg = :select 0<Enter>
|
||||
G = :select -1<Enter>
|
||||
|
||||
J = :next-folder<Enter>
|
||||
K = :prev-folder<Enter>
|
||||
|
||||
v = :mark -t<Enter>
|
||||
V = :mark -v<Enter>
|
||||
|
||||
f = :flag<Enter>
|
||||
F = :unflag<Enter>
|
||||
|
||||
t = :toggle-threads<Enter>
|
||||
|
||||
<Enter> = :view<Enter>
|
||||
D = :delete<Enter>
|
||||
|
||||
C = :compose<enter>
|
||||
|
||||
Rr = :reply<Enter>
|
||||
Rq = :reply -q<Enter>
|
||||
rr = :reply -a<Enter>
|
||||
rq = :reply -aq<Enter>
|
||||
rt = :unflag<Enter>:reply -a -Tthanks<Enter>
|
||||
Rt = :unflag<Enter>:reply -qa -Tquoted_thanks<Enter>
|
||||
|
||||
a = :mv Archive<Enter>
|
||||
|
||||
c = :cf<space>
|
||||
$ = :term<space>
|
||||
! = :term<space>
|
||||
| = :pipe<space>
|
||||
|
||||
ga = :flag<Enter>:pipe -mb git am -3<Enter>
|
||||
gp = :term git push<Enter>
|
||||
gl = :term git log<Enter>
|
||||
|
||||
/ = :search<space>
|
||||
\ = :filter<space>
|
||||
n = :next-result<Enter>
|
||||
N = :prev-result<Enter>
|
||||
|
||||
o = :term mbsync -a<Enter>
|
||||
q = :quit<Enter>
|
||||
|
||||
[view]
|
||||
/ = :toggle-key-passthrough<Enter>/
|
||||
q = :close<Enter>
|
||||
| = :pipe -m<space>
|
||||
S = :save<space>
|
||||
H = :toggle-headers<Enter>
|
||||
D = :delete<Enter>
|
||||
<C-k> = :prev-part<Enter>
|
||||
<C-j> = :next-part<Enter>
|
||||
J = :next<Enter>
|
||||
K = :prev<Enter>
|
||||
|
||||
f = :forward<Enter>
|
||||
Rr = :reply<Enter>
|
||||
Rq = :reply -q<Enter>
|
||||
rr = :reply -a<Enter>
|
||||
rq = :reply -aq<Enter>
|
||||
rt = :reply -Tthanks<Enter>
|
||||
|
||||
ga = :pipe -b git am -3<Enter>
|
||||
gp = :term git push<Enter>
|
||||
gl = :term git log<Enter>
|
||||
|
||||
[view::passthrough]
|
||||
$noinherit = true
|
||||
$ex = <C-x>
|
||||
<Esc> = :toggle-key-passthrough<Enter>
|
||||
|
||||
[compose]
|
||||
$ex = <C-x>
|
||||
<C-k> = :prev-field<Enter>
|
||||
<C-j> = :next-field<Enter>
|
||||
<tab> = :next-field<Enter>
|
||||
|
||||
[compose::editor]
|
||||
# Keybindings used when the embedded terminal is selected in the compose view
|
||||
$noinherit = true
|
||||
$ex = <C-x>
|
||||
<C-t> = :term<Enter>
|
||||
<C-k> = :prev-field<Enter>
|
||||
<C-j> = :next-field<Enter>
|
||||
<C-p> = :prev-tab<Enter>
|
||||
<C-n> = :next-tab<Enter>
|
||||
|
||||
[compose::review]
|
||||
# Keybindings used when reviewing a message to be sent
|
||||
y = :send<Enter>
|
||||
n = :abort<Enter>
|
||||
e = :edit<Enter>
|
||||
a = :attach<space>
|
||||
c = :encrypt<Enter>
|
||||
s = :sign<Enter>
|
||||
V = :header -f X-Sourcehut-Patchset-Update NEEDS_REVISION<Enter>
|
||||
A = :header -f X-Sourcehut-Patchset-Update APPLIED<Enter>
|
||||
R = :header -f X-Sourcehut-Patchset-Update REJECTED<Enter>
|
||||
|
||||
[terminal]
|
||||
$noinherit = true
|
||||
$ex = <C-x>
|
||||
|
||||
<C-t> = :term<Enter>
|
||||
<C-p> = :prev-tab<Enter>
|
||||
<C-n> = :next-tab<Enter>
|
||||
'';
|
||||
|
||||
programs.aerc.extraConfig = {
|
||||
general = {
|
||||
pgp-provider = "gpg";
|
||||
unsafe-accounts-conf = true;
|
||||
};
|
||||
ui = { };
|
||||
viewer = { };
|
||||
filters = {
|
||||
"text/plain" = "colorize";
|
||||
"text/calendar" = "calendar";
|
||||
"message/delivery-status" = "colorize";
|
||||
"message/rfc822" = "colorize";
|
||||
"image/*" = "img2sixel";
|
||||
"text/html" = "html | colorize";
|
||||
};
|
||||
};
|
||||
|
||||
home.file.".config/pipewire/pipewire.conf.d/raop-discover.conf".text = ''
|
||||
context.modules = [
|
||||
{
|
||||
name = libpipewire-module-raop-discover
|
||||
args = { }
|
||||
}
|
||||
]
|
||||
'';
|
||||
systemd.user.services = {
|
||||
snapclient = {
|
||||
Unit = {
|
||||
Description = "Snapclient";
|
||||
};
|
||||
Service = {
|
||||
ExecStart = "${pkgs.snapcast}/bin/snapclient -h music.local";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.kdeconnect = {
|
||||
enable = true;
|
||||
indicator = true;
|
||||
};
|
||||
|
||||
wayland.windowManager.sway = {
|
||||
enable = true;
|
||||
config = {
|
||||
modifier = "Mod4";
|
||||
input = {
|
||||
"type:keyboard" = {
|
||||
xkb_layout = "gb";
|
||||
xkb_options = "caps:escape";
|
||||
xkb_numlock = "enable";
|
||||
};
|
||||
"type:touchpad" = {
|
||||
natural_scroll = "enabled";
|
||||
tap = "enabled";
|
||||
};
|
||||
};
|
||||
gaps = {
|
||||
inner = 10;
|
||||
};
|
||||
keybindings =
|
||||
let
|
||||
modifier = config.wayland.windowManager.sway.config.modifier;
|
||||
in
|
||||
lib.mkOptionDefault {
|
||||
"${modifier}+Shift+x" = "kill";
|
||||
"${modifier}+d" = "exec ${pkgs.wofi}/bin/wofi --show drun";
|
||||
"${modifier}+o" = "exec ${my-deps.fileman}";
|
||||
XF86AudioRaiseVolume = "exec ${ my-deps.amixer } sset Master 5%+ && ${ my-deps.amixer } sset Master unmute";
|
||||
XF86AudioLowerVolume = "exec ${ my-deps.amixer } sset Master 5%-";
|
||||
# XF86AudioPlay = "exec ${ my-scripts.play-pause }/bin/play-pause";
|
||||
XF86AudioNext = "exec ${ my-deps.playerctl } next";
|
||||
XF86AudioPrev = "exec ${ my-deps.playerctl } previous";
|
||||
# XF86MonBrightnessUp = "exec ${ my-scripts.brightness-up }/bin/brightness-up";
|
||||
# XF86MonBrightnessDown = "exec ${ my-scripts.brightness-down }/bin/brightness-down";
|
||||
# "${modifier}+P" = "exec ${ my-scripts.bwmenu }/bin/bwmenu";
|
||||
# "${modifier}+SHIFT+P" = "exec ${ my-scripts.bwotpmenu }/bin/bwotpmenu";
|
||||
# "${modifier}+SHIFT+S" = "exec ${ my-scripts.screenshot }/bin/screenshot";
|
||||
"${modifier}+M" = "exec ${ my-deps.terminal } -e ncmpcpp";
|
||||
"${modifier}+Z" = "exec ${pkgs.swaylock-effects}/bin/swaylock -f";
|
||||
};
|
||||
bars = [ ];
|
||||
};
|
||||
};
|
||||
|
||||
programs.qutebrowser = {
|
||||
enable = true;
|
||||
package = pkgs.qutebrowser-qt6;
|
||||
searchEngines = {
|
||||
DEFAULT = "https://search.brave.com/search?q={}";
|
||||
w = "https://en.wikipedia.org/wiki/Special:Search?search={}&go=Go&ns0=1";
|
||||
aw = "https://wiki.archlinux.org/?search={}";
|
||||
nw = "https://nixos.wiki/index.php?search={}";
|
||||
nixpkgs = "https://search.nixos.org/packages?channel=unstable&query={}";
|
||||
};
|
||||
settings = {
|
||||
colors = {
|
||||
webpage.preferred_color_scheme = "dark";
|
||||
};
|
||||
tabs = {
|
||||
background = false;
|
||||
indicator.width = 0;
|
||||
favicons.scale = 2.0;
|
||||
position = "left";
|
||||
show = "always";
|
||||
width = 40;
|
||||
};
|
||||
};
|
||||
extraConfig = ''
|
||||
c.tabs.padding = {
|
||||
"bottom" : 10,
|
||||
"left" : 5,
|
||||
"right" : 5,
|
||||
"top" : 10
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
coc = {
|
||||
enable = true;
|
||||
settings = {
|
||||
languageserver = {
|
||||
go = {
|
||||
command = "${pkgs.gopls}/bin/gopls";
|
||||
filetypes = [ "go" ];
|
||||
};
|
||||
nix = {
|
||||
command = "${pkgs.rnix-lsp}/bin/rnix-lsp";
|
||||
filetypes = [ "nix" ];
|
||||
};
|
||||
typescript = {
|
||||
command = "${pkgs.nodePackages.typescript-language-server}/bin/typescript-language-server";
|
||||
filetypes = [ "ts" "tsx" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs.wofi = {
|
||||
enable = true;
|
||||
settings = {
|
||||
insensitive = true;
|
||||
};
|
||||
};
|
||||
|
||||
programs.pandoc = {
|
||||
enable = true;
|
||||
defaults = {
|
||||
metadata = {
|
||||
author = "Tristan Beedell";
|
||||
};
|
||||
pdf-engine = "xelatex";
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue