Move away from wezterm
This commit is contained in:
parent
afea4bacd0
commit
3a4d400fef
|
@ -6,7 +6,7 @@ In case you are not familiar with nix/nixos, this is a collection of configurati
|
||||||
|
|
||||||
## Features this repository includes:
|
## Features this repository includes:
|
||||||
|
|
||||||
- Sets up all the apps I use — including git, neovim, fish, tmux, starship, hyprland, anyrun, discord, zathura, wezterm & much more.
|
- Sets up all the apps I use — including git, neovim, fish, tmux, starship, hyprland, anyrun, discord, zathura, foot & much more.
|
||||||
- Sets up my entire homelab — including zfs-based [impermanence](https://grahamc.com/blog/erase-your-darlings), automatic let's-encrypt certificates, tailscale, syncthing, vaultwarden, whoogle, pounce, calico, smos, intray, actual & more.
|
- Sets up my entire homelab — including zfs-based [impermanence](https://grahamc.com/blog/erase-your-darlings), automatic let's-encrypt certificates, tailscale, syncthing, vaultwarden, whoogle, pounce, calico, smos, intray, actual & more.
|
||||||
- Consistent base16 theming using [stylix](https://github.com/danth/stylix)
|
- Consistent base16 theming using [stylix](https://github.com/danth/stylix)
|
||||||
- Declarative secret management using [sops-nix](https://github.com/Mic92/sops-nix)
|
- Declarative secret management using [sops-nix](https://github.com/Mic92/sops-nix)
|
||||||
|
@ -79,7 +79,7 @@ Here's some things you might want to check out:
|
||||||
- [Dunst](https://dunst-project.org/) — notification daemon
|
- [Dunst](https://dunst-project.org/) — notification daemon
|
||||||
- [Wlsunset](https://sr.ht/~kennylevinsen/wlsunset/) — day/night screen gamma adjustments
|
- [Wlsunset](https://sr.ht/~kennylevinsen/wlsunset/) — day/night screen gamma adjustments
|
||||||
- [Anyrun](https://github.com/Kirottu/anyrun) — program launcher
|
- [Anyrun](https://github.com/Kirottu/anyrun) — program launcher
|
||||||
- [Wezterm](https://wezfurlong.org/wezterm/) — terminal emulator
|
- [Foot](https://codeberg.org/dnkl/foot) — terminal emulator
|
||||||
- [Zathura](https://pwmt.org/projects/zathura/) — pdf viewer
|
- [Zathura](https://pwmt.org/projects/zathura/) — pdf viewer
|
||||||
- [Firefox](https://www.mozilla.org/en-US/firefox/) — web browser
|
- [Firefox](https://www.mozilla.org/en-US/firefox/) — web browser
|
||||||
- [Tesseract](https://github.com/tesseract-ocr/tesseract) — OCR engine
|
- [Tesseract](https://github.com/tesseract-ocr/tesseract) — OCR engine
|
||||||
|
@ -134,6 +134,7 @@ Most services are served over [tailscale](https://tailscale.com/), using certifi
|
||||||
|
|
||||||
Includes links to stuff which used to be in the previous section but is not used anymore. Only created this section in June 2023, so stuff I used earlier might not be here. Sorted with the most recently dropped things at the top.
|
Includes links to stuff which used to be in the previous section but is not used anymore. Only created this section in June 2023, so stuff I used earlier might not be here. Sorted with the most recently dropped things at the top.
|
||||||
|
|
||||||
|
- [Wezterm](https://github.com/wez/wezterm) — I switched to [Foot](https://codeberg.org/dnkl/foot), as wezterm was laggy, unstable, and kept breaking between releases
|
||||||
- [Ranger](https://github.com/ranger/ranger) — I switched to [Yazi](https://github.com/sxyazi/yazi)
|
- [Ranger](https://github.com/ranger/ranger) — I switched to [Yazi](https://github.com/sxyazi/yazi)
|
||||||
- [firenvim](https://glacambre/firenvim) - the concept is cool, but I found the whole thing pretty annoying at times
|
- [firenvim](https://glacambre/firenvim) - the concept is cool, but I found the whole thing pretty annoying at times
|
||||||
- [venn.nvim](https://jbyuki/venn.nvim) — the concept is cool, but I would use it about once a year
|
- [venn.nvim](https://jbyuki/venn.nvim) — the concept is cool, but I would use it about once a year
|
||||||
|
|
|
@ -1,10 +1,16 @@
|
||||||
{ config, pkgs, inputs, ... }:
|
{
|
||||||
let workflowDir = "${config.home.homeDirectory}/productivity/smos";
|
config,
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
workflowDir = "${config.home.homeDirectory}/productivity/smos";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
sops.secrets.smos_password.sopsFile = ../secrets.yaml;
|
sops.secrets.smos_password.sopsFile = ../secrets.yaml;
|
||||||
|
|
||||||
# {{{ Smos config
|
# {{{ Smos config
|
||||||
programs.smos = {
|
programs.smos = {
|
||||||
inherit workflowDir;
|
inherit workflowDir;
|
||||||
|
|
||||||
|
@ -31,10 +37,8 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
# }}}
|
# }}}
|
||||||
# {{{ Storage & secrets
|
# {{{ Storage & secrets
|
||||||
satellite.persistence.at.data.apps.smos.directories = [
|
satellite.persistence.at.data.apps.smos.directories = [ config.programs.smos.workflowDir ];
|
||||||
config.programs.smos.workflowDir
|
|
||||||
];
|
|
||||||
|
|
||||||
sops.secrets.smos_github_token = {
|
sops.secrets.smos_github_token = {
|
||||||
sopsFile = ../secrets.yaml;
|
sopsFile = ../secrets.yaml;
|
||||||
|
@ -48,9 +52,11 @@ in
|
||||||
type = "Application";
|
type = "Application";
|
||||||
terminal = false;
|
terminal = false;
|
||||||
icon = ../../../../../common/icons/smos.svg;
|
icon = ../../../../../common/icons/smos.svg;
|
||||||
exec = builtins.toString (pkgs.writeShellScript "smostui" ''
|
exec = builtins.toString (
|
||||||
wezterm start --class "org.wezfurlong.wezterm.smos" --cwd ${workflowDir} smos
|
pkgs.writeShellScript "smostui" ''
|
||||||
'');
|
foot -a Smos -D ${workflowDir} smos
|
||||||
|
''
|
||||||
|
);
|
||||||
};
|
};
|
||||||
# }}}
|
# }}}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./wezterm # terminal
|
|
||||||
./dunst.nix # notifaction handler
|
./dunst.nix # notifaction handler
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,10 @@
|
||||||
{ config, lib, pkgs, inputs, ... }:
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
# {{{ Global extensions
|
# {{{ Global extensions
|
||||||
extensions = with inputs.firefox-addons.packages.${pkgs.system}; [
|
extensions = with inputs.firefox-addons.packages.${pkgs.system}; [
|
||||||
|
@ -23,8 +29,8 @@ let
|
||||||
unpaywall
|
unpaywall
|
||||||
user-agent-string-switcher
|
user-agent-string-switcher
|
||||||
];
|
];
|
||||||
# }}}
|
|
||||||
in
|
in
|
||||||
|
# }}}
|
||||||
{
|
{
|
||||||
programs.firefox = {
|
programs.firefox = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -66,7 +72,8 @@ in
|
||||||
# {{{ Extensions
|
# {{{ Extensions
|
||||||
extensions =
|
extensions =
|
||||||
with inputs.firefox-addons.packages.${pkgs.system};
|
with inputs.firefox-addons.packages.${pkgs.system};
|
||||||
with lib.lists; flatten [
|
with lib.lists;
|
||||||
|
flatten [
|
||||||
extensions
|
extensions
|
||||||
# List of profile-specific extensions
|
# List of profile-specific extensions
|
||||||
[
|
[
|
||||||
|
@ -91,80 +98,119 @@ in
|
||||||
search.engines =
|
search.engines =
|
||||||
let
|
let
|
||||||
# {{{ Search engine creation helpers
|
# {{{ Search engine creation helpers
|
||||||
mkBasicSearchEngine = { aliases, url, param, icon ? null }: {
|
mkBasicSearchEngine =
|
||||||
urls = [{
|
{
|
||||||
template = url;
|
aliases,
|
||||||
params = [
|
url,
|
||||||
{ name = param; value = "{searchTerms}"; }
|
param,
|
||||||
|
icon ? null,
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
urls = [
|
||||||
|
{
|
||||||
|
template = url;
|
||||||
|
params = [
|
||||||
|
{
|
||||||
|
name = param;
|
||||||
|
value = "{searchTerms}";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
];
|
];
|
||||||
}];
|
|
||||||
|
|
||||||
definedAliases = aliases;
|
definedAliases = aliases;
|
||||||
} // (if icon == null then { } else { inherit icon; });
|
}
|
||||||
|
// (if icon == null then { } else { inherit icon; });
|
||||||
|
|
||||||
mkNixPackagesEngine = { aliases, type }:
|
mkNixPackagesEngine =
|
||||||
mkBasicSearchEngine
|
{ aliases, type }:
|
||||||
{
|
mkBasicSearchEngine {
|
||||||
aliases = aliases;
|
aliases = aliases;
|
||||||
url = "https://search.nixos.org/${type}";
|
url = "https://search.nixos.org/${type}";
|
||||||
param = "query";
|
param = "query";
|
||||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||||
};
|
};
|
||||||
# }}}
|
|
||||||
in
|
in
|
||||||
|
# }}}
|
||||||
# {{{ Engine declarations
|
# {{{ Engine declarations
|
||||||
{
|
{
|
||||||
"Nix Packages" = mkNixPackagesEngine {
|
"Nix Packages" = mkNixPackagesEngine {
|
||||||
aliases = [ "@np" "@nix-packages" ];
|
aliases = [
|
||||||
|
"@np"
|
||||||
|
"@nix-packages"
|
||||||
|
];
|
||||||
type = "packages";
|
type = "packages";
|
||||||
};
|
};
|
||||||
|
|
||||||
"Nix options" = mkNixPackagesEngine {
|
"Nix options" = mkNixPackagesEngine {
|
||||||
aliases = [ "@no" "@nix-options" ];
|
aliases = [
|
||||||
|
"@no"
|
||||||
|
"@nix-options"
|
||||||
|
];
|
||||||
type = "options";
|
type = "options";
|
||||||
};
|
};
|
||||||
|
|
||||||
"Pursuit" = mkBasicSearchEngine {
|
"Pursuit" = mkBasicSearchEngine {
|
||||||
url = "https://pursuit.purescript.org/search";
|
url = "https://pursuit.purescript.org/search";
|
||||||
param = "q";
|
param = "q";
|
||||||
aliases = [ "@ps" "@pursuit" ];
|
aliases = [
|
||||||
|
"@ps"
|
||||||
|
"@pursuit"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
"Hoogle" = mkBasicSearchEngine {
|
"Hoogle" = mkBasicSearchEngine {
|
||||||
url = "https://hoogle.haskell.org";
|
url = "https://hoogle.haskell.org";
|
||||||
param = "hoogle";
|
param = "hoogle";
|
||||||
aliases = [ "@hg" "@hoogle" ];
|
aliases = [
|
||||||
|
"@hg"
|
||||||
|
"@hoogle"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
"Wikipedia" = mkBasicSearchEngine {
|
"Wikipedia" = mkBasicSearchEngine {
|
||||||
url = "https://en.wikipedia.org/wiki/Special:Search";
|
url = "https://en.wikipedia.org/wiki/Special:Search";
|
||||||
param = "search";
|
param = "search";
|
||||||
aliases = [ "@wk" "@wikipedia" ];
|
aliases = [
|
||||||
|
"@wk"
|
||||||
|
"@wikipedia"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
"Github" = mkBasicSearchEngine {
|
"Github" = mkBasicSearchEngine {
|
||||||
url = "https://github.com/search";
|
url = "https://github.com/search";
|
||||||
param = "q";
|
param = "q";
|
||||||
aliases = [ "@gh" "@github" ];
|
aliases = [
|
||||||
|
"@gh"
|
||||||
|
"@github"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
"Invidious" = mkBasicSearchEngine {
|
"Invidious" = mkBasicSearchEngine {
|
||||||
url = "https://yt.moonythm.dev/results";
|
url = "https://yt.moonythm.dev/results";
|
||||||
param = "search_query";
|
param = "search_query";
|
||||||
aliases = [ "@yt" "@invidious" ];
|
aliases = [
|
||||||
|
"@yt"
|
||||||
|
"@invidious"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
"Youtube" = mkBasicSearchEngine {
|
"Youtube" = mkBasicSearchEngine {
|
||||||
url = "https://www.youtube.com/results";
|
url = "https://www.youtube.com/results";
|
||||||
param = "search_query";
|
param = "search_query";
|
||||||
aliases = [ "@gyt" "@youtube" ];
|
aliases = [
|
||||||
|
"@gyt"
|
||||||
|
"@youtube"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
"Arcaea wiki" = mkBasicSearchEngine {
|
"Arcaea wiki" = mkBasicSearchEngine {
|
||||||
url = "https://arcaea.fandom.com/wiki/Special:Search?scope=internal&navigationSearch=true";
|
url = "https://arcaea.fandom.com/wiki/Special:Search?scope=internal&navigationSearch=true";
|
||||||
param = "query";
|
param = "query";
|
||||||
aliases = [ "@ae" "@arcaea" ];
|
aliases = [
|
||||||
|
"@ae"
|
||||||
|
"@arcaea"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
"Noita wiki" = mkBasicSearchEngine {
|
"Noita wiki" = mkBasicSearchEngine {
|
||||||
|
@ -176,31 +222,46 @@ in
|
||||||
"Rain world wiki" = mkBasicSearchEngine {
|
"Rain world wiki" = mkBasicSearchEngine {
|
||||||
url = "https://rainworld.miraheze.org/w/index.php";
|
url = "https://rainworld.miraheze.org/w/index.php";
|
||||||
param = "search";
|
param = "search";
|
||||||
aliases = [ "@rw" "@rain-world" ];
|
aliases = [
|
||||||
|
"@rw"
|
||||||
|
"@rain-world"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
"Arch wiki" = mkBasicSearchEngine {
|
"Arch wiki" = mkBasicSearchEngine {
|
||||||
url = "https://wiki.archlinux.org/index.php";
|
url = "https://wiki.archlinux.org/index.php";
|
||||||
param = "search";
|
param = "search";
|
||||||
aliases = [ "@aw" "@arch-wiki" ];
|
aliases = [
|
||||||
|
"@aw"
|
||||||
|
"@arch-wiki"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
"Factorio wiki" = mkBasicSearchEngine {
|
"Factorio wiki" = mkBasicSearchEngine {
|
||||||
url = "https://wiki.factorio.com/index.php";
|
url = "https://wiki.factorio.com/index.php";
|
||||||
param = "search";
|
param = "search";
|
||||||
aliases = [ "@fw" "@factorio-wiki" ];
|
aliases = [
|
||||||
|
"@fw"
|
||||||
|
"@factorio-wiki"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
"Factorio mod portal" = mkBasicSearchEngine {
|
"Factorio mod portal" = mkBasicSearchEngine {
|
||||||
url = "https://mods.factorio.com/";
|
url = "https://mods.factorio.com/";
|
||||||
param = "query";
|
param = "query";
|
||||||
aliases = [ "@fm" "@factorio-mods" ];
|
aliases = [
|
||||||
|
"@fm"
|
||||||
|
"@factorio-mods"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
"Moonythm" = mkBasicSearchEngine {
|
"Moonythm" = mkBasicSearchEngine {
|
||||||
url = "https://search.moonythm.dev/search";
|
url = "https://search.moonythm.dev/search";
|
||||||
param = "q";
|
param = "q";
|
||||||
aliases = [ "@m" "@moonythm" ];
|
aliases = [
|
||||||
|
"@m"
|
||||||
|
"@moonythm"
|
||||||
|
];
|
||||||
icon = ../../../../common/icons/whoogle.webp;
|
icon = ../../../../common/icons/whoogle.webp;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -231,16 +292,13 @@ in
|
||||||
"media.ffmpeg.vaapi.enabled" = true;
|
"media.ffmpeg.vaapi.enabled" = true;
|
||||||
"widget.dmabuf.force-enabled" = true; # Required in recent Firefoxes
|
"widget.dmabuf.force-enabled" = true; # Required in recent Firefoxes
|
||||||
# }}}
|
# }}}
|
||||||
# {{{ New tab page
|
# {{{ New tab page
|
||||||
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" =
|
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" = false;
|
||||||
false;
|
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" = false;
|
||||||
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" =
|
|
||||||
false;
|
|
||||||
"browser.newtabpage.activity-stream.feeds.snippets" = false;
|
"browser.newtabpage.activity-stream.feeds.snippets" = false;
|
||||||
"browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts.havePinned" = "";
|
"browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts.havePinned" = "";
|
||||||
"browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts.searchEngines" = "";
|
"browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts.searchEngines" = "";
|
||||||
"browser.newtabpage.activity-stream.section.highlights.includePocket" =
|
"browser.newtabpage.activity-stream.section.highlights.includePocket" = false;
|
||||||
false;
|
|
||||||
"browser.newtabpage.activity-stream.showSponsored" = false;
|
"browser.newtabpage.activity-stream.showSponsored" = false;
|
||||||
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
|
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
|
||||||
"browser.newtabpage.pinned" = false;
|
"browser.newtabpage.pinned" = false;
|
||||||
|
@ -310,7 +368,11 @@ in
|
||||||
|
|
||||||
stylix.targets.firefox = {
|
stylix.targets.firefox = {
|
||||||
enable = true;
|
enable = true;
|
||||||
profileNames = [ config.home.username "desmos" "monkey-type" ];
|
profileNames = [
|
||||||
|
config.home.username
|
||||||
|
"desmos"
|
||||||
|
"monkey-type"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# {{{ Make firefox the default
|
# {{{ Make firefox the default
|
||||||
|
@ -335,4 +397,3 @@ in
|
||||||
];
|
];
|
||||||
# }}}
|
# }}}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{
|
{
|
||||||
programs.foot.enable=true;
|
programs.foot.enable = true;
|
||||||
stylix.targets.foot.enable=true;
|
stylix.targets.foot.enable = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
{ config, pkgs, ... }: {
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
home.packages = [ pkgs.obsidian ];
|
home.packages = [ pkgs.obsidian ];
|
||||||
|
|
||||||
# Start nvim with a custom class so our WM can move it to the correct workspace
|
# Start nvim with a custom class so our WM can move it to the correct workspace
|
||||||
|
@ -8,10 +9,13 @@
|
||||||
icon = "obsidian";
|
icon = "obsidian";
|
||||||
terminal = false;
|
terminal = false;
|
||||||
exec =
|
exec =
|
||||||
let vaultDir = "${config.xdg.userDirs.extraConfig.XDG_PROJECTS_DIR}/stellar-sanctum";
|
let
|
||||||
|
vaultDir = "${config.xdg.userDirs.extraConfig.XDG_PROJECTS_DIR}/stellar-sanctum";
|
||||||
in
|
in
|
||||||
builtins.toString (pkgs.writeShellScript "obsidiantui" ''
|
builtins.toString (
|
||||||
wezterm start --class "org.wezfurlong.wezterm.obsidian" --cwd ${vaultDir} nvim
|
pkgs.writeShellScript "obsidiantui" ''
|
||||||
'');
|
foot -a Obsidian -D ${vaultDir} nvim
|
||||||
|
''
|
||||||
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
{ inputs, pkgs, config, ... }: {
|
|
||||||
home.packages = [pkgs.wezterm ];
|
|
||||||
|
|
||||||
xdg.configFile."wezterm/nix".source =
|
|
||||||
config.satellite.lib.lua.writeFile
|
|
||||||
"." "colorscheme"
|
|
||||||
"return ${config.satellite.colorscheme.lua}";
|
|
||||||
xdg.configFile."wezterm/wezterm.lua".source =
|
|
||||||
config.satellite.dev.path "home/features/desktop/wezterm/wezterm.lua";
|
|
||||||
}
|
|
|
@ -1,184 +0,0 @@
|
||||||
-- {{{ Import stuff & create config object
|
|
||||||
local wezterm = require("wezterm")
|
|
||||||
local colorscheme = require("nix.colorscheme") -- injected by nix!
|
|
||||||
|
|
||||||
-- This table will hold the configuration.
|
|
||||||
local config = {}
|
|
||||||
|
|
||||||
-- In newer versions of wezterm, use the config_builder which will
|
|
||||||
-- help provide clearer error messages
|
|
||||||
if wezterm.config_builder then
|
|
||||||
config = wezterm.config_builder()
|
|
||||||
end
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
local font_size = 20.0
|
|
||||||
|
|
||||||
-- {{{ Theming
|
|
||||||
local themeMap = {
|
|
||||||
["Gruvbox light, soft"] = "Gruvbox light, soft (base16)",
|
|
||||||
["Gruvbox dark, soft"] = "Gruvbox dark, soft (base16)",
|
|
||||||
}
|
|
||||||
|
|
||||||
config.color_scheme = themeMap[colorscheme.name]
|
|
||||||
config.colors = {}
|
|
||||||
-- config.colors = wezterm.color.load_base16_scheme(colorscheme.source)
|
|
||||||
|
|
||||||
-- {{{ Window frame
|
|
||||||
config.window_frame = {
|
|
||||||
font = wezterm.font({ family = colorscheme.fonts.sansSerif }),
|
|
||||||
font_size = font_size - 3,
|
|
||||||
active_titlebar_bg = "none",
|
|
||||||
inactive_titlebar_bg = "none",
|
|
||||||
}
|
|
||||||
|
|
||||||
config.window_padding = {
|
|
||||||
left = "1cell",
|
|
||||||
right = "1cell",
|
|
||||||
top = "0.4cell",
|
|
||||||
bottom = "0.4cell",
|
|
||||||
}
|
|
||||||
-- }}}
|
|
||||||
-- {{{ Tab bar colors
|
|
||||||
config.colors.tab_bar = {
|
|
||||||
background = "none",
|
|
||||||
active_tab = {
|
|
||||||
bg_color = colorscheme.transparency.terminal.base00,
|
|
||||||
fg_color = colorscheme.base05,
|
|
||||||
},
|
|
||||||
inactive_tab = {
|
|
||||||
bg_color = "none",
|
|
||||||
fg_color = colorscheme.base05,
|
|
||||||
},
|
|
||||||
inactive_tab_hover = {
|
|
||||||
bg_color = colorscheme.base00,
|
|
||||||
fg_color = colorscheme.base05,
|
|
||||||
},
|
|
||||||
new_tab = {
|
|
||||||
bg_color = colorscheme.base02,
|
|
||||||
fg_color = colorscheme.base05,
|
|
||||||
},
|
|
||||||
new_tab_hover = {
|
|
||||||
bg_color = colorscheme.base02,
|
|
||||||
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.transparency.terminal.value
|
|
||||||
-- }}}
|
|
||||||
-- }}}
|
|
||||||
-- {{{ Main config options
|
|
||||||
config.automatically_reload_config = true
|
|
||||||
config.warn_about_missing_glyphs = false
|
|
||||||
config.check_for_updates = false
|
|
||||||
|
|
||||||
-- {{{ Fonts
|
|
||||||
config.adjust_window_size_when_changing_font_size = false -- Makes it work with fixed window sizes.
|
|
||||||
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.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
|
|
||||||
-- config.enable_kitty_keyboard = true -- Let's apps recognise more distinct keys
|
|
||||||
config.enable_csi_u_key_encoding = true -- For some reason I need this for all keybinds to work inside neovim.
|
|
||||||
-- }}}
|
|
||||||
-- }}}
|
|
||||||
-- {{{ Keybinds
|
|
||||||
local function unmap(key, mods)
|
|
||||||
return {
|
|
||||||
key = key,
|
|
||||||
mods = mods,
|
|
||||||
action = wezterm.action.DisableDefaultAssignment,
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
local function bind_if(cond, key, mods, action)
|
|
||||||
local function callback(win, pane)
|
|
||||||
if cond(pane) then
|
|
||||||
win:perform_action(action, pane)
|
|
||||||
else
|
|
||||||
win:perform_action(
|
|
||||||
wezterm.action.SendKey({ key = key, mods = mods }),
|
|
||||||
pane
|
|
||||||
)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return { key = key, mods = mods, action = wezterm.action_callback(callback) }
|
|
||||||
end
|
|
||||||
|
|
||||||
-- {{{ Detect nvim processes
|
|
||||||
local function is_inside_vim(pane)
|
|
||||||
local tty = pane:get_tty_name()
|
|
||||||
if tty == nil then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
local success, _, _ = wezterm.run_child_process({
|
|
||||||
"sh",
|
|
||||||
"-c",
|
|
||||||
"ps -o state= -o comm= -t"
|
|
||||||
.. wezterm.shell_quote_arg(tty)
|
|
||||||
.. " | "
|
|
||||||
.. "grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|l?n?vim?x?)(diff)?$'",
|
|
||||||
})
|
|
||||||
|
|
||||||
return success
|
|
||||||
end
|
|
||||||
|
|
||||||
local function is_outside_vim(pane)
|
|
||||||
return not is_inside_vim(pane)
|
|
||||||
end
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
config.keys = {
|
|
||||||
-- {{{ Disable certain default keybinds
|
|
||||||
unmap("f", "CTRL|SHIFT"),
|
|
||||||
unmap("w", "CTRL|SHIFT"),
|
|
||||||
unmap("Enter", "ALT"),
|
|
||||||
-- }}}
|
|
||||||
-- {{{ Nvim nevigation keybinds
|
|
||||||
bind_if(
|
|
||||||
is_outside_vim,
|
|
||||||
"h",
|
|
||||||
"CTRL",
|
|
||||||
wezterm.action.ActivatePaneDirection("Left")
|
|
||||||
),
|
|
||||||
bind_if(
|
|
||||||
is_outside_vim,
|
|
||||||
"j",
|
|
||||||
"CTRL",
|
|
||||||
wezterm.action.ActivatePaneDirection("Down")
|
|
||||||
),
|
|
||||||
bind_if(
|
|
||||||
is_outside_vim,
|
|
||||||
"k",
|
|
||||||
"CTRL",
|
|
||||||
wezterm.action.ActivatePaneDirection("Up")
|
|
||||||
),
|
|
||||||
bind_if(
|
|
||||||
is_outside_vim,
|
|
||||||
"l",
|
|
||||||
"CTRL",
|
|
||||||
wezterm.action.ActivatePaneDirection("Right")
|
|
||||||
),
|
|
||||||
-- }}}
|
|
||||||
}
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
config.enable_wayland = false
|
|
||||||
|
|
||||||
-- and finally, return the configuration to wezterm
|
|
||||||
return config
|
|
|
@ -1,5 +1,6 @@
|
||||||
# Common wayland stuff
|
# Common wayland stuff
|
||||||
{ lib, pkgs, ... }: {
|
{ lib, pkgs, ... }:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./wlsunset.nix
|
./wlsunset.nix
|
||||||
./wlogout.nix
|
./wlogout.nix
|
||||||
|
@ -35,9 +36,10 @@
|
||||||
| ${wl-copy}
|
| ${wl-copy}
|
||||||
${_ pkgs.libnotify} "Scanned qr code on area with output \"$(${wl-paste})\""
|
${_ pkgs.libnotify} "Scanned qr code on area with output \"$(${wl-paste})\""
|
||||||
'';
|
'';
|
||||||
# }}}
|
|
||||||
in
|
in
|
||||||
with pkgs; [
|
# }}}
|
||||||
|
with pkgs;
|
||||||
|
[
|
||||||
libnotify # Send notifications
|
libnotify # Send notifications
|
||||||
wl-ocr # Custom ocr script
|
wl-ocr # Custom ocr script
|
||||||
wl-qr # Custom qr scanner script
|
wl-qr # Custom qr scanner script
|
||||||
|
|
|
@ -1,6 +1,18 @@
|
||||||
{ pkgs, lib, config, ... }:
|
|
||||||
{
|
{
|
||||||
imports = [ ../global.nix ./hyprpaper.nix ];
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
../global.nix
|
||||||
|
./hyprpaper.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
home.packages = [
|
||||||
|
pkgs.gtk3 # Contains gtk-launch
|
||||||
|
];
|
||||||
|
|
||||||
stylix.targets.hyprland.enable = true;
|
stylix.targets.hyprland.enable = true;
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
|
@ -23,13 +35,14 @@
|
||||||
passes = config.satellite.theming.blur.passes;
|
passes = config.satellite.theming.blur.passes;
|
||||||
contrast = config.satellite.theming.blur.contrast;
|
contrast = config.satellite.theming.blur.contrast;
|
||||||
brightness = config.satellite.theming.blur.brightness;
|
brightness = config.satellite.theming.blur.brightness;
|
||||||
noise = 0.05;
|
noise = 5.0e-2;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
# }}}
|
# }}}
|
||||||
# {{{ Monitors
|
# {{{ Monitors
|
||||||
# Configure monitor properties
|
# Configure monitor properties
|
||||||
monitor = lib.forEach config.satellite.monitors (m:
|
monitor = lib.forEach config.satellite.monitors (
|
||||||
|
m:
|
||||||
lib.concatStringsSep "," [
|
lib.concatStringsSep "," [
|
||||||
m.name
|
m.name
|
||||||
"${toString m.width}x${toString m.height}@${toString m.refreshRate}"
|
"${toString m.width}x${toString m.height}@${toString m.refreshRate}"
|
||||||
|
@ -39,11 +52,10 @@
|
||||||
);
|
);
|
||||||
|
|
||||||
# Map monitors to workspaces
|
# Map monitors to workspaces
|
||||||
workspace = lib.lists.concatMap
|
workspace = lib.lists.concatMap (
|
||||||
(m: lib.lists.optional (m.workspace != null) "${m.name},${m.workspace}")
|
m: lib.lists.optional (m.workspace != null) "${m.name},${m.workspace}"
|
||||||
config.satellite.monitors;
|
) config.satellite.monitors;
|
||||||
# }}}
|
# }}}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,9 @@ layerrule = blur,logout_dialog
|
||||||
layerrule = blur,anyrun
|
layerrule = blur,anyrun
|
||||||
layerrule = blur,waybar
|
layerrule = blur,waybar
|
||||||
|
|
||||||
|
layerrule = ignorezero,gtk-layer-shell
|
||||||
|
layerrule = ignorezero,osd
|
||||||
|
layerrule = ignorezero,waybar
|
||||||
layerrule = ignorezero,anyrun
|
layerrule = ignorezero,anyrun
|
||||||
layerrule = ignorezero,waybar
|
layerrule = ignorezero,waybar
|
||||||
|
|
||||||
|
@ -51,7 +54,7 @@ animations {
|
||||||
}
|
}
|
||||||
|
|
||||||
# Execute apps at launch
|
# Execute apps at launch
|
||||||
exec-once = wezterm & firefox & discocss & spotify & obsidiantui & smostui
|
exec-once = foot & firefox & discocss & gtk-launch obsidiantui & gtk-launch smostui
|
||||||
|
|
||||||
# Without this, xdg-open doesn't work
|
# Without this, xdg-open doesn't work
|
||||||
exec = systemctl --user import-environment PATH && systemctl --user restart xdg-desktop-portal.service
|
exec = systemctl --user import-environment PATH && systemctl --user restart xdg-desktop-portal.service
|
||||||
|
@ -59,17 +62,11 @@ exec = systemctl --user import-environment PATH && systemctl --user restart xdg-
|
||||||
# {{{ Window rules
|
# {{{ Window rules
|
||||||
# {{{ Automatically move stuff to workspaces
|
# {{{ Automatically move stuff to workspaces
|
||||||
windowrulev2 = workspace 2 silent, title:^(.*Firefox.*)$
|
windowrulev2 = workspace 2 silent, title:^(.*Firefox.*)$
|
||||||
|
|
||||||
windowrulev2 = workspace 3 silent, title:^(.*(Disc|WebC)ord.*)$
|
windowrulev2 = workspace 3 silent, title:^(.*(Disc|WebC)ord.*)$
|
||||||
windowrulev2 = workspace 3 silent, title:^(.*Element.*)$
|
windowrulev2 = workspace 3 silent, title:^(.*Element.*)$
|
||||||
|
|
||||||
windowrulev2 = workspace 6 silent, title:^(.*(S|s)pot(ify)?.*)$
|
windowrulev2 = workspace 6 silent, title:^(.*(S|s)pot(ify)?.*)$
|
||||||
|
windowrulev2 = workspace 7 silent, class:^(.*Obsidian.*)$
|
||||||
windowrulev2 = workspace 7 silent, title:^(.*Obsidian.*)$
|
windowrulev2 = workspace 8 silent, class:^(.*Smos.*)$
|
||||||
windowrulev2 = workspace 7 silent, title:^(.*stellar-sanctum)$
|
|
||||||
windowrulev2 = workspace 7 silent, class:^(org\.wezfurlong\.wezterm\.obsidian)$
|
|
||||||
|
|
||||||
windowrulev2 = workspace 8 silent, class:^(org\.wezfurlong\.wezterm\.smos)$
|
|
||||||
# }}}
|
# }}}
|
||||||
# {{{ Idleinhibit rules
|
# {{{ Idleinhibit rules
|
||||||
# - while firefox is fullscreen
|
# - while firefox is fullscreen
|
||||||
|
@ -87,7 +84,7 @@ bind = $mod, C, killactive, # Kill current
|
||||||
bind = $mod, F, fullscreen, # Fullscreen
|
bind = $mod, F, fullscreen, # Fullscreen
|
||||||
|
|
||||||
# Execute external things
|
# Execute external things
|
||||||
bind = $mod, return, exec, wezterm
|
bind = $mod, return, exec, foot
|
||||||
bind = $mod, T, exec, wl-ocr
|
bind = $mod, T, exec, wl-ocr
|
||||||
bind = $mod SHIFT, T, exec, wl-qr
|
bind = $mod SHIFT, T, exec, wl-qr
|
||||||
bind = $mod CONTROL, T, exec, hyprpicker | wl-copy && libnotify "Copied color $(wp-paste)" # Color picker
|
bind = $mod CONTROL, T, exec, hyprpicker | wl-copy && libnotify "Copied color $(wp-paste)" # Color picker
|
||||||
|
@ -95,7 +92,7 @@ bind = $mod, Q, exec, wlogout # Show logout menu
|
||||||
bind = $mod, L, exec, loginctl lock-session # Lock screen
|
bind = $mod, L, exec, loginctl lock-session # Lock screen
|
||||||
bind = $mod, P, exec, anyrun
|
bind = $mod, P, exec, anyrun
|
||||||
bind = $mod, B, exec, wlsunset-toggle # Toggle blue light filter thingy
|
bind = $mod, B, exec, wlsunset-toggle # Toggle blue light filter thingy
|
||||||
bind = $mod, V, exec, wezterm start vimclip # Vim anywhere!
|
bind = $mod, V, exec, foot vimclip # Vim anywhere!
|
||||||
bind = $mod, W, exec, ~/projects/form-filler/type.sh
|
bind = $mod, W, exec, ~/projects/form-filler/type.sh
|
||||||
|
|
||||||
# Work with the special workspace
|
# Work with the special workspace
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
{ config, ... }: {
|
{ config, ... }:
|
||||||
|
{
|
||||||
sops.secrets.wireless.sopsFile = ../../secrets.yaml;
|
sops.secrets.wireless.sopsFile = ../../secrets.yaml;
|
||||||
|
|
||||||
# https://github.com/NixOS/nixpkgs/blob/nixos-22.11/nixos/modules/services/networking/wpa_supplicant.nix
|
# https://github.com/NixOS/nixpkgs/blob/nixos-22.11/nixos/modules/services/networking/wpa_supplicant.nix
|
||||||
|
@ -21,6 +22,7 @@
|
||||||
"Ziggo1721699".psk = "@NL_PLACE_1_PASS@";
|
"Ziggo1721699".psk = "@NL_PLACE_1_PASS@";
|
||||||
"Konijntjes".psk = "@NL_PLACE_1_PODS_PASS@";
|
"Konijntjes".psk = "@NL_PLACE_1_PODS_PASS@";
|
||||||
"InfoEdu12".psk = "@INFOEDU_PASS@";
|
"InfoEdu12".psk = "@INFOEDU_PASS@";
|
||||||
|
"CNU19".psk = "@INFOEDU_PASS@";
|
||||||
"ZTE_F7A321".psk = "@MADALINA_PASS@";
|
"ZTE_F7A321".psk = "@MADALINA_PASS@";
|
||||||
|
|
||||||
# [Working solution](https://bbs.archlinux.org/viewtopic.php?id=271336)
|
# [Working solution](https://bbs.archlinux.org/viewtopic.php?id=271336)
|
||||||
|
|
|
@ -43,7 +43,7 @@ main =
|
||||||
[ ("M-p", spawn "rofi -show drun"),
|
[ ("M-p", spawn "rofi -show drun"),
|
||||||
("M-g", spawn myBrowser),
|
("M-g", spawn myBrowser),
|
||||||
("M-d", spawn "Discord"),
|
("M-d", spawn "Discord"),
|
||||||
("M-v", spawn "wezterm start vimclip"),
|
("M-v", spawn "$TERMLAUNCH vimclip"),
|
||||||
("M-s", spawn "spectacle -rcb"),
|
("M-s", spawn "spectacle -rcb"),
|
||||||
("M-S-s", spawn "spectacle -mcb"),
|
("M-S-s", spawn "spectacle -mcb"),
|
||||||
("M-C-s", spawn "spectacle -ucb"),
|
("M-C-s", spawn "spectacle -ucb"),
|
||||||
|
@ -61,7 +61,7 @@ main =
|
||||||
myLayoutHook = spacingHook layouts
|
myLayoutHook = spacingHook layouts
|
||||||
|
|
||||||
startupApps = []
|
startupApps = []
|
||||||
-- [ (0, "wezterm"),
|
-- [ (0, "$TERMSTART"),
|
||||||
-- (1, "firefox"),
|
-- (1, "firefox"),
|
||||||
-- (2, "Discord")
|
-- (2, "Discord")
|
||||||
-- ]
|
-- ]
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, ... }:
|
{ config, ... }:
|
||||||
{
|
{
|
||||||
imports = [ ../xserver.nix ../touchpad.nix ];
|
imports = [
|
||||||
|
../xserver.nix
|
||||||
|
../touchpad.nix
|
||||||
|
];
|
||||||
services.xserver = {
|
services.xserver = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
|
@ -9,13 +12,11 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
enableContribAndExtras = true;
|
enableContribAndExtras = true;
|
||||||
|
|
||||||
config = builtins.readFile (config.lib.stylix.colors {
|
# TODO: substitute the missing $TERM* variables
|
||||||
template = builtins.readFile ./Main.hs;
|
config = builtins.readFile (config.lib.stylix.colors { template = builtins.readFile ./Main.hs; });
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Proper wallpaper zooming
|
# Proper wallpaper zooming
|
||||||
desktopManager.wallpaper.mode = "fill";
|
desktopManager.wallpaper.mode = "fill";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
wireless: ENC[AES256_GCM,data:Ib0PdBd2r/DPyE6Ah9NffT8Tw8c2y+seGFrE0e9GkyRaStdYMiiIlWCiaBO0u1HHaVV+2MQ33MnMdqyCGRlqGk45kl0GIwVR5iAiSYnobj/6wcse+kx/+5mzNOHXD1kJRGJBm5+SN9ntiGABNkQXJdn/Qoc/ukY1uaGe2nBeFKmGdD9JL7KfgdI5jYjQYyDbCL9JUszxkXNcplIRBAAy8JDaBVeo9HgI0QDIZToPKwuEeQoA9XzdimrjbCazlZy3ZvjAuoQXmrc1nIRHF5GabSRGTFTnTfcBeW2fGpUxmIhLyucn2DIQBXLm+RDdMLWoqcGbKiLVqKyUXck3ZZyoHMf2b9N52xMUwcS7,iv:ozkDwWmurWTD8TZHGvWL9Yh8cOrP1PzSBkz+1bBZybo=,tag:iGPjRaOoGRcOWJMweTL2yA==,type:str]
|
wireless: ENC[AES256_GCM,data:uHQOb3ilMi0kHsLFz9QZpSiYB6w9cTjCKwBN+TONY+H4arV4EUxzTottEDKQAFZbrNIeq2BU22QpfYMdmiH/6QiODLybWDJQ4fG3L2RzzUTlqZ9uL/uvkRmIXVh9Y4yHn9F+HftYvUaPgKEuVtHfqWleNCjOl6caKZcWEGM0/ow4nGcEfpT5PZsFn27yzKpcVn8A6XUJLTGhdvSSnkixauybEsQh9IszESVb44QYabjEemB7w05bBHn3R148OqDXaBs4LdrDQNjEIJlGTaMeE4WRrRMXu6DMcYexUFRUHZQBJ+RbOkL+qh0U2127AoC7lUTSO0isHw+LG1U78he80sQzvqBBAeK3Crgk,iv:Rmqsj4j69JEKkmuJTn7+JR9q72Fx+Ko7DZeGakxPCFc=,tag:zKXYbjdvgCkvuZLQEubt9g==,type:str]
|
||||||
pilot_password: ENC[AES256_GCM,data:PiKJCv5x68O9HFM4UvqLnsSPtqFslBLeAg67OkvFAbw7WaqbXh/p5SQblhPHcJ7jQDc4kI3XesOxruZrfJ0aZNDV1g7MWecgKg==,iv:EVs/m83Zfx2NRQMO52cF6pCe1ETpYfaR6lmXg2Na/DI=,tag:dl2x1aTsaTgtHEZYdW2lmg==,type:str]
|
pilot_password: ENC[AES256_GCM,data:PiKJCv5x68O9HFM4UvqLnsSPtqFslBLeAg67OkvFAbw7WaqbXh/p5SQblhPHcJ7jQDc4kI3XesOxruZrfJ0aZNDV1g7MWecgKg==,iv:EVs/m83Zfx2NRQMO52cF6pCe1ETpYfaR6lmXg2Na/DI=,tag:dl2x1aTsaTgtHEZYdW2lmg==,type:str]
|
||||||
cloudflare_dns_api_token: ENC[AES256_GCM,data:QlLxQ/4AQsdqdWJC//FRgbMRqR0Ni51JgCDlyXfNe4pfPtiPs+Gb6Q==,iv:7SS+EzeHk0J1DzVvKxd40AuZUidV2asoQbSr5vyxl+U=,tag:T1KGXOsZ26sICYbrcmU8+w==,type:str]
|
cloudflare_dns_api_token: ENC[AES256_GCM,data:QlLxQ/4AQsdqdWJC//FRgbMRqR0Ni51JgCDlyXfNe4pfPtiPs+Gb6Q==,iv:7SS+EzeHk0J1DzVvKxd40AuZUidV2asoQbSr5vyxl+U=,tag:T1KGXOsZ26sICYbrcmU8+w==,type:str]
|
||||||
backup_password: ENC[AES256_GCM,data:Tu7ODTALfQLX7Mbo/BqiM6gaErGv07urwN1iHwGgurKWDuuE1h5NMV5J0cJqW6orTIloVtoZTJgSJ2lZlMcfUQ==,iv:78ha833ZzgEDChIuGjCMVA89U4qY9lWqUmfPCiiQeQM=,tag:u8KWw/060UVP+OOoPhbjRA==,type:str]
|
backup_password: ENC[AES256_GCM,data:Tu7ODTALfQLX7Mbo/BqiM6gaErGv07urwN1iHwGgurKWDuuE1h5NMV5J0cJqW6orTIloVtoZTJgSJ2lZlMcfUQ==,iv:78ha833ZzgEDChIuGjCMVA89U4qY9lWqUmfPCiiQeQM=,tag:u8KWw/060UVP+OOoPhbjRA==,type:str]
|
||||||
|
@ -35,8 +35,8 @@ sops:
|
||||||
WFd4ZFNHWG5Cakw5cU9MRE9HWHQ4THMKr/S7v1Oj3zQziMtI/NuFVm6AaJF5JV5U
|
WFd4ZFNHWG5Cakw5cU9MRE9HWHQ4THMKr/S7v1Oj3zQziMtI/NuFVm6AaJF5JV5U
|
||||||
sEr2nEptYFz4G6YL5psQGXHaKzQKBg+crgKRbYL4akhqT7pfYPC0bQ==
|
sEr2nEptYFz4G6YL5psQGXHaKzQKBg+crgKRbYL4akhqT7pfYPC0bQ==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2024-07-08T00:25:56Z"
|
lastmodified: "2024-07-29T19:34:39Z"
|
||||||
mac: ENC[AES256_GCM,data:v+p223kf9JLRMJ6moIpA5wZOemJY0+BSnX30MY8g28RBGaR+I7AbUHOrd+GUPAXLqwfqtrFdPt8pULT+fzuxL4wnlB9NPZxCYFMhSGGj8HysmDuytYXfSD1LZWD9fymE4KuyTZHv7I/coEM/iobbvutu9cmTKN05i1atjeh4B30=,iv:hPiQkvbeFjLyzTNoHMqqPikMPuDvT2X2iAo7JBlEpHY=,tag:fdHvvH+qPrv8UhwIA6aZSA==,type:str]
|
mac: ENC[AES256_GCM,data:ruCV2JKgFN6BiTYjOwlhNmjDCh9ZRJ9E+H0x0uVevZnsTEcFlTUh5iNSiw3uJtcKcA4H4kuGPXlolyxuGVGsAhVFD4G3zR84i9TTHmGT4STC2dNebcA9VUXVnfPhEUFAExrPRxbEqvx3o0QPZIfGonPQzl3xhJzOPahYsRJOwTQ=,iv:rSuuhOgzOgE7DosgVEWDT1jenF3m+NqnCSEKjoCBrfE=,tag:7pAV4jKvJYG1vPqEEMqOPg==,type:str]
|
||||||
pgp: []
|
pgp: []
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.8.1
|
version: 3.8.1
|
||||||
|
|
|
@ -1,4 +1,10 @@
|
||||||
{ config, lib, pkgs, ... }: {
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
# {{{ Imports
|
# {{{ Imports
|
||||||
imports = [
|
imports = [
|
||||||
../common/global
|
../common/global
|
||||||
|
@ -34,9 +40,14 @@
|
||||||
hardware.opengl.enable = true;
|
hardware.opengl.enable = true;
|
||||||
hardware.opentabletdriver.enable = true;
|
hardware.opentabletdriver.enable = true;
|
||||||
hardware.keyboard.qmk.enable = true;
|
hardware.keyboard.qmk.enable = true;
|
||||||
powerManagement.cpuFreqGovernor = "ondemand";
|
powerManagement.cpuFreqGovernor = "performance";
|
||||||
services.tlp.enable = true;
|
services.tlp = {
|
||||||
services.thermald.enable = true;
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
CPU_SCALING_GOVERNOR_ON_BAT = "performance";
|
||||||
|
CPU_SCALING_GOVERNOR_ON_AC = "performance";
|
||||||
|
};
|
||||||
|
};
|
||||||
# }}}
|
# }}}
|
||||||
# {{{ A few ad-hoc programs
|
# {{{ A few ad-hoc programs
|
||||||
programs.kdeconnect.enable = true;
|
programs.kdeconnect.enable = true;
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
# (https://nixos.wiki/wiki/Module).
|
# (https://nixos.wiki/wiki/Module).
|
||||||
|
|
||||||
{
|
{
|
||||||
# example = import ./example.nix;
|
# example = ./example.nix;
|
||||||
lua-lib = import ./lua-lib.nix;
|
lua-lib = ./lua-lib.nix;
|
||||||
lua-colorscheme = import ./lua-colorscheme.nix;
|
lua-colorscheme = ./lua-colorscheme.nix;
|
||||||
theming = import ./theming.nix;
|
theming = ./theming.nix;
|
||||||
toggles = import ./toggles.nix;
|
toggles = ./toggles.nix;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
# Personal things
|
# Personal things
|
||||||
dev = import ./dev.nix;
|
dev = ./dev.nix;
|
||||||
firefox = import ./firefox;
|
firefox = ./firefox;
|
||||||
monitors = import ./monitors.nix;
|
monitors = ./monitors.nix;
|
||||||
satellite-persistence = import ./persistence.nix;
|
satellite-persistence = ./persistence.nix;
|
||||||
|
|
||||||
# Should upstream
|
# Should upstream
|
||||||
discord = import ./discord.nix;
|
discord = ./discord.nix;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
# (https://nixos.wiki/wiki/Module).
|
# (https://nixos.wiki/wiki/Module).
|
||||||
|
|
||||||
{
|
{
|
||||||
# example = import ./example.nix;
|
# example = ./example.nix;
|
||||||
cloudflared = import ./cloudflared.nix;
|
cloudflared = ./cloudflared.nix;
|
||||||
ports = import ./ports.nix;
|
ports = ./ports.nix;
|
||||||
nginx = import ./nginx.nix;
|
nginx = ./nginx.nix;
|
||||||
pilot = import ./pilot.nix;
|
pilot = ./pilot.nix;
|
||||||
pounce = import ./pounce.nix;
|
pounce = ./pounce.nix;
|
||||||
dns = import ./dns.nix;
|
dns = ./dns.nix;
|
||||||
dns-assertions = import ./dns-assertions.nix;
|
dns-assertions = ./dns-assertions.nix;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue