1
Fork 0

Move away from wezterm

This commit is contained in:
prescientmoon 2024-08-05 20:31:34 +02:00
parent afea4bacd0
commit 3a4d400fef
Signed by: prescientmoon
SSH key fingerprint: SHA256:UUF9JT2s8Xfyv76b8ZuVL7XrmimH4o49p4b+iexbVH4
19 changed files with 217 additions and 314 deletions

View file

@ -6,7 +6,7 @@ In case you are not familiar with nix/nixos, this is a collection of configurati
## 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.
- Consistent base16 theming using [stylix](https://github.com/danth/stylix)
- 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
- [Wlsunset](https://sr.ht/~kennylevinsen/wlsunset/) — day/night screen gamma adjustments
- [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
- [Firefox](https://www.mozilla.org/en-US/firefox/) — web browser
- [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.
- [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)
- [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

View file

@ -1,5 +1,11 @@
{ config, pkgs, inputs, ... }:
let workflowDir = "${config.home.homeDirectory}/productivity/smos";
{
config,
pkgs,
inputs,
...
}:
let
workflowDir = "${config.home.homeDirectory}/productivity/smos";
in
{
sops.secrets.smos_password.sopsFile = ../secrets.yaml;
@ -32,9 +38,7 @@ in
};
# }}}
# {{{ Storage & secrets
satellite.persistence.at.data.apps.smos.directories = [
config.programs.smos.workflowDir
];
satellite.persistence.at.data.apps.smos.directories = [ config.programs.smos.workflowDir ];
sops.secrets.smos_github_token = {
sopsFile = ../secrets.yaml;
@ -48,9 +52,11 @@ in
type = "Application";
terminal = false;
icon = ../../../../../common/icons/smos.svg;
exec = builtins.toString (pkgs.writeShellScript "smostui" ''
wezterm start --class "org.wezfurlong.wezterm.smos" --cwd ${workflowDir} smos
'');
exec = builtins.toString (
pkgs.writeShellScript "smostui" ''
foot -a Smos -D ${workflowDir} smos
''
);
};
# }}}
}

View file

@ -1,6 +1,6 @@
{ pkgs, ... }: {
{ pkgs, ... }:
{
imports = [
./wezterm # terminal
./dunst.nix # notifaction handler
];

View file

@ -1,4 +1,10 @@
{ config, lib, pkgs, inputs, ... }:
{
config,
lib,
pkgs,
inputs,
...
}:
let
# {{{ Global extensions
extensions = with inputs.firefox-addons.packages.${pkgs.system}; [
@ -23,8 +29,8 @@ let
unpaywall
user-agent-string-switcher
];
# }}}
in
# }}}
{
programs.firefox = {
enable = true;
@ -66,7 +72,8 @@ in
# {{{ Extensions
extensions =
with inputs.firefox-addons.packages.${pkgs.system};
with lib.lists; flatten [
with lib.lists;
flatten [
extensions
# List of profile-specific extensions
[
@ -91,80 +98,119 @@ in
search.engines =
let
# {{{ Search engine creation helpers
mkBasicSearchEngine = { aliases, url, param, icon ? null }: {
urls = [{
template = url;
params = [
{ name = param; value = "{searchTerms}"; }
mkBasicSearchEngine =
{
aliases,
url,
param,
icon ? null,
}:
{
urls = [
{
template = url;
params = [
{
name = param;
value = "{searchTerms}";
}
];
}
];
}];
definedAliases = aliases;
} // (if icon == null then { } else { inherit icon; });
definedAliases = aliases;
}
// (if icon == null then { } else { inherit icon; });
mkNixPackagesEngine = { aliases, type }:
mkBasicSearchEngine
{
aliases = aliases;
url = "https://search.nixos.org/${type}";
param = "query";
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
};
# }}}
mkNixPackagesEngine =
{ aliases, type }:
mkBasicSearchEngine {
aliases = aliases;
url = "https://search.nixos.org/${type}";
param = "query";
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
};
in
# }}}
# {{{ Engine declarations
{
"Nix Packages" = mkNixPackagesEngine {
aliases = [ "@np" "@nix-packages" ];
aliases = [
"@np"
"@nix-packages"
];
type = "packages";
};
"Nix options" = mkNixPackagesEngine {
aliases = [ "@no" "@nix-options" ];
aliases = [
"@no"
"@nix-options"
];
type = "options";
};
"Pursuit" = mkBasicSearchEngine {
url = "https://pursuit.purescript.org/search";
param = "q";
aliases = [ "@ps" "@pursuit" ];
aliases = [
"@ps"
"@pursuit"
];
};
"Hoogle" = mkBasicSearchEngine {
url = "https://hoogle.haskell.org";
param = "hoogle";
aliases = [ "@hg" "@hoogle" ];
aliases = [
"@hg"
"@hoogle"
];
};
"Wikipedia" = mkBasicSearchEngine {
url = "https://en.wikipedia.org/wiki/Special:Search";
param = "search";
aliases = [ "@wk" "@wikipedia" ];
aliases = [
"@wk"
"@wikipedia"
];
};
"Github" = mkBasicSearchEngine {
url = "https://github.com/search";
param = "q";
aliases = [ "@gh" "@github" ];
aliases = [
"@gh"
"@github"
];
};
"Invidious" = mkBasicSearchEngine {
url = "https://yt.moonythm.dev/results";
param = "search_query";
aliases = [ "@yt" "@invidious" ];
aliases = [
"@yt"
"@invidious"
];
};
"Youtube" = mkBasicSearchEngine {
url = "https://www.youtube.com/results";
param = "search_query";
aliases = [ "@gyt" "@youtube" ];
aliases = [
"@gyt"
"@youtube"
];
};
"Arcaea wiki" = mkBasicSearchEngine {
url = "https://arcaea.fandom.com/wiki/Special:Search?scope=internal&navigationSearch=true";
param = "query";
aliases = [ "@ae" "@arcaea" ];
aliases = [
"@ae"
"@arcaea"
];
};
"Noita wiki" = mkBasicSearchEngine {
@ -176,31 +222,46 @@ in
"Rain world wiki" = mkBasicSearchEngine {
url = "https://rainworld.miraheze.org/w/index.php";
param = "search";
aliases = [ "@rw" "@rain-world" ];
aliases = [
"@rw"
"@rain-world"
];
};
"Arch wiki" = mkBasicSearchEngine {
url = "https://wiki.archlinux.org/index.php";
param = "search";
aliases = [ "@aw" "@arch-wiki" ];
aliases = [
"@aw"
"@arch-wiki"
];
};
"Factorio wiki" = mkBasicSearchEngine {
url = "https://wiki.factorio.com/index.php";
param = "search";
aliases = [ "@fw" "@factorio-wiki" ];
aliases = [
"@fw"
"@factorio-wiki"
];
};
"Factorio mod portal" = mkBasicSearchEngine {
url = "https://mods.factorio.com/";
param = "query";
aliases = [ "@fm" "@factorio-mods" ];
aliases = [
"@fm"
"@factorio-mods"
];
};
"Moonythm" = mkBasicSearchEngine {
url = "https://search.moonythm.dev/search";
param = "q";
aliases = [ "@m" "@moonythm" ];
aliases = [
"@m"
"@moonythm"
];
icon = ../../../../common/icons/whoogle.webp;
};
@ -232,15 +293,12 @@ in
"widget.dmabuf.force-enabled" = true; # Required in recent Firefoxes
# }}}
# {{{ New tab page
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" =
false;
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" =
false;
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" = false;
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" = false;
"browser.newtabpage.activity-stream.feeds.snippets" = false;
"browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts.havePinned" = "";
"browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts.searchEngines" = "";
"browser.newtabpage.activity-stream.section.highlights.includePocket" =
false;
"browser.newtabpage.activity-stream.section.highlights.includePocket" = false;
"browser.newtabpage.activity-stream.showSponsored" = false;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
"browser.newtabpage.pinned" = false;
@ -310,7 +368,11 @@ in
stylix.targets.firefox = {
enable = true;
profileNames = [ config.home.username "desmos" "monkey-type" ];
profileNames = [
config.home.username
"desmos"
"monkey-type"
];
};
# {{{ Make firefox the default
@ -335,4 +397,3 @@ in
];
# }}}
}

View file

@ -1,4 +1,4 @@
{
programs.foot.enable=true;
stylix.targets.foot.enable=true;
programs.foot.enable = true;
stylix.targets.foot.enable = true;
}

View file

@ -1,4 +1,5 @@
{ config, pkgs, ... }: {
{ config, pkgs, ... }:
{
home.packages = [ pkgs.obsidian ];
# Start nvim with a custom class so our WM can move it to the correct workspace
@ -8,10 +9,13 @@
icon = "obsidian";
terminal = false;
exec =
let vaultDir = "${config.xdg.userDirs.extraConfig.XDG_PROJECTS_DIR}/stellar-sanctum";
let
vaultDir = "${config.xdg.userDirs.extraConfig.XDG_PROJECTS_DIR}/stellar-sanctum";
in
builtins.toString (pkgs.writeShellScript "obsidiantui" ''
wezterm start --class "org.wezfurlong.wezterm.obsidian" --cwd ${vaultDir} nvim
'');
builtins.toString (
pkgs.writeShellScript "obsidiantui" ''
foot -a Obsidian -D ${vaultDir} nvim
''
);
};
}

View file

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

View file

@ -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

View file

@ -1,5 +1,6 @@
# Common wayland stuff
{ lib, pkgs, ... }: {
{ lib, pkgs, ... }:
{
imports = [
./wlsunset.nix
./wlogout.nix
@ -35,9 +36,10 @@
| ${wl-copy}
${_ pkgs.libnotify} "Scanned qr code on area with output \"$(${wl-paste})\""
'';
# }}}
in
with pkgs; [
# }}}
with pkgs;
[
libnotify # Send notifications
wl-ocr # Custom ocr script
wl-qr # Custom qr scanner script

View file

@ -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;
wayland.windowManager.hyprland = {
@ -23,13 +35,14 @@
passes = config.satellite.theming.blur.passes;
contrast = config.satellite.theming.blur.contrast;
brightness = config.satellite.theming.blur.brightness;
noise = 0.05;
noise = 5.0e-2;
};
};
# }}}
# {{{ Monitors
# Configure monitor properties
monitor = lib.forEach config.satellite.monitors (m:
monitor = lib.forEach config.satellite.monitors (
m:
lib.concatStringsSep "," [
m.name
"${toString m.width}x${toString m.height}@${toString m.refreshRate}"
@ -39,11 +52,10 @@
);
# Map monitors to workspaces
workspace = lib.lists.concatMap
(m: lib.lists.optional (m.workspace != null) "${m.name},${m.workspace}")
config.satellite.monitors;
workspace = lib.lists.concatMap (
m: lib.lists.optional (m.workspace != null) "${m.name},${m.workspace}"
) config.satellite.monitors;
# }}}
};
};
}

View file

@ -21,6 +21,9 @@ layerrule = blur,logout_dialog
layerrule = blur,anyrun
layerrule = blur,waybar
layerrule = ignorezero,gtk-layer-shell
layerrule = ignorezero,osd
layerrule = ignorezero,waybar
layerrule = ignorezero,anyrun
layerrule = ignorezero,waybar
@ -51,7 +54,7 @@ animations {
}
# 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
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
# {{{ Automatically move stuff to workspaces
windowrulev2 = workspace 2 silent, title:^(.*Firefox.*)$
windowrulev2 = workspace 3 silent, title:^(.*(Disc|WebC)ord.*)$
windowrulev2 = workspace 3 silent, title:^(.*Element.*)$
windowrulev2 = workspace 6 silent, title:^(.*(S|s)pot(ify)?.*)$
windowrulev2 = workspace 7 silent, title:^(.*Obsidian.*)$
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)$
windowrulev2 = workspace 7 silent, class:^(.*Obsidian.*)$
windowrulev2 = workspace 8 silent, class:^(.*Smos.*)$
# }}}
# {{{ Idleinhibit rules
# - while firefox is fullscreen
@ -87,7 +84,7 @@ bind = $mod, C, killactive, # Kill current
bind = $mod, F, fullscreen, # Fullscreen
# Execute external things
bind = $mod, return, exec, wezterm
bind = $mod, return, exec, foot
bind = $mod, T, exec, wl-ocr
bind = $mod SHIFT, T, exec, wl-qr
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, P, exec, anyrun
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
# Work with the special workspace

View file

@ -1,4 +1,5 @@
{ config, ... }: {
{ config, ... }:
{
sops.secrets.wireless.sopsFile = ../../secrets.yaml;
# 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@";
"Konijntjes".psk = "@NL_PLACE_1_PODS_PASS@";
"InfoEdu12".psk = "@INFOEDU_PASS@";
"CNU19".psk = "@INFOEDU_PASS@";
"ZTE_F7A321".psk = "@MADALINA_PASS@";
# [Working solution](https://bbs.archlinux.org/viewtopic.php?id=271336)

View file

@ -43,7 +43,7 @@ main =
[ ("M-p", spawn "rofi -show drun"),
("M-g", spawn myBrowser),
("M-d", spawn "Discord"),
("M-v", spawn "wezterm start vimclip"),
("M-v", spawn "$TERMLAUNCH vimclip"),
("M-s", spawn "spectacle -rcb"),
("M-S-s", spawn "spectacle -mcb"),
("M-C-s", spawn "spectacle -ucb"),
@ -61,7 +61,7 @@ main =
myLayoutHook = spacingHook layouts
startupApps = []
-- [ (0, "wezterm"),
-- [ (0, "$TERMSTART"),
-- (1, "firefox"),
-- (2, "Discord")
-- ]

View file

@ -1,6 +1,9 @@
{ config, ... }:
{
imports = [ ../xserver.nix ../touchpad.nix ];
imports = [
../xserver.nix
../touchpad.nix
];
services.xserver = {
enable = true;
@ -9,13 +12,11 @@
enable = true;
enableContribAndExtras = true;
config = builtins.readFile (config.lib.stylix.colors {
template = builtins.readFile ./Main.hs;
});
# TODO: substitute the missing $TERM* variables
config = builtins.readFile (config.lib.stylix.colors { template = builtins.readFile ./Main.hs; });
};
# Proper wallpaper zooming
desktopManager.wallpaper.mode = "fill";
};
}

View file

@ -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]
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]
@ -35,8 +35,8 @@ sops:
WFd4ZFNHWG5Cakw5cU9MRE9HWHQ4THMKr/S7v1Oj3zQziMtI/NuFVm6AaJF5JV5U
sEr2nEptYFz4G6YL5psQGXHaKzQKBg+crgKRbYL4akhqT7pfYPC0bQ==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2024-07-08T00:25:56Z"
mac: ENC[AES256_GCM,data:v+p223kf9JLRMJ6moIpA5wZOemJY0+BSnX30MY8g28RBGaR+I7AbUHOrd+GUPAXLqwfqtrFdPt8pULT+fzuxL4wnlB9NPZxCYFMhSGGj8HysmDuytYXfSD1LZWD9fymE4KuyTZHv7I/coEM/iobbvutu9cmTKN05i1atjeh4B30=,iv:hPiQkvbeFjLyzTNoHMqqPikMPuDvT2X2iAo7JBlEpHY=,tag:fdHvvH+qPrv8UhwIA6aZSA==,type:str]
lastmodified: "2024-07-29T19:34:39Z"
mac: ENC[AES256_GCM,data:ruCV2JKgFN6BiTYjOwlhNmjDCh9ZRJ9E+H0x0uVevZnsTEcFlTUh5iNSiw3uJtcKcA4H4kuGPXlolyxuGVGsAhVFD4G3zR84i9TTHmGT4STC2dNebcA9VUXVnfPhEUFAExrPRxbEqvx3o0QPZIfGonPQzl3xhJzOPahYsRJOwTQ=,iv:rSuuhOgzOgE7DosgVEWDT1jenF3m+NqnCSEKjoCBrfE=,tag:7pAV4jKvJYG1vPqEEMqOPg==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.8.1

View file

@ -1,4 +1,10 @@
{ config, lib, pkgs, ... }: {
{
config,
lib,
pkgs,
...
}:
{
# {{{ Imports
imports = [
../common/global
@ -34,9 +40,14 @@
hardware.opengl.enable = true;
hardware.opentabletdriver.enable = true;
hardware.keyboard.qmk.enable = true;
powerManagement.cpuFreqGovernor = "ondemand";
services.tlp.enable = true;
services.thermald.enable = true;
powerManagement.cpuFreqGovernor = "performance";
services.tlp = {
enable = true;
settings = {
CPU_SCALING_GOVERNOR_ON_BAT = "performance";
CPU_SCALING_GOVERNOR_ON_AC = "performance";
};
};
# }}}
# {{{ A few ad-hoc programs
programs.kdeconnect.enable = true;

View file

@ -1,9 +1,9 @@
# (https://nixos.wiki/wiki/Module).
{
# example = import ./example.nix;
lua-lib = import ./lua-lib.nix;
lua-colorscheme = import ./lua-colorscheme.nix;
theming = import ./theming.nix;
toggles = import ./toggles.nix;
# example = ./example.nix;
lua-lib = ./lua-lib.nix;
lua-colorscheme = ./lua-colorscheme.nix;
theming = ./theming.nix;
toggles = ./toggles.nix;
}

View file

@ -2,11 +2,11 @@
{
# Personal things
dev = import ./dev.nix;
firefox = import ./firefox;
monitors = import ./monitors.nix;
satellite-persistence = import ./persistence.nix;
dev = ./dev.nix;
firefox = ./firefox;
monitors = ./monitors.nix;
satellite-persistence = ./persistence.nix;
# Should upstream
discord = import ./discord.nix;
discord = ./discord.nix;
}

View file

@ -1,12 +1,12 @@
# (https://nixos.wiki/wiki/Module).
{
# example = import ./example.nix;
cloudflared = import ./cloudflared.nix;
ports = import ./ports.nix;
nginx = import ./nginx.nix;
pilot = import ./pilot.nix;
pounce = import ./pounce.nix;
dns = import ./dns.nix;
dns-assertions = import ./dns-assertions.nix;
# example = ./example.nix;
cloudflared = ./cloudflared.nix;
ports = ./ports.nix;
nginx = ./nginx.nix;
pilot = ./pilot.nix;
pounce = ./pounce.nix;
dns = ./dns.nix;
dns-assertions = ./dns-assertions.nix;
}