diff --git a/common/themes/default.nix b/common/themes/default.nix index 4256735..7fe8757 100644 --- a/common/themes/default.nix +++ b/common/themes/default.nix @@ -24,7 +24,7 @@ let catppuccin-latte = { stylix = { - image = ./wallpapers/watercag.png; + image = ./wallpapers/field_diamond.jpg; base16Scheme = "${inputs.catppuccin-base16}/base16/latte.yaml"; opacity = transparency 0.7; polarity = "light"; diff --git a/common/themes/wallpapers/auto/catppuccin-latte-watercag.png b/common/themes/wallpapers/auto/catppuccin-latte-watercag.png new file mode 100644 index 0000000..bf6b6f6 Binary files /dev/null and b/common/themes/wallpapers/auto/catppuccin-latte-watercag.png differ diff --git a/common/themes/wallpapers/field_diamond.jpg b/common/themes/wallpapers/field_diamond.jpg new file mode 100644 index 0000000..b2d0ac6 Binary files /dev/null and b/common/themes/wallpapers/field_diamond.jpg differ diff --git a/common/themes/wallpapers/phos_landscape.png b/common/themes/wallpapers/phos_landscape.png new file mode 100644 index 0000000..85d3781 Binary files /dev/null and b/common/themes/wallpapers/phos_landscape.png differ diff --git a/home/features/desktop/firefox/default.nix b/home/features/desktop/firefox/default.nix index 7d468c8..e9ed0db 100644 --- a/home/features/desktop/firefox/default.nix +++ b/home/features/desktop/firefox/default.nix @@ -59,8 +59,8 @@ in search.force = true; search.default = "Moonythm"; - # Set styles applied to every website - userContent = builtins.readFile ./userContent.css; + # Set styles applied to firefox itself + userChrome = builtins.readFile ./userChrome.css; # }}} # {{{ Extensions extensions = diff --git a/home/features/desktop/firefox/userChrome.css b/home/features/desktop/firefox/userChrome.css new file mode 100644 index 0000000..7e95ab1 --- /dev/null +++ b/home/features/desktop/firefox/userChrome.css @@ -0,0 +1,3 @@ +#TabsToolbar { + visibility: collapse; +} diff --git a/home/features/desktop/firefox/userContent.css b/home/features/desktop/firefox/userContent.css deleted file mode 100644 index e69de29..0000000 diff --git a/home/features/desktop/wakatime/secrets.yaml b/home/features/desktop/wakatime/secrets.yaml index 6c6d93b..ab959f8 100644 --- a/home/features/desktop/wakatime/secrets.yaml +++ b/home/features/desktop/wakatime/secrets.yaml @@ -1,4 +1,4 @@ -wakatime_config: ENC[AES256_GCM,data:IgGcMQNf8u2KXjgI60zPKZ6M7oxibbQK+in/9jrnEzk20WA1JM122zICXYuLfuQgNd2CMoEeu4LivQHv/D79tw==,iv:HoS00ihAX+SCw58kgcnvqAy4ILdS+/RPMqQwXusTqYU=,tag:0sSaZTrjO43PB7g215wwUA==,type:str] +wakatime_config: ENC[AES256_GCM,data:4ZlmrZuB8kBb3DkTmjZFztxzra5owHUWawql5nqkdFs1Qbx1jF9O0PC9cc7qq1j6JlYqVKcJHn/hwEiKnN8qtX0sLW38mnF06uDr2E0ibuNXbiKeMg6/xOnxFer5uI6pUZAYdCtqexfb5C6qY/OfrSYAfpSXNqhrhga3yS/gQlz4fwaylkgScvvrdqNrXdPlRhekoffizAeaF2u9GWkC8akFJEJYHB4lP9ZS6orVwlBTEV4xAKhySD8HP96yvHUvUgwr,iv:BrkrWwim5Vj6XnrIr8hNKtXOc/sVni9zhXh1JrkwPKs=,tag:Uf1Sk3AOXgTPmdpd4U0mFQ==,type:str] sops: kms: [] gcp_kms: [] @@ -14,8 +14,8 @@ sops: cURjWFplY1pyMzY4a0h6cTRLS2I2ZW8KqGtYjCsdriSWdKhC+kGBAMSY9WVDL3tE oMxyhrgDMtWndZEGv1+J3XLLmatDKmEcJO2k0CXZlCWWj17O4Rm+eA== -----END AGE ENCRYPTED FILE----- - lastmodified: "2024-01-31T18:29:11Z" - mac: ENC[AES256_GCM,data:PmKn6D+olZSKrjY0i9zZ3YZxi+k39CS7ckUF7YaVINqZlCBNe12T+FnPyHhH/vDujA61ZzalsY14SHwSkOwMNVTJ9tdvOEfpEtwq0wKn+5TQmz8LfWNBUazRefhY0hKZN/k/akRjRh65wOvMZfah+L6A9wA7vW1OrCbLtAKExsY=,iv:9vGJAzjRN6MxRG7EeYKKft3YElkicu0XX8Q28Ua2n3M=,tag:eyg5yUH2ME2annShaFQAqg==,type:str] + lastmodified: "2024-04-08T16:37:07Z" + mac: ENC[AES256_GCM,data:aBJ81nrFPg42KXFcbeKVSSiARDxv28jyKwwBcrGJyyMCjHBMAFVkqunCAP3QWKXy8idabLye2PE9kc0aQaQy1pNCnuum2ejbNYKstEZHrUSxS0v7Mt3Z47IRY1PGp7ovauJXAGe0TB28wslQuUTCE5AyxO+/eaf9q9uWF71X0pw=,iv:oe0YzuFO7QXQZAoSA2O682X9UoTTOo7sUVZceRyYQtY=,tag:9GGULWn3vlTdGEoOVIOzmQ==,type:str] pgp: [] unencrypted_suffix: _unencrypted version: 3.8.1 diff --git a/home/features/desktop/wezterm/wezterm.lua b/home/features/desktop/wezterm/wezterm.lua index 33198ae..8080cf7 100644 --- a/home/features/desktop/wezterm/wezterm.lua +++ b/home/features/desktop/wezterm/wezterm.lua @@ -18,19 +18,27 @@ local font_size = 20.0 config.colors = wezterm.color.load_base16_scheme(colorscheme.source) -- {{{ Window frame +local tab_bar_bg = colorscheme.transparency.terminal.base04 config.window_frame = { font = wezterm.font({ family = colorscheme.fonts.sansSerif }), - font_size = font_size, - active_titlebar_bg = colorscheme.base00, - inactive_titlebar_bg = colorscheme.base00, + font_size = font_size - 3, + active_titlebar_bg = tab_bar_bg, + inactive_titlebar_bg = tab_bar_bg, +} + +config.window_padding = { + left = "1cell", + right = "1cell", + top = "0.4cell", + bottom = "0.4cell", } -- }}} -- {{{ Tab bar colors config.colors.tab_bar = { - background = colorscheme.base02, + background = tab_bar_bg, active_tab = { - bg_color = colorscheme.base0A, - fg_color = colorscheme.base00, + bg_color = colorscheme.transparency.terminal.base00, + fg_color = colorscheme.base05, }, inactive_tab = { bg_color = colorscheme.base02, @@ -49,10 +57,13 @@ config.colors.tab_bar = { fg_color = colorscheme.base05, italic = true, }, + + -- The color of the inactive tab bar edge/divider + inactive_tab_edge = "none", } -- }}} -- {{{ Other visual things -config.window_background_opacity = colorscheme.opacity.terminal +config.window_background_opacity = colorscheme.transparency.terminal.value -- }}} -- }}} -- {{{ Main config options @@ -66,9 +77,11 @@ config.font_size = font_size config.font = wezterm.font(colorscheme.fonts.monospace) -- }}} -- {{{ Tab bar +config.tab_bar_at_bottom = false config.use_fancy_tab_bar = true --- config.enable_tab_bar = false config.hide_tab_bar_if_only_one_tab = true +config.show_tab_index_in_tab_bar = false +config.show_new_tab_button_in_tab_bar = false -- }}} -- {{{ Keycodes config.disable_default_key_bindings = false diff --git a/home/features/neovim/config/lua/my/plugins/themes/bluloco.lua b/home/features/neovim/config/lua/my/plugins/themes/bluloco.lua index 4469094..3d5d088 100644 --- a/home/features/neovim/config/lua/my/plugins/themes/bluloco.lua +++ b/home/features/neovim/config/lua/my/plugins/themes/bluloco.lua @@ -11,7 +11,7 @@ function M.config() local bluloco = require("bluloco") bluloco.setup({ - transparent = H.theme.opacity.terminal < 1.0, + transparent = H.theme.transaprency.terminal.enabled, style = H.theme_variant("Bluloco"), }) diff --git a/home/features/neovim/config/lua/my/plugins/themes/catppuccin.lua b/home/features/neovim/config/lua/my/plugins/themes/catppuccin.lua index 73e60e9..95d8eb4 100644 --- a/home/features/neovim/config/lua/my/plugins/themes/catppuccin.lua +++ b/home/features/neovim/config/lua/my/plugins/themes/catppuccin.lua @@ -12,7 +12,7 @@ function M.config() vim.g.catppuccin_flavour = H.theme_variant("Catppuccin") catppuccin.setup({ - transparent_background = H.theme.transparent.terminal, + transparent_background = H.theme.transparency.terminal.enabled, integrations = { nvimtree = true, telescope = true, @@ -25,7 +25,7 @@ function M.config() vim.cmd("colorscheme catppuccin") - if H.theme.transparent.terminal then + if H.theme.transparency.terminal.enabled then vim.cmd([[highlight FloatBorder blend=0 guibg=NONE]]) -- vim.cmd([[highlight MiniStatuslineInactive blend=0 guibg=NONE]]) vim.cmd([[highlight MiniStatuslineFilename blend=0 guibg=NONE]]) diff --git a/home/features/neovim/config/lua/my/snippets/tex.miros b/home/features/neovim/config/lua/my/snippets/tex.miros new file mode 100644 index 0000000..5342286 --- /dev/null +++ b/home/features/neovim/config/lua/my/snippets/tex.miros @@ -0,0 +1,103 @@ +for thmenv <- @{theorem,lemma,exercise,definition,corollary,example} +for thmprefix <- @{@thmenv:thm,lem,exe,def,cor,exa} + +block auto !math start + for env <- @{$1,enumerate,itemize,align*} + + string @{@env:begin,olist,ulist,dm} + name @{@env:environment,ordered list,unordered list,display math} + snip + \begin{@env} + $0 + \end{@env} + end + + string @thmprefix + snip + \begin{@thmenv}$?1{[@^{$1}]} \label{@thmprefix:$2} + $0 + \end{@thmenv} + end + + string proof + snip + \begin{proof}$?1{[Proof of @^{$1}]} + $0 + \end{proof} + end + + string ciff + name cases for ⟺ + snip + \begin{enumerate} + \item[$\implies$]$1, + \item[$\impliedby$]$2, + \end{enumerate} + $0 + end + + string item + snip \item$|1{,[$1] $0} + +block auto !math + string ref + snip \ref{$1}$0 + string r@thmprefix + snip \ref{@thmprefix:$1}$0 + + string pref + snip (\ref{$1})$0 + string pr@thmprefix + snip (\ref{@thmprefix:$1})$0 + + string quote + snip ``$1''$0 + string forcecr + snip {\ \\\\} + + pattern ([Ll]et) + name definition + snip @1 \$$1 = $2\$ + + string im + name inline math + snip \$$1\$$0 + +block math end + for suffix <- @{add,sub,rmul,pow,inv} + string ex@suffix + snip + && \lrb{\square @{@suffix: + + $1, + - $1, + \cdot $1, + ^{$1\}, + ^{-1\}, + }}$0 + end + + for prefix <- @{neg,mul,ln} + string ex@prefix + snip && \lrb{@{@prefix:-,$1,\ln} \square}$0 + + string exdiv + snip && \lrb{\frac \square {$1}}$0 + string exint + snip && \lrb{\int\square \dif $1}$0 + string exdint + snip && \lrb{\int_{$1}^{$2}\square \dif $3}$0 + + for kind <- @{texpl,extrin,exbound,exdef} + string @kind + snip + && \lrb{\text{@{kind: + $1, + triangle inequality on \$$1\$, + \$$1\$ is bounded, + definition of \$$1\$, + }}}$0 + end + + for operator <- {overline,hat,abs,norm} + string @operator + snip \\@operator $|1{ $1,{$1\}$0} diff --git a/home/features/neovim/config/syntax/miros.vim b/home/features/neovim/config/syntax/miros.vim new file mode 100644 index 0000000..0138d0b --- /dev/null +++ b/home/features/neovim/config/syntax/miros.vim @@ -0,0 +1,77 @@ +" if exists("b:current_syntax") +" finish +" endif + +set iskeyword+=- + + +syn match mirosComment "\v--.*$" +hi link mirosComment Comment + +syn match mirosName /\v\@\h\w*/ contained +syn match mirosLiteral /\v.+/ contained contains=mirosName,mirosArray oneline +hi link mirosLiteral mirosString + +syn match mirosFor /\vfor\s+\w+\s+\<-\s+/ nextgroup=mirosArray +syn match mirosForName /\vfor\s+\w+\s+/ contained containedin=mirosFor +hi link mirosForName mirosName +syn match mirosKeyword /\vfor/ contained containedin=mirosForName +syn match mirosOperator "\v\<\-" contained containedin=mirosFor + +syn match mirosBlock /\v^\s*block(\s+(auto|!?(start|math)))*/ +syn match mirosKeyword /\vblock/ contained containedin=mirosBlock +syn match mirosBlockContext /\v(auto|start|math)/ contained containedin=mirosBlock +hi link mirosBlockContext Constant +syn match mirosOperator /\v!/ contained containedin=mirosBlock + +syn match mirosDecl /\v^\s*(desc|name|string|pattern)\s+/ nextgroup=mirosLiteral +syn match mirosKeyword /\v(desc|name|string|pattern)/ contained containedin=mirosDecl + +syn match mirosDecl /\v^\s*postfix(\s+|$)/ nextgroup=mirosLiteral +syn match mirosKeyword /\vpostfix/ contained containedin=mirosDecl + +syn region mirosArray matchgroup=mirosArrayBraces start=/\v\@\{/ skip=/\v\\\\|\\}/ end=/\v\}/ contained contains=mirosName,mirosArray,mirosTabStop,mirosNonempty,mirosNeEscape,mirosCapture,mirosChoice,mirosCall +hi link mirosArrayBraces mirosOperator +syn match mirosArrayMap /\v\@\w+:/ contained containedin=mirosArray contains=mirosName +syn match mirosArrayColon /\v:/ contained containedin=mirosArrayMap +hi link mirosArrayColon mirosOperator + +syn region mirosShortSnipDecl matchgroup=mirosKeyword start=/\v^\s*snip\s+/ end=/\v$/ contains=mirosName,mirosArray,mirosTabstop,mirosNonempty,mirosNeEscape,mirosCapture,mirosChoice,mirosCall +syn region mirosLongSnipDecl matchgroup=mirosKeyword start=/\v^\s*snip\s*$/ end=/\v^\s*end/ contains=mirosName,mirosArray,mirosTabstop,mirosNonempty,mirosNeEscape,mirosCapture,mirosChoice,mirosCall + +syn match mirosTabStop /\v\$\d/ contained +hi link mirosTabStop mirosOperator + +syn region mirosNonempty start=/\v\$\?\d\{/ matchgroup=mirosOperator skip=/\v\\\\|\\}/ end=/\v\}/ contained contains=mirosName,mirosArray,mirosTabStop,mirosNonempty,mirosNeEscape,mirosCapture,mirosChoice,mirosCall +syn match mirosNonemptyDelim /\v\$\?\d\{/ contained containedin=mirosNonempty +hi link mirosNonemptyDelim mirosOperator + +syn region mirosNeEscape matchgroup=mirosOperator start=/\v\@\^\{/ skip=/\v\\\\|\\}/ end=/\v\}/ contained contains=mirosName,mirosArray,mirosTabStop,mirosNonempty,mirosNeEscape,mirosCapture,mirosChoice + +syn match mirosCapture /\v\@\d/ contained +hi link mirosCapture mirosOperator +syn match mirosNumber /\v\d/ contained containedin=mirosCapture + +syn region mirosChoice start=/\v\$\|\d\{/ matchgroup=mirosOperator skip=/\v\\\\|\\}/ end=/\v\}/ contained contains=mirosName,mirosArray,mirosTabStop,mirosNonempty,mirosNeEscape,mirosCapture,mirosChoice,mirosCall +syn match mirosChoiceDelim /\v\$\|\d\{/ contained containedin=mirosChoice +hi link mirosChoiceDelim mirosOperator + +syn region mirosCall start=/@:\w\+(/ skip=/\v\\\\|\\\)/ matchgroup=mirosOperator end=')' contained contains=mirosName,mirosArray,mirosTabStop,mirosNonempty,mirosNeEscape,mirosCapture,mirosChoice,mirosCall +syn match mirosCallStart /\v\@:\w+/ contained containedin=mirosCall +hi link mirosCallStart mirosOperator +syn match mirosCallFunc /\v\w+/ contained containedin=mirosCallStart +hi link mirosCallFunc mirosName +syn match mirosOperator /(/ contained containedin=mirosCall + +syn match mirosNumber /\v\d/ contained containedin=mirosNonemptyDelim,mirosTabStop,mirosChoiceDelim +syn match mirosComma /\v,/ contained containedin=mirosArray,mirosChoice +hi link mirosComma mirosOperator + +hi link mirosString String +hi link mirosOperator Operator +hi link mirosFunction Function +hi link mirosKeyword Keyword +hi link mirosName Identifier +hi link mirosNumber Number + +let b:current_syn = "miros" diff --git a/home/features/neovim/default.nix b/home/features/neovim/default.nix index 63a7160..e873691 100644 --- a/home/features/neovim/default.nix +++ b/home/features/neovim/default.nix @@ -260,7 +260,7 @@ let "4:configure-neovide" = { cond = whitelist "neovide"; vim.g = { - neovide_transparency = lua ''D.tempest.theme.opacity.applications''; + neovide_transparency = lua ''D.tempest.theme.transparency.applications.value''; neovide_cursor_animation_length = 0.04; neovide_cursor_animate_in_insert_mode = false; }; @@ -1574,6 +1574,8 @@ in { satellite.lua.styluaConfig = ../../../stylua.toml; + imports = [ ../desktop/wakatime ]; + # {{{ Basic config # We still want other modules to know that we are using neovim! satellite.toggles.neovim.enable = true; diff --git a/home/features/wayland/hyprland/hyprland.conf b/home/features/wayland/hyprland/hyprland.conf index 2b0f7ca..c2184bd 100644 --- a/home/features/wayland/hyprland/hyprland.conf +++ b/home/features/wayland/hyprland/hyprland.conf @@ -20,7 +20,7 @@ decoration { size = 10 passes = 4 contrast = 1.2 - brightness = 1.1 + brightness = 1.0 noise = 0.05 } } diff --git a/hosts/nixos/common/global/services/openssh.nix b/hosts/nixos/common/global/services/openssh.nix index e92aef7..b8fe378 100644 --- a/hosts/nixos/common/global/services/openssh.nix +++ b/hosts/nixos/common/global/services/openssh.nix @@ -63,6 +63,10 @@ in ]; }; + + # By default, this will ban failed ssh attempts + services.fail2ban.enable = true; + # Makes it easy to copy host keys at install time without messing up permissions systemd.tmpfiles.rules = [ "d /persist/state/etc/ssh" ]; } diff --git a/hosts/nixos/common/optional/services/kanata.nix b/hosts/nixos/common/optional/services/kanata.nix index 65a42ce..7f81936 100644 --- a/hosts/nixos/common/optional/services/kanata.nix +++ b/hosts/nixos/common/optional/services/kanata.nix @@ -160,9 +160,9 @@ let (deflayer purple _ _ _ _ _ _ _ _ _ _ _ _ _ _ - _ _ _ _ _ _ @cps @cpy next volu brup _ _ _ - _ _ _ _ _ _ @udo @pst pp vold brdn _ _ - _ _ _ _ _ _ _ @cut prev mute _ _ + _ f1 f2 f3 f4 f5 @cps @cpy next volu brup _ _ _ + _ f6 f7 f8 f9 f10 @udo @pst pp vold brdn _ _ + _ f11 f12 _ _ _ _ @cut prev mute _ _ _ _ _ _ _ ) ;; }}} diff --git a/hosts/nixos/lapetus/services/whoogle.nix b/hosts/nixos/lapetus/services/whoogle.nix index 0f67e42..bad9943 100644 --- a/hosts/nixos/lapetus/services/whoogle.nix +++ b/hosts/nixos/lapetus/services/whoogle.nix @@ -11,6 +11,7 @@ let "alternativeto.net" "linuxiac.com" "www.linuxlinks.com" + "sourceforge.net" ]; in { diff --git a/hosts/nixos/tethys/default.nix b/hosts/nixos/tethys/default.nix index 1f8c4f2..b19a034 100644 --- a/hosts/nixos/tethys/default.nix +++ b/hosts/nixos/tethys/default.nix @@ -66,4 +66,8 @@ enable = true; package = pkgs.mysql80; }; + + programs.dconf.enable = true; + services.gnome.evolution-data-server.enable = true; + services.gnome.gnome-online-accounts.enable = true; } diff --git a/modules/common/lua-colorscheme.nix b/modules/common/lua-colorscheme.nix index ffc144e..4be4e19 100644 --- a/modules/common/lua-colorscheme.nix +++ b/modules/common/lua-colorscheme.nix @@ -12,6 +12,36 @@ korora = inputs.korora.lib; }; + mkTransparencyTarget = name: + let + color = index: "rgba(${ + config.satellite.theming.colors.rgb "base${index}" + },${ + toString config.stylix.opacity.${name} + })"; + in + { + enabled = config.stylix.opacity.${name} < 1.0; + value = config.stylix.opacity.${name}; + + base00 = color "00"; + base01 = color "01"; + base02 = color "02"; + base03 = color "03"; + base04 = color "04"; + base05 = color "05"; + base06 = color "06"; + base07 = color "07"; + base08 = color "07"; + base09 = color "09"; + base0A = color "0A"; + base0B = color "0B"; + base0C = color "0C"; + base0D = color "0D"; + base0E = color "0E"; + base0F = color "0F"; + }; + theme = { name = config.lib.stylix.scheme.scheme; base00 = config.lib.stylix.scheme.base00; @@ -37,18 +67,11 @@ sansSerif = config.stylix.fonts.sansSerif.name; monospace = config.stylix.fonts.monospace.name; }; - opacity = { - terminal = config.stylix.opacity.terminal; - applications = config.stylix.opacity.applications; - desktop = config.stylix.opacity.desktop; - popups = config.stylix.opacity.popups; - }; - # Whether to enable transparency for different targets - transparent = { - terminal = config.stylix.opacity.terminal < 1.0; - applcations = config.stylix.opacity.applications < 1.0; - desktop = config.stylix.opacity.desktop < 1.0; - popups = config.stylix.opacity.popups < 1.0; + transparency = { + terminal = mkTransparencyTarget "terminal"; + applications = mkTransparencyTarget "applications"; + desktop = mkTransparencyTarget "desktop"; + popups = mkTransparencyTarget "popups"; }; rounding = { enable = config.satellite.theming.rounding.enable;