modules/home: flatten
This commit is contained in:
parent
866b1561af
commit
2e6d2754a9
6 changed files with 66 additions and 67 deletions
75
modules/home/desktop/default.nix
Normal file
75
modules/home/desktop/default.nix
Normal file
|
@ -0,0 +1,75 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
inputs',
|
||||
...
|
||||
}:
|
||||
{
|
||||
_file = ./default.nix;
|
||||
|
||||
imports = [ ./zellij.nix ];
|
||||
|
||||
options.common.desktop = {
|
||||
enable = lib.mkEnableOption "Common configuration for desktop machines";
|
||||
};
|
||||
|
||||
config = lib.mkIf config.common.desktop.enable {
|
||||
home.packages = with pkgs; [
|
||||
inputs'.settei.packages.wezterm
|
||||
nerd-fonts.iosevka
|
||||
nerd-fonts.iosevka-term
|
||||
fontconfig
|
||||
signal-desktop
|
||||
];
|
||||
|
||||
fonts.fontconfig.enable = true;
|
||||
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
package =
|
||||
let
|
||||
firefox-pkgs = pkgs.extend inputs.firefox-darwin.overlay;
|
||||
in
|
||||
lib.mkIf pkgs.stdenv.isDarwin firefox-pkgs.firefox-bin;
|
||||
};
|
||||
|
||||
programs.qutebrowser = {
|
||||
enable = true;
|
||||
package =
|
||||
if pkgs.stdenv.isDarwin then inputs'.niko-nur.packages.qutebrowser-bin else pkgs.qutebrowser;
|
||||
searchEngines = {
|
||||
r = "https://doc.rust-lang.org/stable/std/?search={}";
|
||||
lib = "https://lib.rs/search?q={}";
|
||||
nip = "https://jisho.org/search/{}";
|
||||
};
|
||||
settings = {
|
||||
tabs = {
|
||||
indicator.width = 3;
|
||||
};
|
||||
|
||||
fonts = {
|
||||
default_family = "IosevkaTerm Nerd Font";
|
||||
default_size = "13px";
|
||||
};
|
||||
|
||||
content = {
|
||||
canvas_reading = true;
|
||||
blocking.method = "both";
|
||||
javascript.clipboard = "access";
|
||||
};
|
||||
};
|
||||
# Workaround because the nix module doesn't properly handle options that expect a dict
|
||||
extraConfig = ''
|
||||
c.tabs.padding = { 'top': 5, 'bottom': 5, 'right': 10, 'left': 10 }
|
||||
c.statusbar.padding = { 'top': 5, 'bottom': 5, 'right': 10, 'left': 10 }
|
||||
'';
|
||||
keyBindings = {
|
||||
passthrough = {
|
||||
"<Ctrl-Escape>" = "mode-leave";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
99
modules/home/desktop/zellij.nix
Normal file
99
modules/home/desktop/zellij.nix
Normal file
|
@ -0,0 +1,99 @@
|
|||
{ inputs', ... }:
|
||||
{
|
||||
# TODO: Move zellij to a wrapper
|
||||
programs.zellij = {
|
||||
enable = true;
|
||||
settings = {
|
||||
keybinds = {
|
||||
shared_except = {
|
||||
_args = [ "locked" ];
|
||||
unbind = "Ctrl q";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
xdg.configFile."zellij/layouts/compacter.kdl".text = ''
|
||||
layout {
|
||||
default_tab_template {
|
||||
children
|
||||
pane size=1 borderless=true {
|
||||
plugin location="file:${inputs'.zjstatus.packages.default}/bin/zjstatus.wasm" {
|
||||
hide_frame_for_single_pane "false"
|
||||
|
||||
format_left "{mode}#[fg=fg,bg=bg,bold] {session}#[bg=bg] {tabs}"
|
||||
format_right "#[fg=#424554,bg=bg]::{datetime}"
|
||||
format_space "#[bg=bg]"
|
||||
|
||||
mode_normal "#[bg=green] "
|
||||
mode_locked "#[bg=magenta] "
|
||||
mode_tab "#[bg=blue] "
|
||||
mode_tmux "#[bg=red] "
|
||||
mode_default_to_mode "tmux"
|
||||
|
||||
tab_normal "#[fg=#6C7086,bg=bg] {index} {name} {fullscreen_indicator}{sync_indicator}{floating_indicator}"
|
||||
tab_active "#[fg=#9399B2,bg=bg,bold,italic] {index} {name} {fullscreen_indicator}{sync_indicator}{floating_indicator}"
|
||||
tab_fullscreen_indicator "□ "
|
||||
tab_sync_indicator " "
|
||||
tab_floating_indicator " "
|
||||
|
||||
datetime "#[fg=#9399B2,bg=bg] {format} "
|
||||
datetime_format "%A, %d %b %Y %H:%M"
|
||||
datetime_timezone "Europe/Warsaw"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
swap_tiled_layout name="vertical" {
|
||||
tab max_panes=4 {
|
||||
pane split_direction="vertical" {
|
||||
pane
|
||||
pane { children; }
|
||||
}
|
||||
}
|
||||
tab max_panes=7 {
|
||||
pane split_direction="vertical" {
|
||||
pane { children; }
|
||||
pane { pane; pane; pane; pane; }
|
||||
}
|
||||
}
|
||||
tab max_panes=11 {
|
||||
pane split_direction="vertical" {
|
||||
pane { children; }
|
||||
pane { pane; pane; pane; pane; }
|
||||
pane { pane; pane; pane; pane; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
swap_tiled_layout name="horizontal" {
|
||||
tab max_panes=3 {
|
||||
pane
|
||||
pane
|
||||
}
|
||||
tab max_panes=7 {
|
||||
pane {
|
||||
pane split_direction="vertical" { children; }
|
||||
pane split_direction="vertical" { pane; pane; pane; pane; }
|
||||
}
|
||||
}
|
||||
tab max_panes=11 {
|
||||
pane {
|
||||
pane split_direction="vertical" { children; }
|
||||
pane split_direction="vertical" { pane; pane; pane; pane; }
|
||||
pane split_direction="vertical" { pane; pane; pane; pane; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
swap_tiled_layout name="stacked" {
|
||||
tab min_panes=4 {
|
||||
pane split_direction="vertical" {
|
||||
pane
|
||||
pane stacked=true { children; }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
'';
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue