Compare commits

...

10 commits

Author SHA1 Message Date
241bc58783
wezterm ctrl+click to url 2024-12-21 18:08:48 -08:00
91aa5c41f0
that order makes more sense 2024-12-21 18:08:39 -08:00
56358b2922
use a different polkit agent, module 2024-12-21 17:14:49 -08:00
1096b13241
make dunst opaque 2024-12-20 07:39:14 -08:00
2e94966690
make hypridle more agnostic 2024-12-20 07:23:50 -08:00
87d48e27b0
keybinds 2024-12-19 17:24:35 -08:00
96b2e6073d
new lockscreen 2024-12-18 17:42:39 -08:00
473362b5f8
move some things around 2024-12-18 16:55:30 -08:00
af25753785
a hyprland tweak 2024-12-17 01:56:14 -08:00
c8af85d481
update waybar 2024-12-17 01:20:27 -08:00
20 changed files with 141 additions and 80 deletions

View file

@ -18,10 +18,11 @@ each host should have these files:
## todo ## todo
- multi architecture configuration ([nix-systems](https://github.com/nix-systems/nix-systems)?) - multi architecture configuration ([nix-systems](https://github.com/nix-systems/nix-systems)?)
- divide steam and gamemode?
- hidpi option ? mostly auto these days though - hidpi option ? mostly auto these days though
- better theming for hyprlock, rofi, dunst (accent for hyprlock & dunst, variants for rofi) - better theming for hyprlock, rofi, dunst (accent for hyprlock & dunst, variants for rofi)
- some way for border radius, border, tranparency theme options - some way for border radius, border, tranparency theme options
- tags for pip and popups in hyprland config - tags for pip and popups in hyprland config
- make wl-clip-persist, polkit agent, and networkmanager applet systemd services? - make wl-clip-persist and networkmanager applet systemd services?
- gtk cursors are MESSED UP. top priority rn - gtk cursors are MESSED UP. top priority rn
- niri.. yum
- do lockscreen better somehow

BIN
assets/lockscreen.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 674 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 MiB

18
flake.lock generated
View file

@ -86,11 +86,11 @@
"flake-compat_2": { "flake-compat_2": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1696426674, "lastModified": 1732722421,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", "narHash": "sha256-HRJ/18p+WoXpWJkcdsk9St5ZiukCqSDgbOGFa8Okehg=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "rev": "9ed2ac151eada2306ca8c418ebd97807bb08f6ac",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -706,11 +706,11 @@
}, },
"nixpkgs_6": { "nixpkgs_6": {
"locked": { "locked": {
"lastModified": 1720957393, "lastModified": 1732837521,
"narHash": "sha256-oedh2RwpjEa+TNxhg5Je9Ch6d3W1NKi7DbRO1ziHemA=", "narHash": "sha256-jNRNr49UiuIwaarqijgdTR2qLPifxsVhlJrKzQ8XUIE=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "693bc46d169f5af9c992095736e82c3488bf7dbb", "rev": "970e93b9f82e2a0f3675757eb0bfc73297cc6370",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -810,11 +810,11 @@
"nixpkgs": "nixpkgs_6" "nixpkgs": "nixpkgs_6"
}, },
"locked": { "locked": {
"lastModified": 1721250245, "lastModified": 1733561910,
"narHash": "sha256-/JW3WnRLpfz8j+9Zc9YkK63i8DjHrKwv9PWKIMz3MVI=", "narHash": "sha256-TkyWMLnLd5QhAlfAGtuU3n8Gtl2Gp4+8Ye/rE4hs46A=",
"owner": "Alexays", "owner": "Alexays",
"repo": "Waybar", "repo": "Waybar",
"rev": "15e1547661bfc5fe9b3d45bb0d9cea11cf07db7f", "rev": "e959f1d2300c5f7fcc818630c9eae59d834024ce",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -53,6 +53,7 @@
swww.enable = true; swww.enable = true;
gnome-keyring.enable = true; gnome-keyring.enable = true;
mate-polkit.enable = true;
dunst.enable = true; dunst.enable = true;
rofi.enable = true; rofi.enable = true;
nwg-drawer.enable = true; nwg-drawer.enable = true;
@ -76,6 +77,7 @@
system.fish.enable = true; system.fish.enable = true;
system.syncthing.enable = true; system.syncthing.enable = true;
system.flatpak.enable = true; system.flatpak.enable = true;
system.mpv.enable = true;
# editors # editors
editors.micro.enable = true; editors.micro.enable = true;
editors.vscode.enable = true; editors.vscode.enable = true;
@ -84,12 +86,11 @@
# distractions # distractions
distractions.discord.enable = true; distractions.discord.enable = true;
distractions.discord.vesktop = true; distractions.discord.vesktop = true;
distractions.gamemode.enable = true;
distractions.steam.enable = true; distractions.steam.enable = true;
# tools # tools
tools.gpg.enable = true; tools.gpg.enable = true;
tools.mpv.enable = true;
tools.rbw.enable = true; tools.rbw.enable = true;
tools.noisetorch.enable = true;
}; };
}; };
} }

View file

@ -70,17 +70,17 @@ in {
}; };
urgency_low = { urgency_low = {
background = "#${base00}cc"; background = "#${base00}FF";
foreground = "#${base05}"; foreground = "#${base05}";
}; };
urgency_normal = { urgency_normal = {
background = "#${base00}cc"; background = "#${base00}FF";
foreground = "#${base05}"; foreground = "#${base05}";
}; };
urgency_critical = { urgency_critical = {
background = "#${base00}cc"; background = "#${base00}FF";
foreground = "#${base05}"; foreground = "#${base05}";
frame_color = "#${base08}"; # base16 spec says red frame_color = "#${base08}"; # base16 spec says red
}; };

View file

@ -15,9 +15,7 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
hm.home.packages = [ cfg.package ]; hm.home.packages = [ cfg.package ];
hm.services.hypridle = let hm.services.hypridle = {
hyprctl = "${config.modules.desktop.hyprland.package}/bin/hyprctl";
in {
enable = true; enable = true;
package = cfg.package; package = cfg.package;
@ -27,7 +25,6 @@ in {
unlock_cmd = "${pkgs.procps}/bin/pkill -USR1 hyprlock"; unlock_cmd = "${pkgs.procps}/bin/pkill -USR1 hyprlock";
before_sleep_cmd = "${pkgs.systemd}/bin/loginctl lock-session"; # lock the screen before sleeping before_sleep_cmd = "${pkgs.systemd}/bin/loginctl lock-session"; # lock the screen before sleeping
after_sleep_cmd = "${hyprctl} dispatch dpms on"; # turn on the screen to avoid moving mouse/pressing key
}; };
listener = [ listener = [
@ -41,11 +38,6 @@ in {
on-timeout = "${lib.getExe pkgs.brightnessctl} -d '*:kbd_backlight' -s set 0"; # turn off keyboard backlight, save state on-timeout = "${lib.getExe pkgs.brightnessctl} -d '*:kbd_backlight' -s set 0"; # turn off keyboard backlight, save state
on-resume = "${lib.getExe pkgs.brightnessctl} -d '*:kbd_backlight' -r"; # restore previous keyboard backlight state on-resume = "${lib.getExe pkgs.brightnessctl} -d '*:kbd_backlight' -r"; # restore previous keyboard backlight state
} }
{
timeout = 90; # 1.5 min
on-timeout = "${hyprctl} dispatch dpms off"; # turn off screen
on-resume = "${hyprctl} dispatch dpms on"; # turn it back on
}
{ {
timeout = 60 * 2; # 2 min timeout = 60 * 2; # 2 min
on-timeout = "${pkgs.systemd}/bin/loginctl lock-session"; # lock computer on-timeout = "${pkgs.systemd}/bin/loginctl lock-session"; # lock computer
@ -54,7 +46,13 @@ in {
timeout = 60 * 15; # 15 min timeout = 60 * 15; # 15 min
on-timeout = "${pkgs.systemd}/bin/systemctl suspend"; # sleep/suspend on-timeout = "${pkgs.systemd}/bin/systemctl suspend"; # sleep/suspend
} }
]; ] ++ optional config.modules.desktop.hyprland.enable (let
hyprctl = "${config.modules.desktop.hyprland.package}/bin/hyprctl";
in {
timeout = 90; # 1.5 min
on-timeout = "${hyprctl} dispatch dpms off"; # turn off screen
on-resume = "${hyprctl} dispatch dpms on"; # turn it back on
});
}; };
}; };
}; };

