move more stuff to modules
This commit is contained in:
parent
a2e0d1cfd5
commit
6283c36e66
6 changed files with 385 additions and 475 deletions
471
global/home.nix
471
global/home.nix
|
|
@ -68,200 +68,6 @@ in
|
|||
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;
|
||||
|
|
@ -289,10 +95,6 @@ in
|
|||
];
|
||||
};
|
||||
|
||||
services.mako = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
programs.ncmpcpp = {
|
||||
enable = true;
|
||||
settings.mpd_host = "music.local";
|
||||
|
|
@ -359,20 +161,6 @@ in
|
|||
};
|
||||
};
|
||||
|
||||
programs.vscode = {
|
||||
extensions = with pkgs; [
|
||||
vscode-extensions.asvetliakov.vscode-neovim
|
||||
];
|
||||
userSettings = {
|
||||
"vscode-neovim.neovimExecutablePaths.linux" = "/run/current-system/sw/bin/nvim";
|
||||
"keyboard.dispatch" = "keyCode";
|
||||
"terminal.integrated.sendKeybindingsToShell" = true;
|
||||
"aws.telemetry" = false;
|
||||
"gitlens.telemetry.enabled" = false;
|
||||
"redhat.telemetry.enabled" = false;
|
||||
};
|
||||
};
|
||||
|
||||
programs.rbw = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
|
@ -393,8 +181,6 @@ in
|
|||
};
|
||||
};
|
||||
|
||||
programs.neovim.defaultEditor = true;
|
||||
|
||||
programs.lf.enable = true;
|
||||
programs.lf.package = lf-sixel;
|
||||
programs.lf.keybindings = {
|
||||
|
|
@ -510,7 +296,6 @@ in
|
|||
|
||||
programs.librewolf.enable = true;
|
||||
|
||||
|
||||
programs.helix = {
|
||||
enable = true;
|
||||
languages = {
|
||||
|
|
@ -535,232 +320,6 @@ in
|
|||
};
|
||||
};
|
||||
|
||||
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 = [
|
||||
{
|
||||
|
|
@ -861,36 +420,6 @@ color body red default "([a-z][a-z0-9+-]*://(((([a-z0-9_.!~*'();:&=+$,-]|%[0-9a-
|
|||
'';
|
||||
};
|
||||
|
||||
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 = {
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
|
||||
windowManager.hyprland = true;
|
||||
|
||||
programs.menu.enable = true;
|
||||
roles.work.enable = work;
|
||||
roles.personal.enable = !work;
|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,43 @@ in
|
|||
programs.vscode = {
|
||||
enable = true;
|
||||
package = editor.package;
|
||||
extensions = with pkgs; [
|
||||
vscode-extensions.asvetliakov.vscode-neovim
|
||||
];
|
||||
userSettings = {
|
||||
"vscode-neovim.neovimExecutablePaths.linux" = "/run/current-system/sw/bin/nvim";
|
||||
"keyboard.dispatch" = "keyCode";
|
||||
"terminal.integrated.sendKeybindingsToShell" = true;
|
||||
"aws.telemetry" = false;
|
||||
"gitlens.telemetry.enabled" = false;
|
||||
"redhat.telemetry.enabled" = false;
|
||||
};
|
||||
};
|
||||
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
defaultEditor = 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.scripts = [{
|
||||
|
|
|
|||
|
|
@ -70,7 +70,160 @@ in
|
|||
};
|
||||
programs.mbsync.enable = cfg.terminal;
|
||||
services.mbsync.enable = cfg.terminal;
|
||||
programs.aerc.enable = cfg.terminal;
|
||||
|
||||
programs.aerc = {
|
||||
enable = cfg.terminal;
|
||||
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>
|
||||
'';
|
||||
|
||||
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";
|
||||
};
|
||||
};
|
||||
};
|
||||
}];
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -21,14 +21,13 @@ in
|
|||
|
||||
config = mkIf cfg.enable {
|
||||
home-manager.users.${user}.imports = [{
|
||||
programs.wofi = mkIf cfg.package == pkgs.wofi {
|
||||
programs.wofi = mkIf (cfg.package == pkgs.wofi) {
|
||||
enable = true;
|
||||
settings = {
|
||||
term = termcmd;
|
||||
insensitive = true;
|
||||
};
|
||||
};
|
||||
|
||||
home.packages = [ cfg.package ];
|
||||
}];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,5 +24,197 @@ in
|
|||
default_session = if cfg.sway then sway_session else hypr_session;
|
||||
};
|
||||
};
|
||||
|
||||
home-manager.users.${user}.imports = [{
|
||||
wayland.windowManager.hyprland = mkIf cfg.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.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";
|
||||
}
|
||||
];
|
||||
|
||||
services.mako = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
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";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
}];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue