757 lines
18 KiB
Nix
757 lines
18 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
{
|
|
# Home Manager needs a bit of information about you and the
|
|
# paths it should manage.
|
|
home.username = "chris";
|
|
home.homeDirectory = "/home/chris";
|
|
|
|
# This value determines the Home Manager release that your
|
|
# configuration is compatible with. This helps avoid breakage
|
|
# when a new Home Manager release introduces backwards
|
|
# incompatible changes.
|
|
#
|
|
# You can update Home Manager without changing this value. See
|
|
# the Home Manager release notes for a list of state version
|
|
# changes in each release.
|
|
home.stateVersion = "21.11"; # Did you read the comment?
|
|
|
|
# Let Home Manager install and manage itself.
|
|
programs.home-manager.enable = true;
|
|
|
|
# accounts.email.accounts = {
|
|
# personal = {
|
|
# address = "chris@cochrun.xyz";
|
|
# mbsync.enable = true;
|
|
# create = "maildir";
|
|
# mu.enable = true;
|
|
# imap = {
|
|
# host = "mail.cochrun.xyz";
|
|
# port = 993;
|
|
# tls.enable = true;
|
|
# };
|
|
# smtp = {
|
|
# host = "mail.cochrun.xyz";
|
|
# port = 25;
|
|
# tls.enable = true;
|
|
# };
|
|
# };
|
|
# work = {
|
|
# address = "chris@tfcconnection.org";
|
|
# mbsync.enable = true;
|
|
# create = "maildir";
|
|
# mu.enable = true;
|
|
# imap = {
|
|
# host = "outlook.office365.com";
|
|
# port = 993;
|
|
# tls.enable = true;
|
|
# };
|
|
# smtp = {
|
|
# host = "mail.cochrun.xyz";
|
|
# port = 25;
|
|
# tls.enable = true;
|
|
# };
|
|
# };
|
|
# };
|
|
|
|
programs.git = {
|
|
enable = true;
|
|
userName = "Chris Cochrun";
|
|
userEmail = "chris@cochrun.xyz";
|
|
};
|
|
|
|
home.packages = with pkgs; [
|
|
];
|
|
|
|
programs.mu.enable = true;
|
|
|
|
programs.mbsync = {
|
|
enable = true;
|
|
extraConfig = ''
|
|
IMAPAccount gmail
|
|
Host imap.gmail.com
|
|
User ccochrun21@gmail.com
|
|
PassCmd "rbw get gmail"
|
|
AuthMechs LOGIN
|
|
SSLType IMAPS
|
|
SSLVersions SSLv3
|
|
# CertificateFile /opt/local/share/curl/curl-ca-bundle.crt
|
|
|
|
IMAPAccount office
|
|
Host outlook.office365.com
|
|
User chris@tfcconnection.org
|
|
PassCmd "rbw get 'Office 365'"
|
|
AuthMechs LOGIN
|
|
SSLType IMAPS
|
|
|
|
IMAPAccount outlook
|
|
Host outlook.office365.com
|
|
User chris.cochrun@outlook.com
|
|
PassCmd "rbw get outlook"
|
|
AuthMechs LOGIN
|
|
SSLType IMAPS
|
|
|
|
IMAPAccount cochrun
|
|
Host mail.cochrun.xyz
|
|
User chris@cochrun.xyz
|
|
PassCmd "rbw get 'Office 365'"
|
|
AuthMechs LOGIN
|
|
SSLType IMAPS
|
|
# SSLVersions SSLv3
|
|
# CertificateFile /opt/local/share/curl/curl-ca-bundle.crt
|
|
# THEN WE SPECIFY THE LOCAL AND REMOTE STORAGE
|
|
# - THE REMOTE STORAGE IS WHERE WE GET THE MAIL FROM (E.G., THE
|
|
# SPECIFICATION OF AN IMAP ACCOUNT)
|
|
# - THE LOCAL STORAGE IS WHERE WE STORE THE EMAIL ON OUR COMPUTER
|
|
|
|
# REMOTE STORAGE (USE THE IMAP ACCOUNT SPECIFIED ABOVE)
|
|
IMAPStore gmail-remote
|
|
Account gmail
|
|
|
|
MaildirStore gmail-local
|
|
Path ~/Maildir/gmail/
|
|
Inbox ~/Maildir/gmail/INBOX
|
|
|
|
IMAPStore office-remote
|
|
Account office
|
|
|
|
# LOCAL STORAGE (CREATE DIRECTORIES with mkdir -p Maildir/gmail)
|
|
|
|
MaildirStore office-local
|
|
Path ~/Maildir/office/
|
|
Inbox ~/Maildir/office/INBOX
|
|
Subfolders Verbatim
|
|
|
|
|
|
IMAPStore outlook-remote
|
|
Account outlook
|
|
|
|
MaildirStore outlook-local
|
|
Path ~/Maildir/outlook/
|
|
Inbox ~/Maildir/outlook/INBOX
|
|
Subfolders Verbatim
|
|
|
|
IMAPStore cochrun-remote
|
|
Account cochrun
|
|
|
|
MaildirStore cochrun-local
|
|
Path ~/Maildir/cochrun/
|
|
Inbox ~/Maildir/cochrun/INBOX
|
|
Subfolders Verbatim
|
|
|
|
# CONNECTIONS SPECIFY LINKS BETWEEN REMOTE AND LOCAL FOLDERS
|
|
#
|
|
# CONNECTIONS ARE SPECIFIED USING PATTERNS, WHICH MATCH REMOTE MAIl
|
|
# FOLDERS. SOME COMMONLY USED PATTERS INCLUDE:
|
|
#
|
|
# 1 "*" TO MATCH EVERYTHING
|
|
# 2 "!DIR" TO EXCLUDE "DIR"
|
|
# 3 "DIR" TO MATCH DIR
|
|
|
|
Channel gmail-inbox
|
|
Far :gmail-remote:
|
|
Near :gmail-local:
|
|
Patterns "INBOX"
|
|
Create Both
|
|
Expunge Both
|
|
SyncState *
|
|
|
|
Channel gmail-trash
|
|
Far :gmail-remote:"[Gmail]/Bin"
|
|
Near :gmail-local:"[Gmail].Bin"
|
|
Create Both
|
|
Expunge Both
|
|
SyncState *
|
|
|
|
Channel gmail-sent
|
|
Far :gmail-remote:"[Gmail]/Sent Mail"
|
|
Near :gmail-local:"[Gmail].Sent Mail"
|
|
Create Both
|
|
Expunge Both
|
|
SyncState *
|
|
|
|
Channel gmail-all
|
|
Far :gmail-remote:"[Gmail]/All Mail"
|
|
Near :gmail-local:"[Gmail].All Mail"
|
|
Create Both
|
|
Expunge Both
|
|
SyncState *
|
|
|
|
Channel gmail-starred
|
|
Far :gmail-remote:"[Gmail]/Starred"
|
|
Near :gmail-local:"[Gmail].Starred"
|
|
Create Both
|
|
Expunge Both
|
|
SyncState *
|
|
|
|
Channel office-inbox
|
|
Far :office-remote:
|
|
Near :office-local:
|
|
Patterns "*"
|
|
Create Both
|
|
Expunge Both
|
|
SyncState *
|
|
|
|
Channel outlook-inbox
|
|
Far :outlook-remote:
|
|
Near :outlook-local:
|
|
Patterns "*"
|
|
Create Both
|
|
Expunge Both
|
|
SyncState *
|
|
|
|
Channel cochrun-inbox
|
|
Far :cochrun-remote:
|
|
Near :cochrun-local:
|
|
Patterns "*"
|
|
Create Both
|
|
Expunge Both
|
|
SyncState *
|
|
# GROUPS PUT TOGETHER CHANNELS, SO THAT WE CAN INVOKE
|
|
# MBSYNC ON A GROUP TO SYNC ALL CHANNELS
|
|
#
|
|
# FOR INSTANCE: "mbsync gmail" GETS MAIL FROM
|
|
# "gmail-inbox", "gmail-sent", and "gmail-trash"
|
|
#
|
|
# Group gmail
|
|
# Channel gmail-inbox
|
|
# Channel gmail-sent
|
|
# Channel gmail-trash
|
|
# Channel gmail-all
|
|
# Channel gmail-starred
|
|
|
|
Group office
|
|
Channel office-inbox
|
|
|
|
Group outlook
|
|
Channel outlook-inbox
|
|
|
|
Group cochrun
|
|
Channel cochrun-inbox
|
|
'';
|
|
};
|
|
programs.msmtp.enable = true;
|
|
services.mbsync.enable = true;
|
|
|
|
programs.obs-studio = {
|
|
enable = true;
|
|
plugins = [ pkgs.obs-studio-plugins.obs-move-transition ];
|
|
};
|
|
|
|
home.file.".config/mpv" = {
|
|
source = if builtins.readFile "/etc/hostname" == "syl\n" then ../mpv-syl else ../mpv;
|
|
};
|
|
|
|
home.file.".config/hypr/hyprpaper.conf" = {
|
|
source = if builtins.readFile "/etc/hostname" == "syl\n" then /home/chris/.dotfiles/hypr/hyprpaper.conf else /home/chris/.dotfiles/hypr/hyprpaper.conf;
|
|
};
|
|
home.file.".config/hypr/hyprsome" = {
|
|
source = if builtins.readFile "/etc/hostname" == "syl\n" then /home/chris/.dotfiles/hypr/hyprsome else /home/chris/.dotfiles/hypr/hyprsome;
|
|
};
|
|
|
|
home.file.".config/hypr/hyprland.conf" = {
|
|
text = ''
|
|
monitor=eDP-1,2256x1504@60,0x0,1.5
|
|
workspace=eDP-1,1
|
|
monitor=DVI-D-1,preferred,0x0,1
|
|
monitor=HDMI-A-1,preferred,0x0,1
|
|
monitor=DP-3,preferred,1080x0,1.5
|
|
workspace=DVI-D-1,2
|
|
workspace=DP-3,1
|
|
workspace=HDMI-A-1,2
|
|
monitor=DVI-D-1,transform,1
|
|
|
|
input {
|
|
# kb_layout=
|
|
# kb_variant=
|
|
# kb_model=
|
|
# kb_options=
|
|
# kb_rules=
|
|
repeat_rate=140
|
|
repeat_delay=180
|
|
natural_scroll=0
|
|
sensitivity=0.85
|
|
accel_profile=adaptive
|
|
|
|
follow_mouse=2
|
|
|
|
touchpad {
|
|
natural_scroll=1
|
|
clickfinger_behavior=1
|
|
}
|
|
}
|
|
|
|
general {
|
|
max_fps=60 # deprecated, unused
|
|
# main_mod=SUPER
|
|
|
|
gaps_in=15
|
|
gaps_out=20
|
|
border_size=0
|
|
col.active_border=0x66ee1111
|
|
col.inactive_border=0x66333333
|
|
|
|
#damage_tracking=full # leave it on full unless you hate your GPU and want to make it suffer
|
|
layout=master
|
|
}
|
|
|
|
gestures {
|
|
workspace_swipe=true
|
|
workspace_swipe_fingers=3
|
|
}
|
|
|
|
decoration {
|
|
rounding=18
|
|
active_opacity=0.95
|
|
inactive_opacity=0.85
|
|
fullscreen_opacity=1.0
|
|
blur=true
|
|
blur_new_optimizations=true
|
|
blur_size=9# minimum 1
|
|
blur_passes=5 # minimum 1, more passes = more resource intensive.
|
|
# Your blur "amount" is blur_size * blur_passes, but high blur_size (over around 5-ish) will produce artifacts.
|
|
# if you want heavy blur, you need to up the blur_passes.
|
|
# the more passes, the more you can up the blur_size without noticing artifacts.
|
|
drop_shadow=true
|
|
shadow_range=20
|
|
shadow_offset=2 2
|
|
shadow_render_power=1
|
|
dim_inactive=true
|
|
dim_strength=0.2
|
|
}
|
|
|
|
bezier=snapslide,0.07,0.66,0.04,1.02
|
|
|
|
animations {
|
|
enabled=1
|
|
animation=windows,1,2,snapslide
|
|
# animation=borders,1,10,default
|
|
animation=fadeIn,1,2,snapslide
|
|
animation=workspaces,1,2,snapslide
|
|
animation=specialWorkspace,1,2,snapslide,slidevert
|
|
}
|
|
|
|
dwindle {
|
|
pseudotile=0 # enable pseudotiling on dwindle
|
|
}
|
|
|
|
master {
|
|
special_scale_factor=0.7
|
|
new_is_master=false
|
|
new_on_top=false
|
|
}
|
|
|
|
# misc:disable_autoreload = true
|
|
|
|
# example window rules
|
|
# for windows named/classed as abc and xyz
|
|
windowrule=opaque,firefox
|
|
windowrule=float,dolphin
|
|
${if builtins.readFile "/etc/hostname" == "syl\n" then "# this is a kaladin space" else "windowrule=workspace 1,mpv"}
|
|
windowrule=float,mpv
|
|
${if builtins.readFile "/etc/hostname" == "syl\n" then "windowrule=size 90% 76%,mpv" else "windowrule=size 85% 85%,mpv"}
|
|
windowrule=center,mpv
|
|
windowrule=float,pulsemixer
|
|
windowrule=workspace 1,firefox
|
|
windowrule=workspace 2,emacs
|
|
windowrule=float,btop
|
|
windowrule=size 70% 70%,btop
|
|
windowrule=center,btop
|
|
windowrule=float,presenter
|
|
windowrule=size 80% 80%,presenter
|
|
windowrule=center,presenter
|
|
|
|
# example binds
|
|
bind = SUPER,RETURN,exec,alacritty
|
|
bind = SUPER,C,killactive,
|
|
bind = SUPERSHIFT,Q,exit,
|
|
bind = SUPERSHIFT,D,exec,dolphin
|
|
bind = SUPERSHIFT,F,togglefloating,
|
|
bindr = SUPER,Super_L,exec,/home/chris/bin/launcher.sh
|
|
bindr = ALT,Alt_L,exec,/home/chris/bin/window.sh
|
|
bind = SUPER,w,exec,/home/chris/bin/window.sh
|
|
bind = SUPER,E,exec,/home/chris/bin/emacslof
|
|
bind = SUPER,d,exec,emacsclient -c -e '(dired-jump)'
|
|
bind = SUPER,B,exec,/home/chris/bin/fflof
|
|
bind = SUPER,A,exec,alacritty --class pulsemixer -e pulsemixer
|
|
bind = SUPERCTRL,i,exec,alacritty --class btop -e btop
|
|
|
|
bind = SUPER,P,exec,/home/chris/bin/rbw.sh
|
|
bind = SUPER,M,fullscreen,1
|
|
bind = SUPER,F,fullscreen,0
|
|
|
|
bind = SUPER,h,movefocus,l
|
|
bind = SUPER,l,movefocus,r
|
|
bind = SUPER,k,cyclenext,prev
|
|
bind = SUPER,j,cyclenext
|
|
bind = SUPERSHIFT,h,movewindow,l
|
|
bind = SUPERSHIFT,l,movewindow,r
|
|
bind = SUPERSHIFT,k,movewindow,u
|
|
bind = SUPERSHIFT,j,movewindow,d
|
|
bind = SUPERCTRL,l,splitratio,+0.05
|
|
bind = SUPERCTRL,h,splitratio,-0.05
|
|
bind = SUPERCTRL,c,centerwindow
|
|
|
|
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 = SUPERALT,l,workspace,m+1
|
|
bind = SUPERALT,h,workspace,m-1
|
|
|
|
bind = SUPERSHIFT,1,movetoworkspace,1
|
|
bind = SUPERSHIFT,2,movetoworkspace,2
|
|
bind = SUPERSHIFT,3,movetoworkspace,3
|
|
bind = SUPERSHIFT,4,movetoworkspace,4
|
|
bind = SUPERSHIFT,5,movetoworkspace,5
|
|
bind = SUPERSHIFT,6,movetoworkspace,6
|
|
bind = SUPERSHIFT,7,movetoworkspace,7
|
|
bind = SUPERSHIFT,8,movetoworkspace,8
|
|
bind = SUPERSHIFT,9,movetoworkspace,9
|
|
bind = SUPERSHIFT,0,movetoworkspace,10
|
|
|
|
bind = SUPER,o,movewindow,mon: next
|
|
bind = SUPER,y,togglespecialworkspace
|
|
bind = SUPER,i,movewindow,left
|
|
bind = SUPERSHIFT,p,pin
|
|
bind = SUPER,n,movetoworkspace,special
|
|
|
|
binde = , XF86AudioMute, exec, pamixer -t
|
|
binde = , XF86AudioRaiseVolume, exec, /home/chris/bin/volup
|
|
binde = , XF86AudioLowerVolume, exec, /home/chris/bin/voldown
|
|
binde = ,F1, exec, pamixer -t
|
|
binde = ,F3, exec, /home/chris/bin/volup
|
|
binde = ,F2, exec, /home/chris/bin/voldown
|
|
binde = , XF86MonBrightnessUp, exec, brightnessctl s +10%
|
|
binde = , XF86MonBrightnessDown, exec, brightnessctl s 10%-
|
|
|
|
bind=SUPERCTRL,b,exec,eww.sh
|
|
bind=SUPERALT,n,exec,eww update rightside=true
|
|
|
|
bindm=SUPER,mouse:272,movewindow
|
|
bindm=SUPER,mouse:273,resizewindow
|
|
|
|
# Blur waybar
|
|
# blurls=gtk-layer-shell
|
|
# blurls=notifications
|
|
|
|
exec-once = /home/chris/bin/startup.sh
|
|
exec-once = hyprpaper
|
|
exec-once = dunst
|
|
exec-once = hyprctl dispatch --batch "splitratio 1; splitration -0.35"
|
|
exec-once = dbus-update-activation-environment --systemd --all
|
|
exec-once = jellyfin-mpv-shim
|
|
exec-once = hyprctl setcursor phinger-cursors-light
|
|
'';
|
|
};
|
|
|
|
services.nextcloud-client = {
|
|
enable = true;
|
|
startInBackground = true;
|
|
};
|
|
|
|
services.syncthing.enable = true;
|
|
# services.kdeconnect.enable = true;
|
|
services.easyeffects.enable = true;
|
|
|
|
services.espanso = {
|
|
enable = true;
|
|
settings = {
|
|
|
|
toggle_key = "RIGHT_CTRL";
|
|
matches = [
|
|
{ # dates
|
|
trigger = ":date";
|
|
replace = "{{mydate}}";
|
|
vars = [{
|
|
|
|
name = "mydate";
|
|
type = "date";
|
|
params = {format = "%m/%d/%Y";};
|
|
}];
|
|
}
|
|
{ # Shell commands
|
|
trigger = ":shell";
|
|
replace = "{{output}}";
|
|
vars = [{
|
|
name = "output";
|
|
type = "shell";
|
|
params = { cmd = "echo Hello from your shell";};
|
|
}];
|
|
}
|
|
{ # simple text
|
|
trigger = ":gml";
|
|
replace = "ccochrun21@gmail.com";
|
|
}
|
|
{
|
|
trigger = ":otl";
|
|
replace = "chris.cochrun@outlook.com";
|
|
}
|
|
{
|
|
trigger = ":tfcml";
|
|
replace = "chris@tfcconnection.org";
|
|
}
|
|
{
|
|
trigger = ":name";
|
|
replace = "Chris Cochrun";
|
|
}
|
|
{
|
|
trigger = ":cn";
|
|
replace = "A Giant Gummy Lizard";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
|
|
home.file.".config/rofi" = {
|
|
source = ../rofi;
|
|
recursive = true;
|
|
};
|
|
|
|
programs.firefox = {
|
|
enable = true;
|
|
package = pkgs.firefox-wayland.override {
|
|
cfg = {
|
|
enableTridactylNative = true;
|
|
enablePlasmaBrowserIntegration = true;
|
|
};
|
|
};
|
|
profiles.chris = {
|
|
name = "default";
|
|
path = "nw77o6yc.default";
|
|
isDefault = true;
|
|
};
|
|
};
|
|
|
|
home.file.".mozilla/native-messaging-hosts".source = "/run/current-system/sw/lib/mozilla/native-messaging-hosts";
|
|
|
|
home.file.".mozilla/firefox/nw77o6yc.default/chrome" = {
|
|
source = ../firefox/chrome;
|
|
recursive = true;
|
|
};
|
|
|
|
home.file.".config/tridactyl" = {
|
|
source = ../tridactyl;
|
|
recursive = true;
|
|
};
|
|
|
|
programs.rbw.enable = true;
|
|
home.file.".config/rbw" = {
|
|
source = ../rbw;
|
|
recursive = true;
|
|
};
|
|
|
|
home.file.".config/fish/config.fish" = {
|
|
source = ../fish/config.fish;
|
|
};
|
|
|
|
home.file.".config/fish/functions" = {
|
|
source = ../fish/functions;
|
|
};
|
|
|
|
programs.nushell = {
|
|
enable = true;
|
|
};
|
|
|
|
home.file.".config/dunst" = {
|
|
source = ../dunst;
|
|
};
|
|
|
|
programs.direnv.enable = true;
|
|
programs.direnv.nix-direnv.enable = true;
|
|
|
|
# programs.qutebrowser.enable = true;
|
|
home.file.".config/qutebrowser/config.py" = {
|
|
source = ../qutebrowser/config.py;
|
|
};
|
|
|
|
home.file.".config/qutebrowser/bookmarks" = {
|
|
source = ../qutebrowser/bookmarks;
|
|
};
|
|
|
|
home.file.".config/qutebrowser/css" = {
|
|
source = ../qutebrowser/css;
|
|
};
|
|
|
|
home.file.".config/qutebrowser/quickmarks" = {
|
|
source = ../qutebrowser/quickmarks;
|
|
};
|
|
|
|
home.file.".config/qutebrowser/qsettings" = {
|
|
source = ../qutebrowser/qsettings;
|
|
};
|
|
|
|
home.file.".config/imv" = {
|
|
source = ../imv;
|
|
recursive = true;
|
|
};
|
|
|
|
home.file.".config/macchina" = {
|
|
source = ../macchina;
|
|
recursive = true;
|
|
};
|
|
|
|
home.file.".config/awesome" = {
|
|
source = ../awesome;
|
|
recursive = true;
|
|
};
|
|
|
|
home.file.".config/awesome/bling" = {
|
|
source = ../awesome/bling;
|
|
recursive = true;
|
|
};
|
|
|
|
home.file.".config/awesome/rubato" = {
|
|
source = ../awesome/rubato;
|
|
recursive = true;
|
|
};
|
|
|
|
home.file.".config/alacritty" = {
|
|
source = ../alacritty;
|
|
recursive = true;
|
|
};
|
|
|
|
home.file.".config/picom.conf" = {
|
|
source = ../picom.conf;
|
|
};
|
|
|
|
# home.file.".config/networkmanager-dmenu/config.ini" = {
|
|
# source = ../networkmanager-dmenu/config.ini;
|
|
# };
|
|
|
|
home.file."bin" = {
|
|
source = ../scripts;
|
|
recursive = true;
|
|
};
|
|
|
|
home.shellAliases = {
|
|
ls = "exa -l";
|
|
la = "exa -la";
|
|
mpf = "mpv --profile=fast";
|
|
mps = "mpv --profile=slow";
|
|
ec = "emacsclient -t";
|
|
ecc = "emacsclient -c";
|
|
mkdir = "mkdir -pv";
|
|
nupd = "update-nix";
|
|
nupg = "upgrade-nix";
|
|
suspend = "systemctl suspend";
|
|
sysuse = "systemctl --user";
|
|
myip = "curl icanhazip.com";
|
|
nixs = "nix search nixpkgs";
|
|
ytd = "yt-dlp -o ~/Videos/%(title)s.%(ext)s";
|
|
};
|
|
|
|
programs.starship = {
|
|
enable = true;
|
|
enableBashIntegration = true;
|
|
};
|
|
|
|
programs.bash = {
|
|
enable = true;
|
|
bashrcExtra = ''
|
|
# export ENV_EFI_CODE_SECURE=/run/libvirt/nix-ovmf/OVMF_CODE.fd ENV_EFI_VARS_SECURE=/run/libvirt/nix-ovmf/OVMF_VARS.fd
|
|
source $(blesh-share)
|
|
ble-face auto_complete="fg=238"
|
|
# eval "$(starship init bash)"
|
|
'';
|
|
};
|
|
|
|
programs.zsh = {
|
|
enable = true;
|
|
enableAutosuggestions = true;
|
|
enableCompletion = true;
|
|
enableSyntaxHighlighting = true;
|
|
autocd = true;
|
|
dotDir = ".config/zsh";
|
|
shellAliases = {
|
|
ls = "exa -l";
|
|
la = "exa -la";
|
|
mpf = "mpv --profile=fast";
|
|
mps = "mpv --profile=slow";
|
|
ec = "emacsclient -t";
|
|
ecc = "emacsclient -c";
|
|
mkdir = "mkdir -pv";
|
|
nupd = "update-nix";
|
|
nupg = "upgrade-nix";
|
|
suspend = "systemctl suspend";
|
|
sysuse = "systemctl --user";
|
|
myip = "curl icanhazip.com";
|
|
};
|
|
initExtra = ''
|
|
macchina
|
|
'';
|
|
};
|
|
|
|
|
|
xdg.desktopEntries = {
|
|
mpv-slow = {
|
|
name = "MPV";
|
|
genericName = "Play from MPV but at normal speed";
|
|
exec = "alacritty -e mpv --profile=slow %U";
|
|
terminal = true;
|
|
categories = [ "Application" ];
|
|
mimeType = [ "audio/ogg" "audio/mpeg" "audio/opus" "audio/x-opus+ogg" "audio/x-wav" ];
|
|
};
|
|
imv-rifle = {
|
|
name = "IMV";
|
|
genericName = "Show images in current directory in IMV";
|
|
exec = "/home/chris/bin/rifle-imv %U";
|
|
terminal = false;
|
|
categories = [ "Application" ];
|
|
mimeType = [ "image/gif" "image/jpeg" "image/png" "image/heif" ];
|
|
};
|
|
};
|
|
|
|
systemd.user.services = {
|
|
ydotoold = {
|
|
Unit = {
|
|
Description = "An auto-input utility for wayland";
|
|
Documentation = [ "man:ydotool(1)" "man:ydotoold(8)" ];
|
|
};
|
|
|
|
Service = {
|
|
ExecStart = "/run/current-system/sw/bin/ydotoold --socket-path /tmp/ydotools";
|
|
};
|
|
|
|
Install = {
|
|
WantedBy = ["default.target"];
|
|
};
|
|
};
|
|
|
|
jellyfin-mpv-shim = {
|
|
Unit = {
|
|
Description = "Play Jellyfin media in mpv";
|
|
After = "graphical-session-pre.target";
|
|
};
|
|
|
|
Service = {
|
|
ExecStart = "/run/current-system/sw/bin/jellyfin-mpv-shim";
|
|
};
|
|
|
|
Install = {
|
|
WantedBy = ["graphical-session.target"];
|
|
};
|
|
};
|
|
|
|
nextlcoud-client = {
|
|
Unit = {
|
|
Description = "Nextcloud Client";
|
|
After = [ "graphical-session.target" ];
|
|
# PartOf = [ "plasma-workspace.target" ];
|
|
};
|
|
Service = {
|
|
Environment = ["PATH=/etc/profiles/per-user/chris/bin"
|
|
"WAYLAND_DISPLAY=wayland-1"];
|
|
};
|
|
};
|
|
};
|
|
|
|
}
|