From 3a4d400fef6385d16d830b6b38d7aa9ba1d616f0 Mon Sep 17 00:00:00 2001 From: prescientmoon Date: Mon, 5 Aug 2024 20:31:34 +0200 Subject: [PATCH] Move away from wezterm --- README.md | 5 +- .../cli/productivity/smos/default.nix | 26 ++- home/features/desktop/default.nix | 4 +- home/features/desktop/firefox/default.nix | 149 +++++++++----- home/features/desktop/foot.nix | 4 +- home/features/desktop/obsidian.nix | 14 +- home/features/desktop/wezterm/default.nix | 10 - home/features/desktop/wezterm/wezterm.lua | 184 ------------------ home/features/wayland/global.nix | 8 +- home/features/wayland/hyprland/default.nix | 28 ++- home/features/wayland/hyprland/hyprland.conf | 19 +- .../nixos/common/global/wireless/default.nix | 4 +- .../nixos/common/optional/xorg/xmonad/Main.hs | 4 +- .../common/optional/xorg/xmonad/default.nix | 11 +- hosts/nixos/common/secrets.yaml | 6 +- hosts/nixos/tethys/default.nix | 19 +- modules/common/default.nix | 10 +- modules/home-manager/default.nix | 10 +- modules/nixos/default.nix | 16 +- 19 files changed, 217 insertions(+), 314 deletions(-) delete mode 100644 home/features/desktop/wezterm/default.nix delete mode 100644 home/features/desktop/wezterm/wezterm.lua diff --git a/README.md b/README.md index 44f22f1..9b07aff 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/home/features/cli/productivity/smos/default.nix b/home/features/cli/productivity/smos/default.nix index 5266392..5206edd 100644 --- a/home/features/cli/productivity/smos/default.nix +++ b/home/features/cli/productivity/smos/default.nix @@ -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 { sops.secrets.smos_password.sopsFile = ../secrets.yaml; - # {{{ Smos config + # {{{ Smos config programs.smos = { inherit workflowDir; @@ -31,10 +37,8 @@ in }; }; # }}} - # {{{ Storage & secrets - satellite.persistence.at.data.apps.smos.directories = [ - config.programs.smos.workflowDir - ]; + # {{{ Storage & secrets + 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 + '' + ); }; # }}} } diff --git a/home/features/desktop/default.nix b/home/features/desktop/default.nix index 4bd2d4b..145731d 100644 --- a/home/features/desktop/default.nix +++ b/home/features/desktop/default.nix @@ -1,6 +1,6 @@ -{ pkgs, ... }: { +{ pkgs, ... }: +{ imports = [ - ./wezterm # terminal ./dunst.nix # notifaction handler ]; diff --git a/home/features/desktop/firefox/default.nix b/home/features/desktop/firefox/default.nix index 4b4c049..9d1c7f6 100644 --- a/home/features/desktop/firefox/default.nix +++ b/home/features/desktop/firefox/default.nix @@ -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; }; @@ -231,16 +292,13 @@ in "media.ffmpeg.vaapi.enabled" = true; "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; + # {{{ 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.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 ]; # }}} } - diff --git a/home/features/desktop/foot.nix b/home/features/desktop/foot.nix index a026bff..79dbfae 100644 --- a/home/features/desktop/foot.nix +++ b/home/features/desktop/foot.nix @@ -1,4 +1,4 @@ { - programs.foot.enable=true; - stylix.targets.foot.enable=true; + programs.foot.enable = true; + stylix.targets.foot.enable = true; } diff --git a/home/features/desktop/obsidian.nix b/home/features/desktop/obsidian.nix index 64098dd..c78b684 100644 --- a/home/features/desktop/obsidian.nix +++ b/home/features/desktop/obsidian.nix @@ -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 + '' + ); }; } diff --git a/home/features/desktop/wezterm/default.nix b/home/features/desktop/wezterm/default.nix deleted file mode 100644 index 9157587..0000000 --- a/home/features/desktop/wezterm/default.nix +++ /dev/null @@ -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"; -} diff --git a/home/features/desktop/wezterm/wezterm.lua b/home/features/desktop/wezterm/wezterm.lua deleted file mode 100644 index 42781d9..0000000 --- a/home/features/desktop/wezterm/wezterm.lua +++ /dev/null @@ -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 diff --git a/home/features/wayland/global.nix b/home/features/wayland/global.nix index 9c0a684..23d1024 100644 --- a/home/features/wayland/global.nix +++ b/home/features/wayland/global.nix @@ -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 diff --git a/home/features/wayland/hyprland/default.nix b/home/features/wayland/hyprland/default.nix index 0fb64a7..d456542 100644 --- a/home/features/wayland/hyprland/default.nix +++ b/home/features/wayland/hyprland/default.nix @@ -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; # }}} }; }; } - diff --git a/home/features/wayland/hyprland/hyprland.conf b/home/features/wayland/hyprland/hyprland.conf index ce2a97d..6d0cd1f 100644 --- a/home/features/wayland/hyprland/hyprland.conf +++ b/home/features/wayland/hyprland/hyprland.conf @@ -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 diff --git a/hosts/nixos/common/global/wireless/default.nix b/hosts/nixos/common/global/wireless/default.nix index 1753601..03da89c 100644 --- a/hosts/nixos/common/global/wireless/default.nix +++ b/hosts/nixos/common/global/wireless/default.nix @@ -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) diff --git a/hosts/nixos/common/optional/xorg/xmonad/Main.hs b/hosts/nixos/common/optional/xorg/xmonad/Main.hs index c3654df..41333ba 100644 --- a/hosts/nixos/common/optional/xorg/xmonad/Main.hs +++ b/hosts/nixos/common/optional/xorg/xmonad/Main.hs @@ -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") -- ] diff --git a/hosts/nixos/common/optional/xorg/xmonad/default.nix b/hosts/nixos/common/optional/xorg/xmonad/default.nix index ab0695a..283c882 100644 --- a/hosts/nixos/common/optional/xorg/xmonad/default.nix +++ b/hosts/nixos/common/optional/xorg/xmonad/default.nix @@ -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"; }; } - diff --git a/hosts/nixos/common/secrets.yaml b/hosts/nixos/common/secrets.yaml index 2d9d7dd..d0070c0 100644 --- a/hosts/nixos/common/secrets.yaml +++ b/hosts/nixos/common/secrets.yaml @@ -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 diff --git a/hosts/nixos/tethys/default.nix b/hosts/nixos/tethys/default.nix index e7ba32e..5d08556 100644 --- a/hosts/nixos/tethys/default.nix +++ b/hosts/nixos/tethys/default.nix @@ -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; diff --git a/modules/common/default.nix b/modules/common/default.nix index c71d6aa..5d5f3eb 100644 --- a/modules/common/default.nix +++ b/modules/common/default.nix @@ -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; } diff --git a/modules/home-manager/default.nix b/modules/home-manager/default.nix index 9d40598..37e3fb0 100644 --- a/modules/home-manager/default.nix +++ b/modules/home-manager/default.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; } diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index e4e197f..4f5f73f 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.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; }