move more stuff to modules

This commit is contained in:
Tristan 2023-07-20 13:48:49 +01:00
parent a2e0d1cfd5
commit 6283c36e66
6 changed files with 385 additions and 475 deletions

View file

@ -30,6 +30,7 @@
windowManager.hyprland = true;
programs.menu.enable = true;
roles.work.enable = work;
roles.personal.enable = !work;

View file

@ -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 = [{

View file

@ -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";
};
};
};
}];
};

View file

@ -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 ];
}];
};
}

View file

@ -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";
};
};
}];
};
}