Compare commits

..

No commits in common. "241bc587837932ee77153882e7d3eceb41c200fa" and "af4b69104d8be50fbe4af36d77ea05345cb861cd" have entirely different histories.

20 changed files with 80 additions and 141 deletions

View file

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 674 KiB

BIN
assets/lockscreen.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

18
flake.lock generated
View file

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

View file

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

View file

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

View file

@ -15,7 +15,9 @@ in {
config = mkIf cfg.enable {
hm.home.packages = [ cfg.package ];
hm.services.hypridle = {
hm.services.hypridle = let
hyprctl = "${config.modules.desktop.hyprland.package}/bin/hyprctl";
in {
enable = true;
package = cfg.package;
@ -25,6 +27,7 @@ in {
unlock_cmd = "${pkgs.procps}/bin/pkill -USR1 hyprlock";
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 = [
@ -38,6 +41,11 @@ in {
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
}
{
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
on-timeout = "${pkgs.systemd}/bin/loginctl lock-session"; # lock computer
@ -46,13 +54,7 @@ in {
timeout = 60 * 15; # 15 min
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,17 +97,14 @@ in {
mode="$1"
case "$mode" in
screen)
fullscreen)
mode="output"
;;
area)
mode="area"
;;
window)
mode="active"
;;
*)
echo "usage: $0 [screen|area|window]" >&2
echo "usage: $0 [fullscreen|area]" >&2
exit 2
;;
esac
@ -129,26 +126,17 @@ in {
;;
esac
'';
pickerScript = pkgs.writeShellScript "color-picker" ''
${lib.getExe pkgs.zenity} --color-selection --color $(${lib.getExe pkgs.hyprpicker})
'';
in [
"$mod, Q, killactive, "
"$mod, F, togglefloating, "
"$mod, P, pseudo, " # dwindle
"$mod, J, togglesplit, " # dwindle
"$mod SHIFT, F, fullscreen, "
# move focus with mod + arrow keys
"$mod, left, movefocus, l"
"$mod, right, movefocus, r"
"$mod, up, movefocus, u"
"$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)
"$mod, grave, togglespecialworkspace, magic"
@ -170,14 +158,9 @@ in {
# area
", Print, exec, ${screenshotScript} area"
"$mod SHIFT, S, exec, ${screenshotScript} area"
# screen
"CTRL, Print, exec, ${screenshotScript} screen"
"$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}"
# fullscreen
", Print, exec, ${screenshotScript} fullscreen"
"$mod SHIFT CTRL, S, exec, ${screenshotScript} fullscreen"
", XF86LaunchA, exec, ${screenshotScript} area"
", XF86LaunchB, exec, ${lib.getExe pkgs.rofi-rbw-wayland} -a copy -t password --clear-after 20"
@ -217,6 +200,7 @@ in {
exec-once = [
"${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
];
@ -359,10 +343,14 @@ in {
};
dwindle = {
pseudotile = "yes"; # master switch for pseudotiling. enabling is mod + P in the keybinds section
pseudotile = "yes"; # master swtich for pseudotiling. enabling is mod + P in the keybinds section
preserve_split = "yes";
};
master = {
new_status = "master";
};
gestures = {
workspace_swipe = true;
workspace_swipe_min_speed_to_force = 0;
@ -370,17 +358,11 @@ in {
};
misc = {
# disable default eye candy
force_default_wallpaper = 0;
disable_splash_rendering = true;
disable_hyprland_logo = true;
# there is zero reason to have this enabled
# what were they thinking
initial_workspace_tracking = 0;
vfr = true;
vrr = 2;
};
};
};

View file

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

View file

@ -1,31 +0,0 @@
{ 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;
font = config.modules.desktop.fonts.fonts.sansSerif.family;
fontSize = toString config.modules.desktop.fonts.fonts.sansSerif.size;
background = ../../../../assets/lockscreen.jpg;
background = ../../../../assets/lockscreen.png;
loginBackground = true;
});
};

View file

@ -1,26 +0,0 @@
{ 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,6 +11,29 @@ in {
config = mkIf cfg.enable {
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 ];
};
}

View file

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

View file

@ -23,7 +23,6 @@ in {
fonts = config.modules.desktop.fonts.fonts;
in ''
local wezterm = require 'wezterm'
local act = wezterm.action
local config = {}
@ -44,29 +43,6 @@ in {
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
'';
};

View file

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

View file

@ -0,0 +1,14 @@
{ 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.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 674 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 378 KiB