View file

@ -97,14 +97,17 @@ in {
mode="$1" mode="$1"
case "$mode" in case "$mode" in
fullscreen) screen)
mode="output" mode="output"
;; ;;
area) area)
mode="area" mode="area"
;; ;;
window)
mode="active"
;;
*) *)
echo "usage: $0 [fullscreen|area]" >&2 echo "usage: $0 [screen|area|window]" >&2
exit 2 exit 2
;; ;;
esac esac
@ -126,17 +129,26 @@ in {
;; ;;
esac esac
''; '';
pickerScript = pkgs.writeShellScript "color-picker" ''
${lib.getExe pkgs.zenity} --color-selection --color $(${lib.getExe pkgs.hyprpicker})
'';
in [ in [
"$mod, Q, killactive, " "$mod, Q, killactive, "
"$mod, F, togglefloating, " "$mod, F, togglefloating, "
"$mod, P, pseudo, " # dwindle "$mod, P, pseudo, " # dwindle
"$mod, J, togglesplit, " # dwindle "$mod, J, togglesplit, " # dwindle
"$mod SHIFT, F, fullscreen, "
# move focus with mod + arrow keys # move focus with mod + arrow keys
"$mod, left, movefocus, l" "$mod, left, movefocus, l"
"$mod, right, movefocus, r" "$mod, right, movefocus, r"
"$mod, up, movefocus, u" "$mod, up, movefocus, u"
"$mod, down, movefocus, d" "$mod, down, movefocus, d"
# move windows with mod + shift + arrow keys
"$mod SHIFT, left, movewindow, l"
"$mod SHIFT, right, movewindow, r"
"$mod SHIFT, up, movewindow, u"
"$mod SHIFT, down, movewindow, d"
# example special workspace (scratchpad) # example special workspace (scratchpad)
"$mod, grave, togglespecialworkspace, magic" "$mod, grave, togglespecialworkspace, magic"
@ -158,9 +170,14 @@ in {
# area # area
", Print, exec, ${screenshotScript} area" ", Print, exec, ${screenshotScript} area"
"$mod SHIFT, S, exec, ${screenshotScript} area" "$mod SHIFT, S, exec, ${screenshotScript} area"
# fullscreen # screen
", Print, exec, ${screenshotScript} fullscreen" "CTRL, Print, exec, ${screenshotScript} screen"
"$mod SHIFT CTRL, S, exec, ${screenshotScript} fullscreen" "$mod SHIFT CTRL, S, exec, ${screenshotScript} screen"
# window
"ALT, Print, exec, ${screenshotScript} window"
"$mod SHIFT ALT, S, exec, ${screenshotScript} window"
# pick color
"$mod SHIFT, C, exec, ${pickerScript}"
", XF86LaunchA, exec, ${screenshotScript} area" ", XF86LaunchA, exec, ${screenshotScript} area"
", XF86LaunchB, exec, ${lib.getExe pkgs.rofi-rbw-wayland} -a copy -t password --clear-after 20" ", XF86LaunchB, exec, ${lib.getExe pkgs.rofi-rbw-wayland} -a copy -t password --clear-after 20"
@ -200,7 +217,6 @@ in {
exec-once = [ exec-once = [
"${lib.getExe pkgs.networkmanagerapplet}" # network applet "${lib.getExe pkgs.networkmanagerapplet}" # network applet
"${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1" # polkit agent
"${lib.getExe pkgs.wl-clip-persist} --clipboard regular" # to fix wl clipboards disappearing "${lib.getExe pkgs.wl-clip-persist} --clipboard regular" # to fix wl clipboards disappearing
]; ];
@ -343,14 +359,10 @@ in {
}; };
dwindle = { dwindle = {
pseudotile = "yes"; # master swtich for pseudotiling. enabling is mod + P in the keybinds section pseudotile = "yes"; # master switch for pseudotiling. enabling is mod + P in the keybinds section
preserve_split = "yes"; preserve_split = "yes";
}; };
master = {
new_status = "master";
};
gestures = { gestures = {
workspace_swipe = true; workspace_swipe = true;
workspace_swipe_min_speed_to_force = 0; workspace_swipe_min_speed_to_force = 0;
@ -358,11 +370,17 @@ in {
}; };
misc = { misc = {
# disable default eye candy
force_default_wallpaper = 0; force_default_wallpaper = 0;
disable_splash_rendering = true; disable_splash_rendering = true;
disable_hyprland_logo = true; disable_hyprland_logo = true;
# there is zero reason to have this enabled
# what were they thinking
initial_workspace_tracking = 0; initial_workspace_tracking = 0;
vfr = true;
vrr = 2;
}; };
}; };
}; };

View file

@ -33,7 +33,7 @@ in {
}; };
background = [ background = [
{ {
path = toString ../../assets/lockscreen.png; path = toString ../../assets/lockscreen.jpg;
color = "rgb(${base00})"; color = "rgb(${base00})";
blur_passes = 3; blur_passes = 3;
blur_size = 6; blur_size = 6;

View file

@ -0,0 +1,31 @@
{ lib, config, pkgs, ... }:
with lib;
let
cfg = config.modules.desktop.mate-polkit;
in {
options.modules.desktop.mate-polkit = {
enable = mkEnableOption "Enable the MATE desktop environment polkit authentication agent";
};
config = mkIf cfg.enable {
hm.systemd.user.services.mate-polkit = {
Unit = {
Description = "the MATE desktop environment polkit authentication agent";
After = [ "graphical-session-pre.target" ];
PartOf = [ "graphical-session.target" ];
};
Install = {
WantedBy = [ "graphical-session.target" ];
};
Service = {
Type = "simple";
ExecStart = "${pkgs.mate.mate-polkit}/libexec/polkit-mate-authentication-agent-1";
Restart = "on-failure";
RestartSec = 5;
};
};
};
}

View file

@ -49,7 +49,7 @@ in {
flavor = variant; flavor = variant;
font = config.modules.desktop.fonts.fonts.sansSerif.family; font = config.modules.desktop.fonts.fonts.sansSerif.family;
fontSize = toString config.modules.desktop.fonts.fonts.sansSerif.size; fontSize = toString config.modules.desktop.fonts.fonts.sansSerif.size;
background = ../../../../assets/lockscreen.png; background = ../../../../assets/lockscreen.jpg;
loginBackground = true; loginBackground = true;
}); });
}; };

View file

@ -0,0 +1,26 @@
{ lib, config, pkgs, ... }:
with lib;
let
cfg = config.modules.software.distractions.gamemode;
in {
options.modules.software.distractions.gamemode = {
enable = mkEnableOption "Enable Gamemode, a program to optimize your system performance on demand";
};
config = mkIf cfg.enable {
# optimize linux system performance on demand
# https://github.com/FeralInteractive/gamemode
user.extraGroups = [ "gamemode" ];
programs.gamemode = {
enable = true;
enableRenice = true;
settings = {
general = {
softrealtime = "auto";
renice = 10;
};
};
};
};
}

View file

@ -11,29 +11,6 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
programs.steam.enable = true; programs.steam.enable = true;
# optimize linux system performance on demand
# https://github.com/FeralInteractive/gamemode
user.extraGroups = [ "gamemode" ];
programs.gamemode = {
enable = true;
enableRenice = true;
settings = {
custom = {
start = "${pkgs.libnotify}/bin/notify-send --app-name GameMode 'GameMode started'";
end = "${pkgs.libnotify}/bin/notify-send --app-name GameMode 'GameMode ended'";
};
};
};
programs.gamescope = {
enable = true;
capSysNice = true;
};
programs.steam.gamescopeSession = {
enable = true;
args = [ "-W 1920" "-H 1080" "-r 60" "--expose-wayland" "-e" ];
};
user.packages = [ pkgs.protontricks pkgs.steam-run ]; user.packages = [ pkgs.protontricks pkgs.steam-run ];
}; };
} }

View file

@ -22,8 +22,8 @@ in {
libnotify libnotify
]; ];
users.defaultUserShell = pkgs.fish;
programs.fish.enable = true; programs.fish.enable = true;
users.defaultUserShell = pkgs.fish;
hm.programs.fish = let hm.programs.fish = let
colorScript = nix-colors-lib.shellThemeFromScheme { scheme = config.colorScheme; }; colorScript = nix-colors-lib.shellThemeFromScheme { scheme = config.colorScheme; };
in { in {
@ -33,7 +33,6 @@ in {
{ name = "grc"; src = grc.src; } { name = "grc"; src = grc.src; }
{ name = "tide"; src = tide.src; } { name = "tide"; src = tide.src; }
{ name = "done"; src = done.src; } { name = "done"; src = done.src; }
{ name = "autopair"; src = autopair.src; } { name = "autopair"; src = autopair.src; }
]; ];
interactiveShellInit = '' interactiveShellInit = ''

View file

@ -2,9 +2,9 @@
with lib; with lib;
let let
cfg = config.modules.software.tools.mpv; cfg = config.modules.software.system.mpv;
in { in {
options.modules.software.tools.mpv = { options.modules.software.system.mpv = {
enable = mkEnableOption "Enable mpv, a lightweight video player"; enable = mkEnableOption "Enable mpv, a lightweight video player";
}; };

View file

@ -23,6 +23,7 @@ in {
fonts = config.modules.desktop.fonts.fonts; fonts = config.modules.desktop.fonts.fonts;
in '' in ''
local wezterm = require 'wezterm' local wezterm = require 'wezterm'
local act = wezterm.action
local config = {} local config = {}
@ -43,6 +44,29 @@ in {
font_size = ${toString fonts.sansSerif.size} font_size = ${toString fonts.sansSerif.size}
} }
config.mouse_bindings = {
-- Change the default click behavior so that it only selects
-- text and doesn't open hyperlinks
{
event = { Up = { streak = 1, button = 'Left' } },
mods = 'NONE',
action = act.CompleteSelection 'ClipboardAndPrimarySelection'
},
-- and make CTRL-Click open hyperlinks
{
event = { Up = { streak = 1, button = 'Left' } },
mods = 'CTRL',
action = act.OpenLinkAtMouseCursor
},
-- Disable the 'Down' event of CTRL-Click to avoid weird program behaviors
-- https://wezfurlong.org/wezterm/config/mouse.html#gotcha-on-binding-an-up-event-only
{
event = { Down = { streak = 1, button = 'Left' } },
mods = 'CTRL',
action = act.Nop
}
}
return config return config
''; '';
}; };

View file

@ -1,14 +0,0 @@
{ config, lib, ... }:
with lib;
let
cfg = config.modules.software.tools.noisetorch;
in {
options.modules.software.tools.noisetorch = {
enable = mkEnableOption "Enable noisetorch, a microphone noise supression tool";
};
config = mkIf cfg.enable {
programs.noisetorch.enable = true;
};
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 674 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 378 KiB