Refactor gui module
This commit is contained in:
parent
edfe0e5bf9
commit
e65183b4a4
36 changed files with 236 additions and 309 deletions
|
|
@ -1,27 +0,0 @@
|
|||
[general]
|
||||
ipc_socket = true
|
||||
live_config_reload = true
|
||||
|
||||
[window]
|
||||
dynamic_padding = true
|
||||
opacity = 0.8
|
||||
blur = true
|
||||
|
||||
[scrolling]
|
||||
history = 100000
|
||||
multiplier = 5
|
||||
|
||||
[font]
|
||||
size = 16
|
||||
|
||||
[bell]
|
||||
duration = 1
|
||||
|
||||
[selection]
|
||||
save_to_clipboard = true
|
||||
|
||||
[terminal]
|
||||
osc52 = "CopyPaste"
|
||||
|
||||
[mouse]
|
||||
hide_when_typing = true
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
cfg = config.youthlic.programs.alacritty;
|
||||
in {
|
||||
options = {
|
||||
youthlic.programs.alacritty = {
|
||||
enable = lib.mkEnableOption "alacritty";
|
||||
};
|
||||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.alacritty = {
|
||||
enable = true;
|
||||
package = pkgs.alacritty_git;
|
||||
settings =
|
||||
(./alacritty.toml |> builtins.readFile |> builtins.fromTOML)
|
||||
// {
|
||||
colors = lib.mkForce {};
|
||||
font.size = lib.mkForce 16;
|
||||
window.opacity = lib.mkForce 0.8;
|
||||
general.import = [
|
||||
"${pkgs.alacritty-theme}/share/alacritty-theme/gruvbox_dark.toml"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
cfg = config.youthlic.programs.chromium;
|
||||
in {
|
||||
options = {
|
||||
youthlic.programs.chromium = {
|
||||
enable = lib.mkEnableOption "chromium";
|
||||
};
|
||||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.chromium = {
|
||||
enable = true;
|
||||
commandLineArgs = [
|
||||
"--ozone-platform-hint=wayland"
|
||||
"--process-per-site"
|
||||
"--enable-wayland-ime"
|
||||
"--wayland-text-input-version=3"
|
||||
"--enable-features=UseOzonePlatform"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,36 +1,20 @@
|
|||
{...}: {
|
||||
imports = [
|
||||
./zed.nix
|
||||
./rustypaste-cli.nix
|
||||
./atuin.nix
|
||||
./firefox.nix
|
||||
./bash.nix
|
||||
./fish.nix
|
||||
./kvm.nix
|
||||
./ghostty.nix
|
||||
./wluma.nix
|
||||
./niri.nix
|
||||
./starship
|
||||
./fuzzel.nix
|
||||
./mpv.nix
|
||||
./swaylock.nix
|
||||
./thunderbird.nix
|
||||
./chromium.nix
|
||||
./gpg
|
||||
./foot
|
||||
./sops.nix
|
||||
./git.nix
|
||||
./swaync.nix
|
||||
./helix
|
||||
./waybar.nix
|
||||
./jujutsu.nix
|
||||
./espanso.nix
|
||||
./yazi.nix
|
||||
./zoxide.nix
|
||||
./fzf.nix
|
||||
./eza.nix
|
||||
./ion.nix
|
||||
./alacritty
|
||||
./waypaper.nix
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,42 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
cfg = config.youthlic.programs.espanso;
|
||||
in {
|
||||
options = {
|
||||
youthlic.programs.espanso = {
|
||||
enable = lib.mkEnableOption "espanso";
|
||||
};
|
||||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
services.espanso = {
|
||||
enable = true;
|
||||
package = pkgs.espanso-wayland;
|
||||
configs = {
|
||||
default = {};
|
||||
};
|
||||
matches = {
|
||||
base = {
|
||||
matches = [
|
||||
{
|
||||
trigger = ":date";
|
||||
replace = "{{date}}";
|
||||
vars = [
|
||||
{
|
||||
name = "date";
|
||||
type = "date";
|
||||
params = {
|
||||
format = "%Y-%m-%d";
|
||||
};
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,182 +0,0 @@
|
|||
{
|
||||
pkgs,
|
||||
outputs,
|
||||
system,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
cfg = config.youthlic.programs.firefox;
|
||||
in {
|
||||
options = {
|
||||
youthlic.programs.firefox = {
|
||||
enable = lib.mkEnableOption "firefox";
|
||||
};
|
||||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
stylix.targets.firefox.profileNames = [
|
||||
"default"
|
||||
];
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
betterfox = {
|
||||
enable = true;
|
||||
};
|
||||
languagePacks = [
|
||||
"zh-CN"
|
||||
"en-US"
|
||||
];
|
||||
profiles.default = {
|
||||
betterfox = {
|
||||
enable = true;
|
||||
enableAllSections = true;
|
||||
};
|
||||
name = "default";
|
||||
isDefault = true;
|
||||
extensions = {
|
||||
# settings = {
|
||||
# "redirector@einaregilsson.com" = {
|
||||
# settings = {
|
||||
# redirects = [
|
||||
# {
|
||||
# description = "NixOS Wiki";
|
||||
# exampleUrl = "http://nixos.wiki/wiki/Main_Page";
|
||||
# exampleResult = "http://wiki.nixos.org/wiki/Main_Page";
|
||||
# error = null;
|
||||
# includePattern = "http(s?)://nixos.wiki/wiki/(.*)";
|
||||
# excludePattern = "";
|
||||
# patternDesc = "";
|
||||
# redirectUrl = "http$1://wiki.nixos.org/wiki/$2";
|
||||
# patternType = "R";
|
||||
# processMatches = "noProcessing";
|
||||
# disabled = false;
|
||||
# grouped = false;
|
||||
# appliesTo = [
|
||||
# "main_frame"
|
||||
# ];
|
||||
# }
|
||||
# ];
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
packages = with outputs.packages."${system}"; [
|
||||
immersive-translate
|
||||
tridactyl
|
||||
redirector
|
||||
];
|
||||
};
|
||||
settings = {
|
||||
"sidebar.verticalTabs" = true;
|
||||
"sidebar.visibility" = "expand-on-hover";
|
||||
"sidebar.main.tools" = "syncedtabs,history,bookmarks,aichat";
|
||||
"sidebar.animation.expand-on-hover.duration-ms" = 150;
|
||||
"sidebar.revamp" = true;
|
||||
"browser.tabs.closeTabByDblclick" = true;
|
||||
};
|
||||
search = {
|
||||
force = true;
|
||||
default = "ddg";
|
||||
engines = {
|
||||
"Nix Packages" = {
|
||||
urls = [
|
||||
{
|
||||
template = "https://search.nixos.org/packages";
|
||||
params = [
|
||||
{
|
||||
name = "type";
|
||||
value = "packages";
|
||||
}
|
||||
{
|
||||
name = "query";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = ["@np"];
|
||||
};
|
||||
"Nix Options" = {
|
||||
urls = [
|
||||
{
|
||||
template = "https://search.nixos.org/options";
|
||||
params = [
|
||||
{
|
||||
name = "channel";
|
||||
value = "unstable";
|
||||
}
|
||||
{
|
||||
name = "query";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
definedAliases = ["@no"];
|
||||
};
|
||||
"Home Manager Options" = {
|
||||
urls = [
|
||||
{
|
||||
template = "https://home-manager-options.extranix.com";
|
||||
params = [
|
||||
{
|
||||
name = "query";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
{
|
||||
name = "release";
|
||||
value = "master";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
definedAliases = ["hm"];
|
||||
};
|
||||
"NUR Packages" = {
|
||||
urls = [
|
||||
{
|
||||
template = "https://nur.nix-community.org/";
|
||||
}
|
||||
];
|
||||
definedAliases = ["nu"];
|
||||
};
|
||||
"Nix Flakes" = {
|
||||
urls = [
|
||||
{
|
||||
template = "https://search.nixos.org/flakes";
|
||||
params = [
|
||||
{
|
||||
name = "channel";
|
||||
value = "unstable";
|
||||
}
|
||||
{
|
||||
name = "query";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
definedAliases = ["nf"];
|
||||
};
|
||||
"NixOS Wiki" = {
|
||||
urls = [
|
||||
{
|
||||
template = "https://nixos.wiki/index.php";
|
||||
params = [
|
||||
{
|
||||
name = "search";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
definedAliases = ["nw"];
|
||||
};
|
||||
"bing".metaData.hidden = true;
|
||||
"google".metaData.alias = "@g"; # builtin engines only support specifying one additional alias
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.youthlic.programs.foot;
|
||||
in {
|
||||
options = {
|
||||
youthlic.programs.foot = {
|
||||
enable = lib.mkEnableOption "foot";
|
||||
};
|
||||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.foot = {
|
||||
enable = true;
|
||||
server.enable = true;
|
||||
settings = builtins.fromINI (builtins.readFile ./foot.ini);
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,256 +0,0 @@
|
|||
# -*- conf -*-
|
||||
|
||||
# shell=$SHELL (if set, otherwise user's default shell from /etc/passwd)
|
||||
term=foot
|
||||
# login-shell=no
|
||||
|
||||
# app-id=foot # globally set wayland app-id. Default values are "foot" and "footclient" for desktop and server mode
|
||||
# title=foot
|
||||
# locked-title=no
|
||||
|
||||
# font=FiraCode Nerd Font:size=15:lang=en-US
|
||||
# font-bold=<bold variant of regular font>
|
||||
# font-italic=<italic variant of regular font>
|
||||
# font-bold-italic=<bold+italic variant of regular font>
|
||||
# font-size-adjustment=0.5
|
||||
# line-height=<font metrics>
|
||||
# letter-spacing=0
|
||||
horizontal-letter-offset=0
|
||||
vertical-letter-offset=0
|
||||
# underline-offset=<font metrics>
|
||||
# underline-thickness=<font underline thickness>
|
||||
# strikeout-thickness=<font strikeout thickness>
|
||||
# box-drawings-uses-font-glyphs=no
|
||||
dpi-aware=yes
|
||||
|
||||
# initial-window-size-pixels=700x500 # Or,
|
||||
# initial-window-size-chars=<COLSxROWS>
|
||||
# initial-window-mode=windowed
|
||||
# pad=0x0
|
||||
# resize-by-cells=yes
|
||||
# resize-keep-grid=yes
|
||||
# resize-delay-ms=100
|
||||
|
||||
# bold-text-in-bright=no
|
||||
# word-delimiters=,│`|:"'()[]{}<>
|
||||
selection-target=clipboard
|
||||
# workers=<number of logical CPUs>
|
||||
# utmp-helper=/usr/lib/utempter/utempter # When utmp backend is ‘libutempter’ (Linux)
|
||||
# utmp-helper=/usr/libexec/ulog-helper # When utmp backend is ‘ulog’ (FreeBSD)
|
||||
|
||||
[environment]
|
||||
# name=value
|
||||
|
||||
[bell]
|
||||
# urgent=no
|
||||
# notify=no
|
||||
# visual=no
|
||||
# command=
|
||||
# command-focused=no
|
||||
|
||||
[desktop-notifications]
|
||||
# command=notify-send --wait --app-name ${app-id} --icon ${app-id} --category ${category} --urgency ${urgency} --expire-time ${expire-time} --hint STRING:image-path:${icon} --hint BOOLEAN:suppress-sound:${muted} --hint STRING:sound-name:${sound-name} --replace-id ${replace-id} ${action-argument} --print-id -- ${title} ${body}
|
||||
# command-action-argument=--action ${action-name}=${action-label}
|
||||
# close=""
|
||||
# inhibit-when-focused=yes
|
||||
|
||||
|
||||
[scrollback]
|
||||
# lines=1000
|
||||
# multiplier=3.0
|
||||
# indicator-position=relative
|
||||
# indicator-format=""
|
||||
|
||||
[url]
|
||||
# launch=xdg-open ${url}
|
||||
# label-letters=sadfjklewcmpgh
|
||||
# osc8-underline=url-mode
|
||||
# protocols=http, https, ftp, ftps, file, gemini, gopher
|
||||
# uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[]
|
||||
|
||||
[cursor]
|
||||
style=beam # block
|
||||
# color=<inverse foreground/background>
|
||||
# blink=no
|
||||
# blink-rate=500
|
||||
# beam-thickness=1.5
|
||||
# underline-thickness=<font underline thickness>
|
||||
|
||||
[mouse]
|
||||
hide-when-typing=yes
|
||||
# alternate-scroll-mode=yes
|
||||
|
||||
[touch]
|
||||
# long-press-delay=400
|
||||
|
||||
[colors]
|
||||
# alpha=1.0
|
||||
# background=242424
|
||||
# foreground=ffffff
|
||||
# flash=7f7f00
|
||||
# flash-alpha=0.5
|
||||
|
||||
## Normal/regular colors (color palette 0-7)
|
||||
# regular0=242424 # black
|
||||
# regular1=f62b5a # red
|
||||
# regular2=47b413 # green
|
||||
# regular3=e3c401 # yellow
|
||||
# regular4=24acd4 # blue
|
||||
# regular5=f2affd # magenta
|
||||
# regular6=13c299 # cyan
|
||||
# regular7=e6e6e6 # white
|
||||
|
||||
## Bright colors (color palette 8-15)
|
||||
# bright0=616161 # bright black
|
||||
# bright1=ff4d51 # bright red
|
||||
# bright2=35d450 # bright green
|
||||
# bright3=e9e836 # bright yellow
|
||||
# bright4=5dc5f8 # bright blue
|
||||
# bright5=feabf2 # bright magenta
|
||||
# bright6=24dfc4 # bright cyan
|
||||
# bright7=ffffff # bright white
|
||||
|
||||
## dimmed colors (see foot.ini(5) man page)
|
||||
# dim0=<not set>
|
||||
# ...
|
||||
# dim7=<not-set>
|
||||
|
||||
## The remaining 256-color palette
|
||||
# 16 = <256-color palette #16>
|
||||
# ...
|
||||
# 255 = <256-color palette #255>
|
||||
|
||||
## Sixel colors
|
||||
# sixel0 = 000000
|
||||
# sixel1 = 3333cc
|
||||
# sixel2 = cc2121
|
||||
# sixel3 = 33cc33
|
||||
# sixel4 = cc33cc
|
||||
# sixel5 = 33cccc
|
||||
# sixel6 = cccc33
|
||||
# sixel7 = 878787
|
||||
# sixel8 = 424242
|
||||
# sixel9 = 545499
|
||||
# sixel10 = 994242
|
||||
# sixel11 = 549954
|
||||
# sixel12 = 995499
|
||||
# sixel13 = 549999
|
||||
# sixel14 = 999954
|
||||
# sixel15 = cccccc
|
||||
|
||||
## Misc colors
|
||||
# selection-foreground=<inverse foreground/background>
|
||||
# selection-background=<inverse foreground/background>
|
||||
# jump-labels=<regular0> <regular3> # black-on-yellow
|
||||
# scrollback-indicator=<regular0> <bright4> # black-on-bright-blue
|
||||
# search-box-no-match=<regular0> <regular1> # black-on-red
|
||||
# search-box-match=<regular0> <regular3> # black-on-yellow
|
||||
# urls=<regular3>
|
||||
|
||||
[csd]
|
||||
# preferred=server
|
||||
# size=26
|
||||
# font=<primary font>
|
||||
# color=<foreground color>
|
||||
# hide-when-maximized=no
|
||||
# double-click-to-maximize=yes
|
||||
# border-width=0
|
||||
# border-color=<csd.color>
|
||||
# button-width=26
|
||||
# button-color=<background color>
|
||||
# button-minimize-color=<regular4>
|
||||
# button-maximize-color=<regular2>
|
||||
# button-close-color=<regular1>
|
||||
|
||||
[key-bindings]
|
||||
# scrollback-up-page=Shift+Page_Up
|
||||
# scrollback-up-half-page=none
|
||||
# scrollback-up-line=none
|
||||
# scrollback-down-page=Shift+Page_Down
|
||||
# scrollback-down-half-page=none
|
||||
# scrollback-down-line=none
|
||||
# scrollback-home=none
|
||||
# scrollback-end=none
|
||||
# clipboard-copy=Control+Shift+c XF86Copy
|
||||
# clipboard-paste=Control+Shift+v XF86Paste
|
||||
# primary-paste=Shift+Insert
|
||||
# search-start=Control+Shift+r
|
||||
# font-increase=Control+plus Control+equal Control+KP_Add
|
||||
# font-decrease=Control+minus Control+KP_Subtract
|
||||
# font-reset=Control+0 Control+KP_0
|
||||
# spawn-terminal=Control+Shift+n
|
||||
# minimize=none
|
||||
# maximize=none
|
||||
# fullscreen=none
|
||||
# pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none
|
||||
# pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none
|
||||
# pipe-selected=[xargs -r firefox] none
|
||||
# pipe-command-output=[wl-copy] none # Copy last command's output to the clipboard
|
||||
# show-urls-launch=Control+Shift+o
|
||||
# show-urls-copy=none
|
||||
# show-urls-persistent=none
|
||||
# prompt-prev=Control+Shift+z
|
||||
# prompt-next=Control+Shift+x
|
||||
# unicode-input=Control+Shift+u
|
||||
# noop=none
|
||||
# quit=none
|
||||
|
||||
[search-bindings]
|
||||
# cancel=Control+g Control+c Escape
|
||||
# commit=Return
|
||||
# find-prev=Control+r
|
||||
# find-next=Control+s
|
||||
# cursor-left=Left Control+b
|
||||
# cursor-left-word=Control+Left Mod1+b
|
||||
# cursor-right=Right Control+f
|
||||
# cursor-right-word=Control+Right Mod1+f
|
||||
# cursor-home=Home Control+a
|
||||
# cursor-end=End Control+e
|
||||
# delete-prev=BackSpace
|
||||
# delete-prev-word=Mod1+BackSpace Control+BackSpace
|
||||
# delete-next=Delete
|
||||
# delete-next-word=Mod1+d Control+Delete
|
||||
# extend-char=Shift+Right
|
||||
# extend-to-word-boundary=Control+w Control+Shift+Right
|
||||
# extend-to-next-whitespace=Control+Shift+w
|
||||
# extend-line-down=Shift+Down
|
||||
# extend-backward-char=Shift+Left
|
||||
# extend-backward-to-word-boundary=Control+Shift+Left
|
||||
# extend-backward-to-next-whitespace=none
|
||||
# extend-line-up=Shift+Up
|
||||
# clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste
|
||||
# primary-paste=Shift+Insert
|
||||
# unicode-input=none
|
||||
# scrollback-up-page=Shift+Page_Up
|
||||
# scrollback-up-half-page=none
|
||||
# scrollback-up-line=none
|
||||
# scrollback-down-page=Shift+Page_Down
|
||||
# scrollback-down-half-page=none
|
||||
# scrollback-down-line=none
|
||||
# scrollback-home=none
|
||||
# scrollback-end=none
|
||||
|
||||
[url-bindings]
|
||||
# cancel=Control+g Control+c Control+d Escape
|
||||
# toggle-url-visible=t
|
||||
|
||||
[text-bindings]
|
||||
# \x03=Mod4+c # Map Super+c -> Ctrl+c
|
||||
|
||||
[mouse-bindings]
|
||||
# scrollback-up-mouse=BTN_WHEEL_BACK
|
||||
# scrollback-down-mouse=BTN_WHEEL_FORWARD
|
||||
# font-increase=Control+BTN_WHEEL_BACK
|
||||
# font-decrease=Control+BTN_WHEEL_FORWARD
|
||||
# selection-override-modifiers=Shift
|
||||
# primary-paste=BTN_MIDDLE
|
||||
# select-begin=BTN_LEFT
|
||||
# select-begin-block=Control+BTN_LEFT
|
||||
# select-extend=BTN_RIGHT
|
||||
# select-extend-character-wise=Control+BTN_RIGHT
|
||||
# select-word=BTN_LEFT-2
|
||||
# select-word-whitespace=Control+BTN_LEFT-2
|
||||
# select-quote = BTN_LEFT-3
|
||||
# select-row=BTN_LEFT-4
|
||||
|
||||
# vim: ft=dosini
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.youthlic.programs.fuzzel;
|
||||
in {
|
||||
options = {
|
||||
youthlic.programs.fuzzel = {
|
||||
enable = lib.mkEnableOption "fuzzel";
|
||||
};
|
||||
};
|
||||
config = {
|
||||
programs.fuzzel = lib.mkIf cfg.enable {
|
||||
enable = true;
|
||||
settings = {
|
||||
main = {
|
||||
# font = "LXGW WenKai:size=11";
|
||||
prompt = "'λ '";
|
||||
dpi-aware = true;
|
||||
};
|
||||
# colors = {
|
||||
# background = "282a36dd";
|
||||
# text = "f8f8f2ff";
|
||||
# match = "8be9fdff";
|
||||
# selection-match = "8be9fdff";
|
||||
# selection = "44475add";
|
||||
# selection-text = "f8f8f2ff";
|
||||
# border = "bd93f9ff";
|
||||
# };
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,60 +0,0 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
options = {
|
||||
youthlic.programs.ghostty = {
|
||||
enable = lib.mkEnableOption "ghostty";
|
||||
};
|
||||
};
|
||||
config = let
|
||||
cfg = config.youthlic.programs.ghostty;
|
||||
in (lib.mkIf cfg.enable {
|
||||
programs.ghostty = lib.mkMerge [
|
||||
{
|
||||
enable = true;
|
||||
package = pkgs.ghostty;
|
||||
settings = {
|
||||
# font-family = "FiraCode Nerd Font";
|
||||
# font-feature = [
|
||||
# "calt=1"
|
||||
# "clig=1"
|
||||
# "liga=1"
|
||||
# "cv01"
|
||||
# "cv02"
|
||||
# "cv06"
|
||||
# "zero"
|
||||
# "onum"
|
||||
# "cv17"
|
||||
# "ss05"
|
||||
# "ss03"
|
||||
# "cv16"
|
||||
# "cv31"
|
||||
# "cv29"
|
||||
# "cv30"
|
||||
# ];
|
||||
|
||||
# font-family = "Maple Mono SC NF";
|
||||
font-feature = [
|
||||
"calt"
|
||||
"zero"
|
||||
"cv03"
|
||||
"ss08"
|
||||
];
|
||||
font-size = lib.mkForce 17;
|
||||
# theme = "ayu";
|
||||
background-opacity = lib.mkForce 0.8;
|
||||
confirm-close-surface = "false";
|
||||
};
|
||||
}
|
||||
(lib.mkIf config.youthlic.programs.fish.enable {
|
||||
enableFishIntegration = true;
|
||||
})
|
||||
(lib.mkIf config.youthlic.programs.bash.enable {
|
||||
enableBashIntegration = true;
|
||||
})
|
||||
];
|
||||
});
|
||||
}
|
||||
|
|
@ -1,5 +1,3 @@
|
|||
theme = "gruvbox_dark_hard"
|
||||
|
||||
[editor]
|
||||
line-number = "relative"
|
||||
cursorline = true
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@
|
|||
config = let
|
||||
cfg = config.youthlic.programs.helix;
|
||||
in {
|
||||
stylix.targets.helix.enable = false;
|
||||
programs.helix = lib.mkIf cfg.enable {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
|
|
|
|||
|
|
@ -1,18 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
cfg = config.youthlic.programs.mpv;
|
||||
in {
|
||||
options = {
|
||||
youthlic.programs.mpv = {
|
||||
enable = lib.mkEnableOption "mpv";
|
||||
};
|
||||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.mpv = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,76 +0,0 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
osConfig ? null,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
cfg = config.youthlic.programs.niri;
|
||||
niri = osConfig.programs.niri.package;
|
||||
in {
|
||||
options = {
|
||||
youthlic.programs.niri = {
|
||||
enable = lib.mkEnableOption "niri";
|
||||
config = lib.mkOption {
|
||||
type = inputs.niri-flake.lib.kdl.types.kdl-document;
|
||||
};
|
||||
};
|
||||
};
|
||||
config = lib.mkMerge [
|
||||
{
|
||||
youthlic.programs.niri.enable = osConfig.youthlic.gui.enabled == "niri";
|
||||
}
|
||||
(
|
||||
lib.mkIf cfg.enable {
|
||||
home.packages =
|
||||
(with pkgs; [
|
||||
swaynotificationcenter
|
||||
kdePackages.polkit-kde-agent-1
|
||||
wl-clipboard
|
||||
cliphist
|
||||
])
|
||||
++ [niri];
|
||||
qt = {
|
||||
enable = true;
|
||||
};
|
||||
xdg.portal = {
|
||||
configPackages = [niri];
|
||||
enable = true;
|
||||
extraPortals = lib.mkIf (
|
||||
!niri.cargoBuildNoDefaultFeatures || builtins.elem "xdp-gnome-screencast" niri.cargoBuildFeatures
|
||||
) [pkgs.xdg-desktop-portal-gnome];
|
||||
};
|
||||
xdg.configFile = let
|
||||
qtctConf =
|
||||
''
|
||||
[Appearance]
|
||||
standard_dialogs=xdgdesktopportal
|
||||
''
|
||||
+ lib.optionalString (config.qt.style ? name) ''
|
||||
style=${config.qt.style.name}
|
||||
'';
|
||||
in {
|
||||
"qt5ct/qt5ct.conf" = lib.mkForce {
|
||||
text = qtctConf;
|
||||
};
|
||||
"qt6ct/qt6ct.conf" = lib.mkForce {
|
||||
text = qtctConf;
|
||||
};
|
||||
};
|
||||
youthlic.programs = {
|
||||
fuzzel.enable = true;
|
||||
wluma.enable = true;
|
||||
waybar.enable = true;
|
||||
swaync.enable = true;
|
||||
swaylock.enable = true;
|
||||
waypaper.enable = true;
|
||||
};
|
||||
programs.niri = {
|
||||
config = cfg.config;
|
||||
package = niri;
|
||||
};
|
||||
}
|
||||
)
|
||||
];
|
||||
}
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.youthlic.programs.swaylock;
|
||||
in {
|
||||
options = {
|
||||
youthlic.programs.swaylock = {
|
||||
enable = lib.mkEnableOption "swaylock";
|
||||
};
|
||||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.swaylock = {
|
||||
enable = true;
|
||||
package = pkgs.swaylock-effects;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
cfg = config.youthlic.programs.swaync;
|
||||
in {
|
||||
options = {
|
||||
youthlic.programs.swaync = {
|
||||
enable = lib.mkEnableOption "swaync";
|
||||
systemd.enable = lib.mkEnableOption "systemd service for swaync";
|
||||
};
|
||||
};
|
||||
config = lib.mkMerge [
|
||||
(lib.mkIf cfg.enable {
|
||||
services.swaync = {
|
||||
enable = true;
|
||||
};
|
||||
})
|
||||
(lib.mkIf (!cfg.systemd.enable) {
|
||||
systemd.user.services.swaync = lib.mkForce {};
|
||||
})
|
||||
];
|
||||
}
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.youthlic.programs.thunderbird;
|
||||
in {
|
||||
options = {
|
||||
youthlic.programs.thunderbird = {
|
||||
enable = lib.mkEnableOption "thunderbird";
|
||||
};
|
||||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.thunderbird = {
|
||||
enable = true;
|
||||
profiles = {
|
||||
default = {
|
||||
withExternalGnupg = true;
|
||||
isDefault = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,195 +0,0 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.youthlic.programs.waybar;
|
||||
in {
|
||||
options = {
|
||||
youthlic.programs.waybar = {
|
||||
enable = lib.mkEnableOption "waybar";
|
||||
};
|
||||
};
|
||||
config = lib.mkMerge [
|
||||
(lib.mkIf cfg.enable {
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
systemd.enable = false;
|
||||
settings = [
|
||||
{
|
||||
layer = "top";
|
||||
position = "top";
|
||||
modules-left = [
|
||||
"niri/workspaces"
|
||||
"wlr/taskbar"
|
||||
];
|
||||
modules-center = ["clock"];
|
||||
modules-right = [
|
||||
"tray"
|
||||
"idle_inhibitor"
|
||||
"memory"
|
||||
"backlight"
|
||||
"pulseaudio"
|
||||
"battery"
|
||||
"custom/notification"
|
||||
];
|
||||
"wlr/taskbar" = {
|
||||
on-click = "activate";
|
||||
};
|
||||
|
||||
"niri/worksapces" = {};
|
||||
"niri/taskbar" = {
|
||||
icon-size = 15;
|
||||
on-click = "activate";
|
||||
on-click-middle = "close";
|
||||
};
|
||||
"tray" = {
|
||||
icon-size = 15;
|
||||
spacing = 10;
|
||||
};
|
||||
|
||||
idle_inhibitor = {
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
activated = " ";
|
||||
deactivated = " ";
|
||||
};
|
||||
};
|
||||
|
||||
memory = {
|
||||
format = " {percentage}%";
|
||||
on-click = lib.getExe pkgs.resources;
|
||||
};
|
||||
backlight = {
|
||||
format = "{icon}{percent}%";
|
||||
format-icons = " ";
|
||||
on-scroll-up = "${lib.getExe pkgs.brightnessctl} set +1%";
|
||||
on-scroll-down = "${lib.getExe pkgs.brightnessctl} set 1%-";
|
||||
};
|
||||
|
||||
pulseaudio = {
|
||||
format = "{icon}{volume}%";
|
||||
format-bluetooth = " {volume}%";
|
||||
format-muted = " -%";
|
||||
format-source = " {volume}%";
|
||||
format-source-muted = " ";
|
||||
format-icons = {
|
||||
default = [
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
];
|
||||
headphone = " ";
|
||||
headset = " ";
|
||||
hands-free = " ";
|
||||
};
|
||||
on-click = "${lib.getExe' pkgs.wireplumber "wpctl"} set-mute @DEFAULT_AUDIO_SINK@ toggle";
|
||||
on-click-right = lib.getExe pkgs.pwvucontrol;
|
||||
tooltip-format = "{icon}{desc} {volume}%";
|
||||
};
|
||||
|
||||
battery = {
|
||||
states = {
|
||||
warning = 30;
|
||||
critical = 15;
|
||||
};
|
||||
format = "{icon}{capacity}%";
|
||||
format-charging = " {capacity}%";
|
||||
format-icons = [
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
];
|
||||
tooltip-format = ''
|
||||
{power}W
|
||||
{timeTo}'';
|
||||
};
|
||||
|
||||
clock = {
|
||||
format = "{:%a %b %d %R}";
|
||||
calendar.format = {
|
||||
months = "<span color='#ff7b63'>{}</span>";
|
||||
days = "<span color='#ffffff'>{}</span>";
|
||||
weeks = "<span color='#8ff0a4'>W{}</span>";
|
||||
weekdays = "<span color='#f8e45c'>{}</span>";
|
||||
today = "<span color='#78aeed'><u>{}</u></span>";
|
||||
};
|
||||
actions = {
|
||||
on-scroll-up = "shift_up";
|
||||
on-scroll-down = "shift_down";
|
||||
};
|
||||
tooltip-format = "{calendar}";
|
||||
};
|
||||
"custom/notification" = {
|
||||
"tooltip" = false;
|
||||
"format" = "{icon}";
|
||||
"format-icons" = {
|
||||
"notification" = "<span foreground='red'><sup></sup></span>";
|
||||
"none" = "";
|
||||
"dnd-notification" = "<span foreground='red'><sup></sup></span>";
|
||||
"dnd-none" = "";
|
||||
};
|
||||
"return-type" = "json";
|
||||
"exec" = "swaync-client -swb";
|
||||
"on-click" = "swaync-client -t -sw";
|
||||
"on-click-right" = "swaync-client -d -sw";
|
||||
"escape" = true;
|
||||
};
|
||||
}
|
||||
];
|
||||
style = ''
|
||||
* {
|
||||
font-family: LXGW Wenkai, Maple Mono NF CN;
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: alpha(@theme_base_color, 0.9);
|
||||
color: @theme_text_color;
|
||||
}
|
||||
|
||||
#custom-notification,
|
||||
#workspaces,
|
||||
#taskbar button,
|
||||
#mode,
|
||||
#clock,
|
||||
#tray,
|
||||
#mpris,
|
||||
#idle_inhibitor,
|
||||
#backlight,
|
||||
#cpu,
|
||||
#memory,
|
||||
#pulseaudio,
|
||||
#battery {
|
||||
padding: 0 6px;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 3px 6px;
|
||||
}
|
||||
#workspaces button.focused,
|
||||
#workspaces button.active {
|
||||
color: #78aeed;
|
||||
}
|
||||
|
||||
#battery.warning {
|
||||
color: #f8e45c;
|
||||
}
|
||||
#battery.critical {
|
||||
color: #ff7b63;
|
||||
}
|
||||
#battery.charging {
|
||||
color: #8ff0a4;
|
||||
}
|
||||
'';
|
||||
};
|
||||
})
|
||||
(lib.mkIf (cfg.enable && config.stylix.enable) {
|
||||
stylix.targets.waybar.enable = false;
|
||||
})
|
||||
];
|
||||
}
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
cfg = config.youthlic.programs.waypaper;
|
||||
in {
|
||||
options = {
|
||||
youthlic.programs.waypaper = {
|
||||
enable = lib.mkEnableOption "waypaper";
|
||||
};
|
||||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = with pkgs; [waypaper socat mpvpaper];
|
||||
systemd.user = {
|
||||
timers."waypaper" = {
|
||||
Unit = {
|
||||
Description = "Set a random wallpaper every 10 minutes";
|
||||
};
|
||||
Timer = {
|
||||
Persistent = true;
|
||||
OnCalendar = "*:0/10";
|
||||
};
|
||||
Install = {
|
||||
WantedBy = ["timers.target"];
|
||||
};
|
||||
};
|
||||
services."waypaper" = {
|
||||
Unit = {
|
||||
Description = "Set a random wallpaper with waypaper";
|
||||
};
|
||||
Service = {
|
||||
Type = "oneshot";
|
||||
ExecStart = lib.escapeShellArgs [
|
||||
(lib.getExe pkgs.waypaper)
|
||||
"--random"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.youthlic.programs.wluma;
|
||||
in {
|
||||
options = {
|
||||
youthlic.programs.wluma = {
|
||||
enable = lib.mkEnableOption "wluma";
|
||||
config = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
example = ./config.toml;
|
||||
description = ''
|
||||
path to config file of wluma
|
||||
'';
|
||||
};
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
example = pkgs.wluam;
|
||||
default = pkgs.wluma;
|
||||
description = ''
|
||||
package of wluma
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [
|
||||
cfg.package
|
||||
];
|
||||
xdg.configFile."wluma/config.toml" = {
|
||||
enable = true;
|
||||
source = cfg.config;
|
||||
};
|
||||
systemd.user.services.wluma = {
|
||||
Unit = {
|
||||
Description = "Adjusting screen brightness based on screen contents and amount of ambient light";
|
||||
PartOf = ["graphical-session.target"];
|
||||
After = ["graphical-session.target"];
|
||||
};
|
||||
Service = {
|
||||
ExecStart = ["${lib.getExe cfg.package}"];
|
||||
Restart = "always";
|
||||
EnvironmentFile = ["-%E/wluma/service.conf"];
|
||||
PrivateNetwork = true;
|
||||
PrivateMounts = false;
|
||||
};
|
||||
Install = {
|
||||
WantedBy = ["graphical-session.target"];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,117 +0,0 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.youthlic.programs.zed-editor;
|
||||
in {
|
||||
options = {
|
||||
youthlic.programs.zed-editor = {
|
||||
enable = lib.mkEnableOption "zed-editor";
|
||||
};
|
||||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
stylix.targets.zed.enable = false;
|
||||
programs.zed-editor = {
|
||||
enable = true;
|
||||
extensions = [
|
||||
"asciidoc"
|
||||
"basher"
|
||||
"cargo-tom"
|
||||
"deno"
|
||||
"docker-compose"
|
||||
"dockerfile"
|
||||
"fish"
|
||||
"git-firefly"
|
||||
"golangci-lint"
|
||||
"haskell"
|
||||
"html"
|
||||
"hurl"
|
||||
"idris2"
|
||||
"java"
|
||||
"java-eclipse-jdtls"
|
||||
"kdl"
|
||||
"kotlin"
|
||||
"lua"
|
||||
"make"
|
||||
"markdown-oxide"
|
||||
"neocmake"
|
||||
"nix"
|
||||
"python-refactoring"
|
||||
"python-requirements"
|
||||
"scheme"
|
||||
"toml"
|
||||
"typst"
|
||||
"xml"
|
||||
"zig"
|
||||
"typos"
|
||||
"ty"
|
||||
"ruff"
|
||||
];
|
||||
extraPackages = with pkgs; [
|
||||
editor-runtime
|
||||
];
|
||||
userSettings = {
|
||||
lsp = {
|
||||
ty = {
|
||||
binary = {
|
||||
path = lib.getExe pkgs.ty;
|
||||
arguments = ["server"];
|
||||
};
|
||||
};
|
||||
};
|
||||
languages = {
|
||||
Python = {
|
||||
language_servers = ["ty" "ruff" "pyright"];
|
||||
formatter = [
|
||||
{
|
||||
language_server = {
|
||||
name = "ruff";
|
||||
};
|
||||
}
|
||||
{
|
||||
code_actions = {
|
||||
"source.fixAll.ruff" = true;
|
||||
"source.organizeImports.ruff" = true;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
Nix = {
|
||||
language_servers = ["nixd" "nil"];
|
||||
formatter = {
|
||||
external = {
|
||||
command = "alejandra";
|
||||
arguments = ["--quiet" "--"];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
soft_wrap = "editor_width";
|
||||
autosave = "on_focus_change";
|
||||
auto_update = false;
|
||||
calls = {
|
||||
mute_on_join = true;
|
||||
share_on_join = false;
|
||||
};
|
||||
"format_on_save" = "off";
|
||||
ui_font_size = 20;
|
||||
buffer_font_size = 20;
|
||||
buffer_font_family = "Maple Mono NF CN";
|
||||
buffer_font_features = {
|
||||
"calt" = true;
|
||||
"zero" = true;
|
||||
"cv03" = true;
|
||||
"ss08" = true;
|
||||
};
|
||||
ui_font_family = "Source Han Sans SC";
|
||||
theme = "Gruvbox Dark Hard";
|
||||
vim_mode = true;
|
||||
vim = {
|
||||
# default_mode = "helix_normal";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue