I should commit more frequently 🫣
This commit is contained in:
parent
d7e82621c8
commit
f1483e45f0
70 changed files with 2344 additions and 599 deletions
|
@ -1,5 +1,5 @@
|
|||
{pkgs, ...}: {
|
||||
home.packages = [pkgs.element-desktop];
|
||||
home.packages = [pkgs.schildichat-desktop];
|
||||
|
||||
systemd.user.services.element-desktop = {
|
||||
Install.WantedBy = ["graphical-session.target"];
|
||||
|
@ -10,7 +10,7 @@
|
|||
};
|
||||
|
||||
Service = {
|
||||
ExecStart = "${pkgs.element-desktop}/bin/element-desktop";
|
||||
ExecStart = "${pkgs.schildichat-desktop}/bin/schildichat-desktop";
|
||||
Restart = "on-failure";
|
||||
RestartSec = 3;
|
||||
};
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
{lib, ...}: {
|
||||
ccrEmacs.enable = true;
|
||||
home.sessionVariables.EDITOR = lib.mkForce "emacsclient";
|
||||
}
|
||||
|
|
|
@ -19,13 +19,9 @@
|
|||
privacy-badger
|
||||
ublock-origin
|
||||
tridactyl
|
||||
octotree
|
||||
octolinker
|
||||
org-capture
|
||||
browserpass
|
||||
# bypass-paywalls-clean
|
||||
ghosttext # or edit-with-emacs?
|
||||
# fx_cast # TODO make PR to rycee NUR repo
|
||||
];
|
||||
settings = {
|
||||
"browser.startup.homepage" = "https://google.it";
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
{age, ...}: {
|
||||
programs.git-workspace.enable = true;
|
||||
services.git-workspace = {
|
||||
enable = true;
|
||||
frequency = "04:00:00";
|
||||
|
|
|
@ -19,7 +19,7 @@ in {
|
|||
gpg.format = "ssh";
|
||||
commit.gpgsign = true;
|
||||
|
||||
core.editor = "hx";
|
||||
core.editor = "emacsclient";
|
||||
};
|
||||
|
||||
userName = config.name;
|
||||
|
@ -37,7 +37,7 @@ in {
|
|||
};
|
||||
|
||||
delta = {
|
||||
enable = false; # Playing with difftastic at the moment
|
||||
enable = false;
|
||||
options = {
|
||||
features = "decorations";
|
||||
delta = {
|
||||
|
@ -50,5 +50,9 @@ in {
|
|||
enable = true;
|
||||
background = "dark";
|
||||
};
|
||||
|
||||
diff-so-fancy.enable = false;
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [delta];
|
||||
}
|
||||
|
|
21
hmModules/gnome-keyring/default.nix
Normal file
21
hmModules/gnome-keyring/default.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
services.gnome-keyring = {
|
||||
enable = false; # Is this broken? https://github.com/nix-community/home-manager/issues/1454
|
||||
components = lib.mkForce [
|
||||
"secrets"
|
||||
"ssh"
|
||||
];
|
||||
};
|
||||
|
||||
home.packages = [pkgs.gcr]; # Needed in PATH
|
||||
|
||||
# Workaround
|
||||
wayland.windowManager.hyprland.extraConfig = ''
|
||||
exec-once = ${pkgs.gnome.gnome-keyring}/bin/gnome-keyring-daemon --start --foreground --components=secrets,ssh,pkcs
|
||||
'';
|
||||
}
|
|
@ -18,6 +18,6 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
home.sessionVariables.EDITOR = lib.mkForce "${config.programs.helix.package}/bin/helix";
|
||||
programs.nushell.environmentVariables.EDITOR = lib.mkForce config.home.sessionVariables.EDITOR;
|
||||
# home.sessionVariables.EDITOR = lib.mkForce "${config.programs.helix.package}/bin/helix";
|
||||
# programs.nushell.environmentVariables.EDITOR = lib.mkForce config.home.sessionVariables.EDITOR;
|
||||
}
|
||||
|
|
|
@ -9,6 +9,16 @@
|
|||
${pkgs.grim}/bin/grim -t png -g "$coords" "$filename"
|
||||
wl-copy -t image/png < $filename
|
||||
'';
|
||||
hyprland = config.wayland.windowManager.hyprland.package;
|
||||
switchMonitorScript = pkgs.writeShellScript "switch-monitor.sh" ''
|
||||
if [[ "$(${hyprland}/bin/hyprctl monitors) | grep '\sDP-[0-9]+'" ]]; then
|
||||
if [[ $1 == "open" ]]; then
|
||||
${hyprland}/bin/hyprctl keyword monitor "eDP-1,1920x1080,3760x230,1"
|
||||
else
|
||||
${hyprland}/bin/hyprctl keyword monitor "eDP-1,disable"
|
||||
fi
|
||||
fi
|
||||
'';
|
||||
in {
|
||||
imports = [
|
||||
./hyprpaper.nix
|
||||
|
@ -17,6 +27,7 @@ in {
|
|||
../mako
|
||||
../gammastep
|
||||
../kitty
|
||||
../wezterm
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [wl-clipboard];
|
||||
|
@ -41,6 +52,33 @@ in {
|
|||
};
|
||||
};
|
||||
|
||||
services.kanshi = {
|
||||
enable = false;
|
||||
systemdTarget = "hyprland-session.target";
|
||||
profiles = {
|
||||
undocked = {
|
||||
outputs = [
|
||||
{
|
||||
status = "enable";
|
||||
criteria = "eDP-1";
|
||||
}
|
||||
];
|
||||
};
|
||||
docked = {
|
||||
outputs = [
|
||||
{
|
||||
status = "disable";
|
||||
criteria = "eDP-1";
|
||||
}
|
||||
{
|
||||
status = "enable";
|
||||
criteria = "DP-1";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
|
@ -50,24 +88,31 @@ in {
|
|||
}
|
||||
}
|
||||
|
||||
monitor = DP-2, 1920x1200, 0x0, 1, transform, 3
|
||||
monitor = DP-1, 2560x1440, 1200x320, 1
|
||||
# monitor = DP-2, 1920x1200, 0x0, 1, transform, 3
|
||||
# monitor = DP-1, 2560x1440, 1200x320, 1
|
||||
# monitor = eDP-1, 1920x1080, 3760x230, 1
|
||||
|
||||
monitor = DP-2, 2560x1440, 1200x320, 1
|
||||
monitor = eDP-1, 1920x1080, 3760x230, 1
|
||||
|
||||
exec-once = ${config.programs.waybar.package}/bin/waybar
|
||||
bindl=,switch:off:Lid Switch,exec,${switchMonitorScript} open
|
||||
bindl=,switch:on:Lid Switch,exec,${switchMonitorScript} close
|
||||
|
||||
exec-once = ${config.services.mako.package}/bin/mako
|
||||
exec-once = ${pkgs.hyprpaper}/bin/hyprpaper
|
||||
exec-once = ${config.programs.thunderbird.package}/bin/thunderbird
|
||||
|
||||
windowrulev2 = tile, class:^(Spotify)$
|
||||
windowrulev2 = workspace 9, class:^(Spotify)$
|
||||
windowrulev2 = workspace 8, class:thunderbird
|
||||
windowrulev2 = tile, class:^(fluffychat)$
|
||||
windowrulev2 = workspace 8, class:^(fluffychat)$
|
||||
windowrulev2 = tile, class:^(WhatsApp for Linux)$
|
||||
windowrulev2 = workspace 7, class:^(WhatsApp for Linux)$
|
||||
|
||||
bind = SUPER, b, exec, firefox
|
||||
bind = SUPER SHIFT, b , exec, ${pkgs.waypipe}/bin/waypipe --compress lz4=10 ssh mothership.fleet firefox
|
||||
bind = SUPER SHIFT, RETURN, exec, ${config.programs.kitty.package}/bin/kitty ssh mothership.fleet
|
||||
bind = SUPER, m, exec, ${config.programs.kitty.package}/bin/kitty mosh mothership.fleet
|
||||
bind = SUPER, RETURN, exec, ${config.programs.kitty.package}/bin/kitty
|
||||
bind = SUPER SHIFT, RETURN, exec, ${config.programs.wezterm.package}/bin/wezterm ssh mothership.fleet
|
||||
bind = SUPER, m, exec, ${config.programs.wezterm.package}/bin/wezterm start -- mosh mothership.fleet
|
||||
bind = SUPER, RETURN, exec, ${config.programs.wezterm.package}/bin/wezterm
|
||||
bind = SUPER, x, exec, emacsclient -c
|
||||
bind = SUPER, y, exec, ${pkgs.waypipe}/bin/waypipe --compress lz4=10 ssh mothership.fleet emacsclient -c
|
||||
bind = SUPER, d, exec, ${pkgs.fuzzel}/bin/fuzzel --background-color=253559cc --border-radius=5 --border-width=0
|
||||
|
@ -120,10 +165,10 @@ in {
|
|||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
|
||||
rounding = 4
|
||||
blur = true
|
||||
blur_size = 8
|
||||
blur_passes = 1
|
||||
blur_new_optimizations = true
|
||||
# blur = true
|
||||
# blur_size = 8
|
||||
# blur_passes = 1
|
||||
# blur_new_optimizations = true
|
||||
|
||||
drop_shadow = true
|
||||
shadow_range = 4
|
||||
|
|
|
@ -4,7 +4,8 @@
|
|||
settings = {
|
||||
git.paging = {
|
||||
colorArg = "always";
|
||||
useConfig = true;
|
||||
useConfig = false;
|
||||
# pager = "${pkgs.diff-so-fancy}/bin/diff-so-fancy";
|
||||
pager = "${pkgs.delta}/bin/delta --dark --paging=never";
|
||||
};
|
||||
};
|
||||
|
|
18
hmModules/nheko/default.nix
Normal file
18
hmModules/nheko/default.nix
Normal file
|
@ -0,0 +1,18 @@
|
|||
{pkgs, ...}: {
|
||||
home.packages = [pkgs.nheko];
|
||||
|
||||
# systemd.user.services.nheko = {
|
||||
# Install.WantedBy = ["graphical-session.target"];
|
||||
|
||||
# Unit = {
|
||||
# Description = "Nheko";
|
||||
# PartOf = ["graphical-session.target"];
|
||||
# };
|
||||
|
||||
# Service = {
|
||||
# ExecStart = "${pkgs.nheko}/bin/nheko";
|
||||
# Restart = "on-failure";
|
||||
# RestartSec = 3;
|
||||
# };
|
||||
# };
|
||||
}
|
13
hmModules/pantalaimon/default.nix
Normal file
13
hmModules/pantalaimon/default.nix
Normal file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
services.pantalaimon = {
|
||||
enable = true;
|
||||
settings = {
|
||||
local-matrix = {
|
||||
Homeserver = "https://nixos.dev";
|
||||
ListenAddress = "127.0.0.1";
|
||||
ListenPort = 8008;
|
||||
};
|
||||
};
|
||||
};
|
||||
systemd.user.services.pantalaimon.Unit.Requires = ["dbus.socket"];
|
||||
}
|
|
@ -41,7 +41,7 @@
|
|||
|
||||
# Playing with it sometimes
|
||||
programs.nushell = {
|
||||
enable = true;
|
||||
enable = false;
|
||||
configFile.text = ''
|
||||
let carapace_completer = {|spans|
|
||||
carapace $spans.0 nushell $spans | from json
|
||||
|
@ -93,7 +93,7 @@
|
|||
};
|
||||
|
||||
programs.zsh = {
|
||||
enable = false; # Disabled in favor on nushell but still here for posterity
|
||||
enable = true;
|
||||
enableAutosuggestions = true;
|
||||
enableCompletion = true;
|
||||
enableSyntaxHighlighting = true;
|
||||
|
@ -117,17 +117,42 @@
|
|||
"thefuck"
|
||||
];
|
||||
};
|
||||
plugins = [
|
||||
{
|
||||
name = "fzf-tab";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "Aloxaf";
|
||||
repo = "fzf-tab";
|
||||
rev = "c2b4aa5ad2532cca91f23908ac7f00efb7ff09c9";
|
||||
sha256 = "sha256-gvZp8P3quOtcy1Xtt1LAW1cfZ/zCtnAmnWqcwrKel6w=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "fzf-tab";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "Aloxaf";
|
||||
repo = "fzf-tab";
|
||||
rev = "c2b4aa5ad2532cca91f23908ac7f00efb7ff09c9";
|
||||
sha256 = "sha256-gvZp8P3quOtcy1Xtt1LAW1cfZ/zCtnAmnWqcwrKel6w=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "fast-syntax-highlighting";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "zdharma-continuum";
|
||||
repo = "fast-syntax-highlighting";
|
||||
rev = "13d7b4e63468307b6dcb2dadf6150818f242cbff";
|
||||
sha256 = "sha256-AmsexwVombgVmRvl4O9Kd/WbnVJHPTXETxBv18PDHz4=";
|
||||
};
|
||||
}
|
||||
];
|
||||
shellAliases = {
|
||||
"cat" = "bat";
|
||||
"emw" = "emacsclient -c";
|
||||
"emnw" = "emacsclient -c -nw";
|
||||
"pass-clone" = "[ -d .password-store ] && echo 'Password store archive already exists' || git clone git@git.sr.ht:~zrsk/pass ~/.password-store";
|
||||
"getpass" = "pass show $(find .password-store/ -name \"*.gpg\" | sed \"s/\\.password-store\\/\\(.*\\)\\.gpg$/\\1/g\" | fzf) | wl-copy; ((sleep 60 && wl-copy --clear) &)";
|
||||
"n" = "nom";
|
||||
"em" = "TERM=wezterm emacsclient -nw";
|
||||
};
|
||||
loginExtra = "[[ -z $DISPLAY && $TTY = /dev/tty1 ]] && exec sway";
|
||||
loginExtra = "[[ -z $DISPLAY && $TTY = /dev/tty1 ]] && exec dbus-run-session Hyprland";
|
||||
envExtra = ''
|
||||
[ $TERM = "dumb" ] && unsetopt zle && PS1='$ ' # for Emacs TRAMP mode
|
||||
# [ $TERM = "dumb" ] && unsetopt zle && PS1='$ ' # for Emacs TRAMP mode
|
||||
'';
|
||||
initExtra = ''
|
||||
export CACHIX_AUTH_TOKEN=$(cat ${age.secrets.cachix-personal-token.path})
|
||||
|
@ -149,6 +174,8 @@
|
|||
zsh-completions
|
||||
nix-zsh-completions
|
||||
carapace # used by nushell
|
||||
nil # TODO probably not best place
|
||||
terraform-lsp # TODO probably not best place
|
||||
# nom # FIXME disable on aarch64-linux, breaks everything :(
|
||||
];
|
||||
}
|
||||
|
|
|
@ -1,3 +1,20 @@
|
|||
{pkgs, ...}: {
|
||||
home.packages = [pkgs.nur.repos.nltch.spotify-adblock.spotify-adblocked];
|
||||
{pkgs, ...}: let
|
||||
spotify-adblock = pkgs.nur.repos.nltch.spotify-adblock;
|
||||
in {
|
||||
home.packages = [spotify-adblock];
|
||||
|
||||
systemd.user.services.spotify-adblocked = {
|
||||
Install.WantedBy = ["graphical-session.target"];
|
||||
|
||||
Unit = {
|
||||
Description = "Spotify";
|
||||
PartOf = ["graphical-session.target"];
|
||||
};
|
||||
|
||||
Service = {
|
||||
ExecStart = "${spotify-adblock}/bin/spotify";
|
||||
Restart = "on-failure";
|
||||
RestartSec = 3;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -55,5 +55,8 @@
|
|||
};
|
||||
|
||||
# Otherwise it will start only after Sway and will not work with Hyprland
|
||||
systemd.user.services.swayidle.Unit.PartOf = lib.mkForce [];
|
||||
systemd.user.services.swayidle = {
|
||||
Unit.PartOf = lib.mkForce [];
|
||||
Install.WantedBy = lib.mkForce ["hyprland-session.target"];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,12 +1,15 @@
|
|||
{pkgs, ...}: {
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
fleetFlake,
|
||||
...
|
||||
}: {
|
||||
programs.waybar = {
|
||||
package = pkgs.waybar.overrideAttrs (old: {
|
||||
mesonFlags = old.mesonFlags ++ ["-Dexperimental=true"];
|
||||
patchPhase = ''
|
||||
sed -i -e 's/zext_workspace_handle_v1_activate(workspace_handle_);/const std::string command = "hyprctl dispatch workspace " + name_;\n\tsystem(command.c_str());/g' src/modules/wlr/workspace_manager.cpp
|
||||
'';
|
||||
});
|
||||
# package = fleetFlake.packages.${pkgs.system}.waybar-hyprland;
|
||||
enable = true;
|
||||
systemd = {
|
||||
enable = true;
|
||||
};
|
||||
style = builtins.readFile ./style.css;
|
||||
settings = {
|
||||
mainBar = {
|
||||
|
@ -17,7 +20,7 @@
|
|||
|
||||
modules-left = [
|
||||
"wlr/mode"
|
||||
"wlr/workspaces"
|
||||
"hyprland/workspaces"
|
||||
];
|
||||
modules-center = ["wlr/window"];
|
||||
modules-right = [
|
||||
|
@ -31,7 +34,7 @@
|
|||
"clock"
|
||||
];
|
||||
|
||||
"wlr/workspaces" = {
|
||||
"hyprland/workspaces" = {
|
||||
all-outputs = true;
|
||||
disable-scroll-wraparound = true;
|
||||
# format = "{icon}";
|
||||
|
@ -56,8 +59,8 @@
|
|||
format = "{capacity}% {icon}";
|
||||
format-alt = "{time} {icon}";
|
||||
format-charging = "{capacity}% ";
|
||||
format-icons = ["" "" "" "" ""];
|
||||
format-plugged = "{capacity}% ";
|
||||
format-icons = [" " " " " " " " " "];
|
||||
format-plugged = "{capacity}% ";
|
||||
states = {
|
||||
critical = 15;
|
||||
warning = 30;
|
||||
|
@ -76,9 +79,9 @@
|
|||
interval = 1;
|
||||
format-alt = "{ifname}: {ipaddr}/{cidr}";
|
||||
format-disconnected = "Disconnected ⚠";
|
||||
format-ethernet = "{ifname}: {ipaddr}/{cidr} up: {bandwidthUpBits} down: {bandwidthDownBits}";
|
||||
format-ethernet = "{ifname}: {ipaddr}/{cidr} up: {bandwidthUpBits} down: {bandwidthDownBits}";
|
||||
format-linked = "{ifname} (No IP) ";
|
||||
format-wifi = "{essid} ({signalStrength}%) ";
|
||||
format-wifi = "{essid} ({signalStrength}%) {ipaddr}/{cidr} up: {bandwidthUpBits} down: {bandwidthDownBits}";
|
||||
};
|
||||
pulseaudio = {
|
||||
format = "{volume}% {icon} {format_source}";
|
||||
|
@ -86,9 +89,9 @@
|
|||
format-bluetooth-muted = " {icon} {format_source}";
|
||||
format-icons = {
|
||||
car = "";
|
||||
default = ["" "" ""];
|
||||
default = [" " " " " "];
|
||||
handsfree = "";
|
||||
headphones = "";
|
||||
headphones = " ";
|
||||
headset = "";
|
||||
phone = "";
|
||||
portable = "";
|
||||
|
@ -108,4 +111,7 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
|
||||
# waybar needs the hyprctl binary in PATH when started in hyprland
|
||||
systemd.user.services.waybar.Service.Environment = "PATH=${lib.makeBinPath [pkgs.hyprland]}";
|
||||
}
|
||||
|
|
30
hmModules/wezterm/default.nix
Normal file
30
hmModules/wezterm/default.nix
Normal file
|
@ -0,0 +1,30 @@
|
|||
{...}: {
|
||||
programs.wezterm = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
return {
|
||||
font = wezterm.font_with_fallback {
|
||||
{
|
||||
family = 'Iosevka Comfy',
|
||||
stretch = 'Expanded',
|
||||
weight = 'Regular',
|
||||
harfbuzz_features = { 'dlig=1' }
|
||||
},
|
||||
};
|
||||
font_size = 13;
|
||||
allow_square_glyphs_to_overflow_width = "Always";
|
||||
color_scheme = "Dracula (Official)";
|
||||
window_background_opacity = 1;
|
||||
enable_tab_bar = false;
|
||||
hide_mouse_cursor_when_typing = false;
|
||||
window_close_confirmation = "NeverPrompt";
|
||||
window_padding = {
|
||||
left = '1cell',
|
||||
right = '1cell',
|
||||
top = '0.5cell',
|
||||
bottom = '0.5cell',
|
||||
};
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
18
hmModules/whatsapp/default.nix
Normal file
18
hmModules/whatsapp/default.nix
Normal file
|
@ -0,0 +1,18 @@
|
|||
{pkgs, ...}: {
|
||||
home.packages = [pkgs.whatsapp-for-linux];
|
||||
|
||||
systemd.user.services.whatsapp = {
|
||||
Install.WantedBy = ["graphical-session.target"];
|
||||
|
||||
Unit = {
|
||||
Description = "Whatsapp";
|
||||
PartOf = ["graphical-session.target"];
|
||||
};
|
||||
|
||||
Service = {
|
||||
ExecStart = "${pkgs.whatsapp-for-linux}/bin/whatsapp-for-linux";
|
||||
Restart = "on-failure";
|
||||
RestartSec = 3;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,7 +1,12 @@
|
|||
{
|
||||
{pkgs, ...}: {
|
||||
xdg = {
|
||||
enable = true;
|
||||
mimeApps.enable = true;
|
||||
mimeApps.defaultApplications = {
|
||||
"text/html" = ["firefox.desktop"];
|
||||
"x-scheme-handler/http" = ["firefox.desktop"];
|
||||
"x-scheme-handler/https" = ["firefox.desktop"];
|
||||
};
|
||||
desktopEntries = {
|
||||
org-protocol = {
|
||||
name = "org-protocol";
|
||||
|
@ -10,6 +15,14 @@
|
|||
terminal = false;
|
||||
mimeType = ["x-scheme-handler/org-protocol"];
|
||||
};
|
||||
firefox = {
|
||||
name = "firefox";
|
||||
genericName = "Firefox protocol";
|
||||
exec = "firefox -- %U";
|
||||
terminal = false;
|
||||
mimeType = ["text/html" "text/xml" "text/uri"];
|
||||
};
|
||||
};
|
||||
};
|
||||
home.packages = [pkgs.xdg-utils];
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue