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:
|
||||
|
||||
- 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
|
||||
|
|
|
@ -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
|
||||
''
|
||||
);
|
||||
};
|
||||
# }}}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ pkgs, ... }: {
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
./wezterm # terminal
|
||||
./dunst.nix # notifaction handler
|
||||
];
|
||||
|
||||
|
|
|
@ -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
|
|||
];
|
||||
# }}}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
programs.foot.enable=true;
|
||||
stylix.targets.foot.enable=true;
|
||||
programs.foot.enable = true;
|
||||
stylix.targets.foot.enable = true;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
''
|
||||
);
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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
|
||||
{ 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
|
||||
|
|
|
@ -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;
|
||||
# }}}
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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")
|
||||
-- ]
|
||||
|
|
|
@ -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";
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue