mirror of
https://github.com/js0ny/dotfiles.git
synced 2025-12-21 00:33:00 +00:00
wayland-wm: sunsetr hyprlock
This commit is contained in:
parent
91b011a725
commit
47d967bfc9
26 changed files with 326 additions and 96 deletions
12
nixcfgs/flake.lock
generated
12
nixcfgs/flake.lock
generated
|
|
@ -827,11 +827,11 @@
|
|||
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1764405884,
|
||||
"narHash": "sha256-TnvBRPmcpcyinvLgsitHS7w5soSa6yNBfRYEI2TK1Ts=",
|
||||
"lastModified": 1764488513,
|
||||
"narHash": "sha256-xBUnv+ndZxRbY9mYSPEP0afaZRUVXDFcJx0WMD4ypfs=",
|
||||
"owner": "sodiboo",
|
||||
"repo": "niri-flake",
|
||||
"rev": "10aae4855ee275f7d80d85f4328c24265fb20f1f",
|
||||
"rev": "9e3bbd170669d10846bae68d23dabef11832f8f2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -860,11 +860,11 @@
|
|||
"niri-unstable": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1764399944,
|
||||
"narHash": "sha256-FC9eYtSmplgxllCX4/3hJq5J3sXWKLSc7at8ZUxycVw=",
|
||||
"lastModified": 1764485473,
|
||||
"narHash": "sha256-RlGEcuZFB/IdvYLrYsf0RpgvNtCMyIuBLt3lS+GZvP8=",
|
||||
"owner": "YaLTeR",
|
||||
"repo": "niri",
|
||||
"rev": "b35bcae35b3f9665043c335e55ed5828af77db85",
|
||||
"rev": "311ca6b5da19f5acd7d3e481620de57240ce8f7c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
|||
|
|
@ -85,6 +85,7 @@
|
|||
...
|
||||
} @ inputs: let
|
||||
overlays = [
|
||||
niri-flake.overlays.niri
|
||||
nur.overlays.default
|
||||
firefox-addons.overlays.default
|
||||
(final: prev: {
|
||||
|
|
|
|||
|
|
@ -125,6 +125,7 @@ in {
|
|||
prismlauncher
|
||||
obsidian
|
||||
file-roller
|
||||
siyuan
|
||||
]
|
||||
++ (mkFcitxIM [
|
||||
pkgs.neovim-qt
|
||||
|
|
|
|||
|
|
@ -4,16 +4,11 @@
|
|||
lib,
|
||||
...
|
||||
}: {
|
||||
home.sessionVariables = {
|
||||
QT_STYLE_OVERRIDE = "adwaita";
|
||||
};
|
||||
home.packages = with pkgs; [
|
||||
gnome-tweaks
|
||||
sushi
|
||||
dconf-editor
|
||||
gnome-menus
|
||||
adwaita-qt
|
||||
adwaita-qt6
|
||||
showtime
|
||||
gobject-introspection
|
||||
gnomeExtensions.dash-to-dock
|
||||
|
|
@ -50,7 +45,6 @@
|
|||
icon-theme = "${config.my.desktop.style.iconTheme.dark}";
|
||||
accent-color = "pink";
|
||||
show-battery-percentage = true;
|
||||
cursor-theme = "Adwaita";
|
||||
};
|
||||
"org/gnome/epiphany" = {
|
||||
ask-for-default = false;
|
||||
|
|
@ -167,6 +161,4 @@
|
|||
ramunit = "perc";
|
||||
};
|
||||
};
|
||||
|
||||
# qt.style.name = "adwaita";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,8 +26,8 @@ in {
|
|||
"$mainMod SHIFT, B, exec, firefox --private-window"
|
||||
"$mainMod, A, exec, kitty --class=kitty-terminal-popup -e aichat --session"
|
||||
"$mainMod SHIFT, A, exec, ${lib.getExe my.launch-or-focus} 'Cherry Studio' 'cherry-studio'"
|
||||
"$mainMod, T, exec, kitty --class=kitty-terminal-popup"
|
||||
"$mainMod SHIFT, T, exec, kitty --class=kitty-terminal-popup --working-directory='${config.home.homeDirectory}/.config/shells/nohist' -e nix develop"
|
||||
"$mainMod ALT, return, exec, kitty --class=kitty-terminal-popup"
|
||||
"$mainMod ALT SHIFT, return, exec, kitty --class=kitty-terminal-popup --working-directory='${config.home.homeDirectory}/.config/shells/nohist' -e nix develop"
|
||||
"$mainMod, O, exec, ${lib.getExe my.launch-or-focus} 'obsidian' 'obsidian'"
|
||||
"$mainMod, Q, killactive"
|
||||
''$mainMod SHIFT, F, exec, hyprctl --batch "dispatch togglefloating ; dispatch resizeactive exact 1440 810 ; dispatch centerwindow 1;"''
|
||||
|
|
@ -36,7 +36,7 @@ in {
|
|||
"$mainMod, Apostrophe, exec, EDITOR_MINIMAL=1 ${term} -o close_on_child_death=yes --class=${term}-terminal-popup -e edit-clipboard --minimal"
|
||||
"$mainMod, V, exec, ${launcher} -m clipboard"
|
||||
"alt, space, exec, ${launcher} -m desktopapplications"
|
||||
"$mainMod, E, exec, ${explorer}"
|
||||
"$mainMod, E, exec, ${lib.getExe my.launch-or-focus} org.kde.dolphin ${explorer}"
|
||||
"$mainMod SHIFT, E, exec, ${term} -e ${explorerTerm}"
|
||||
"CTRL ALT, DELETE, exec, uwsm exit"
|
||||
"$mainMod, P, pseudo"
|
||||
|
|
|
|||
47
nixcfgs/users/js0ny/programs/desktop/wayland-wm/hyprlock.nix
Normal file
47
nixcfgs/users/js0ny/programs/desktop/wayland-wm/hyprlock.nix
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
{lib, ...}: {
|
||||
programs.hyprlock = {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
hide_cursor = true;
|
||||
ignore_empty_input = true;
|
||||
};
|
||||
|
||||
animations = {
|
||||
enabled = true;
|
||||
fade_in = {
|
||||
duration = 300;
|
||||
bezier = "easeOutQuint";
|
||||
};
|
||||
fade_out = {
|
||||
duration = 300;
|
||||
bezier = "easeOutQuint";
|
||||
};
|
||||
};
|
||||
|
||||
background = lib.mkForce [
|
||||
{
|
||||
path = "screenshot";
|
||||
blur_passes = 3;
|
||||
blur_size = 8;
|
||||
}
|
||||
];
|
||||
|
||||
# input-field = [
|
||||
# {
|
||||
# size = "200, 50";
|
||||
# position = "0, -80";
|
||||
# monitor = "";
|
||||
# dots_center = true;
|
||||
# fade_on_empty = false;
|
||||
# font_color = "rgb(202, 211, 245)";
|
||||
# inner_color = "rgb(91, 96, 120)";
|
||||
# outer_color = "rgb(24, 25, 38)";
|
||||
# outline_thickness = 5;
|
||||
# # placeholder_text = '\'Password...'\';
|
||||
# shadow_passes = 2;
|
||||
# }
|
||||
# ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -7,27 +7,25 @@
|
|||
|
||||
programs.niri = {
|
||||
enable = true;
|
||||
package = pkgs.niri;
|
||||
package = pkgs.niri-unstable;
|
||||
|
||||
settings = {
|
||||
prefer-no-csd = true;
|
||||
screenshot-path = "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png";
|
||||
|
||||
workspaces = {
|
||||
"master" = {};
|
||||
"project" = {};
|
||||
"remote" = {};
|
||||
"info" = {};
|
||||
"bg" = {};
|
||||
"1-master" = {};
|
||||
"2-project" = {};
|
||||
"3-alt" = {};
|
||||
"4-info" = {};
|
||||
"5-bg" = {};
|
||||
};
|
||||
|
||||
spawn-at-startup = [
|
||||
{argv = ["waybar"];}
|
||||
{argv = ["dunst"];}
|
||||
{argv = ["fcitx5"];}
|
||||
{argv = ["swww-daemon"];}
|
||||
# polkit/portal helpers
|
||||
{argv = ["${pkgs.hyprpolkitagent}/libexec/hyprpolkitagent"];}
|
||||
# {argv = ["${pkgs.hyprpolkitagent}/libexec/hyprpolkitagent"];}
|
||||
];
|
||||
|
||||
input = {
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ in {
|
|||
"Mod+B".action = spawn "${lib.getExe nirictl.focusOrLaunch}" "firefox" "firefox";
|
||||
"Mod+Shift+B".hotkey-overlay.title = "Launch web browser in private mode";
|
||||
"Mod+Shift+B".action = spawn "firefox" "--private-window";
|
||||
"Mod+A".action = spawn-sh "${term} --class=terminal-popup -e aichat --session";
|
||||
"Mod+A".action = spawn-sh "${term} --class=kitty-terminal-popup -e aichat --session";
|
||||
"Mod+Shift+A".hotkey-overlay.title = "Focus or launch CherryStudio (AI assistant)";
|
||||
"Mod+Shift+A".action = spawn "${lib.getExe nirictl.focusOrLaunch}" "CherryStudio" "cherry-studio";
|
||||
"Mod+O".hotkey-overlay.title = "Focus or launch Obsidian";
|
||||
|
|
@ -29,18 +29,21 @@ in {
|
|||
# TODO: Change "org.kde.dolphin" to a more generic explorer app id via config.currentUser
|
||||
"Mod+E".hotkey-overlay.title = "Focus or launch file explorer";
|
||||
"Mod+E".action = spawn "${lib.getExe nirictl.focusOrLaunch}" "org.kde.dolphin" "dolphin";
|
||||
"Mod+T".action = spawn-sh "${term} --class=terminal-popup";
|
||||
"Mod+Shift+T".action = spawn-sh "${term} --class=${term}-terminal-popup --working-directory='${config.home.homeDirectory}/.config/shells/nohist' -e nix develop";
|
||||
"Mod+Alt+Return".action = spawn-sh "${term} --class=kitty-terminal-popup";
|
||||
"Mod+Shift+Alt+Return".action = spawn-sh "${term} --class=kitty--terminal-popup --working-directory='${config.home.homeDirectory}/.config/shells/nohist' -e nix develop";
|
||||
|
||||
"Mod+Semicolon".action = spawn "neovide" "${config.home.homeDirectory}/Atelier";
|
||||
"Mod+Shift+Return".action = spawn "neovide" "${config.home.homeDirectory}/Atelier";
|
||||
"Mod+Apostrophe".action =
|
||||
spawn-sh "EDITOR_MINIMAL=1 ${term} -o close_on_child_death=yes --class=terminal-popup -e edit-clipboard --minimal";
|
||||
spawn-sh "EDITOR_MINIMAL=1 ${term} -o close_on_child_death=yes --class=kitty-terminal-popup -e edit-clipboard --minimal";
|
||||
|
||||
"Mod+Shift+Slash".action = show-hotkey-overlay;
|
||||
|
||||
"Mod+Return".hotkey-overlay.title = "Open a Terminal: ${term}";
|
||||
"Mod+Return".action = spawn "${term}";
|
||||
|
||||
"Mod+Alt+i".hotkey-overlay.title = "Hyprlock";
|
||||
"Mod+Alt+i".action = spawn "hyprlock";
|
||||
|
||||
"Mod+D".hotkey-overlay.title = "Run an Application: rofi";
|
||||
"Mod+D".action =
|
||||
spawn "${launcher}" "-m" "desktopapplications";
|
||||
|
|
@ -177,24 +180,24 @@ in {
|
|||
"Mod+Ctrl+Shift+WheelScrollDown".action = move-column-right;
|
||||
"Mod+Ctrl+Shift+WheelScrollUp".action = move-column-left;
|
||||
|
||||
"Mod+1".action = focus-workspace "master";
|
||||
"Mod+2".action = focus-workspace "project";
|
||||
"Mod+3".action = focus-workspace "remote";
|
||||
"Mod+4".action = focus-workspace "info";
|
||||
"Mod+5".action = focus-workspace 6;
|
||||
"Mod+6".action = focus-workspace 7;
|
||||
"Mod+7".action = focus-workspace 8;
|
||||
"Mod+8".action = focus-workspace 9;
|
||||
"Mod+9".action = focus-workspace "bg";
|
||||
"Mod+Shift+1".action.move-column-to-workspace = "master";
|
||||
"Mod+Shift+2".action.move-column-to-workspace = "project";
|
||||
"Mod+Shift+3".action.move-column-to-workspace = "remote";
|
||||
"Mod+Shift+4".action.move-column-to-workspace = "info";
|
||||
"Mod+Shift+5".action.move-column-to-workspace = 6;
|
||||
"Mod+Shift+6".action.move-column-to-workspace = 7;
|
||||
"Mod+Shift+7".action.move-column-to-workspace = 8;
|
||||
"Mod+Shift+8".action.move-column-to-workspace = 9;
|
||||
"Mod+Shift+9".action.move-column-to-workspace = "bg";
|
||||
"Mod+1".action = focus-workspace "1-master";
|
||||
"Mod+2".action = focus-workspace "2-project";
|
||||
"Mod+3".action = focus-workspace "3-alt";
|
||||
"Mod+4".action = focus-workspace "4-info";
|
||||
"Mod+5".action = focus-workspace "5-bg";
|
||||
"Mod+6".action = focus-workspace 6;
|
||||
"Mod+7".action = focus-workspace 7;
|
||||
"Mod+8".action = focus-workspace 8;
|
||||
"Mod+9".action = focus-workspace 9;
|
||||
"Mod+Shift+1".action.move-column-to-workspace = "1-master";
|
||||
"Mod+Shift+2".action.move-column-to-workspace = "2-project";
|
||||
"Mod+Shift+3".action.move-column-to-workspace = "3-alt";
|
||||
"Mod+Shift+4".action.move-column-to-workspace = "4-info";
|
||||
"Mod+Shift+5".action.move-column-to-workspace = "5-bg";
|
||||
"Mod+Shift+6".action.move-column-to-workspace = 6;
|
||||
"Mod+Shift+7".action.move-column-to-workspace = 7;
|
||||
"Mod+Shift+8".action.move-column-to-workspace = 8;
|
||||
"Mod+Shift+9".action.move-column-to-workspace = 9;
|
||||
|
||||
"Mod+BracketLeft".action = consume-or-expel-window-left;
|
||||
"Mod+BracketRight".action = consume-or-expel-window-right;
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@
|
|||
matches = [
|
||||
{app-id = "^firefox$";}
|
||||
];
|
||||
open-on-workspace = "master";
|
||||
open-on-workspace = "1-master";
|
||||
}
|
||||
{
|
||||
matches = [
|
||||
|
|
@ -130,7 +130,7 @@
|
|||
{app-id = "^Vitis IDE$";}
|
||||
{app-id = "^Vivado$";}
|
||||
];
|
||||
open-on-workspace = "project";
|
||||
open-on-workspace = "2-project";
|
||||
}
|
||||
{
|
||||
matches = [
|
||||
|
|
@ -139,7 +139,7 @@
|
|||
{app-id = "^\.virt-manager-wrapped$";}
|
||||
{title = "^🌐 ssh.*";}
|
||||
];
|
||||
open-on-workspace = "remote";
|
||||
open-on-workspace = "3-alt";
|
||||
}
|
||||
{
|
||||
matches = [
|
||||
|
|
@ -151,14 +151,14 @@
|
|||
{app-id = "^discord$";}
|
||||
{app-id = "^thunderbird$";}
|
||||
];
|
||||
open-on-workspace = "info";
|
||||
open-on-workspace = "4-info";
|
||||
}
|
||||
{
|
||||
matches = [
|
||||
{app-id = "^feishin$";}
|
||||
{app-id = "^Cider$";}
|
||||
];
|
||||
open-on-workspace = "bg";
|
||||
open-on-workspace = "5-bg";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
|
|
|||
|
|
@ -37,8 +37,11 @@ in {
|
|||
./waybar
|
||||
./swww.nix
|
||||
./kanshi.nix
|
||||
./swaylock.nix
|
||||
# ./swaylock.nix
|
||||
./polkit.nix
|
||||
./hyprlock.nix
|
||||
./swayidle.nix
|
||||
./sunsetr.nix
|
||||
];
|
||||
home.packages = with pkgs; [
|
||||
swayidle # Screensaver
|
||||
|
|
|
|||
53
nixcfgs/users/js0ny/programs/desktop/wayland-wm/sunsetr.nix
Normal file
53
nixcfgs/users/js0ny/programs/desktop/wayland-wm/sunsetr.nix
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
{pkgs, ...}: {
|
||||
systemd.user.services.sunsetr = {
|
||||
Unit = {
|
||||
Description = "Sunsetr blue-light filtering";
|
||||
PartOf = ["graphical-session.target"];
|
||||
After = ["graphical-session.target"];
|
||||
};
|
||||
|
||||
Service = {
|
||||
Type = "simple";
|
||||
ExecStart = "${pkgs.sunsetr}/bin/sunsetr -b";
|
||||
Restart = "on-failure";
|
||||
RestartSec = 1;
|
||||
TimeoutStopSec = 10;
|
||||
};
|
||||
|
||||
Install = {
|
||||
WantedBy = ["graphical-session.target"];
|
||||
};
|
||||
};
|
||||
|
||||
xdg.configFile."sunsetr/sunsetr.toml".text = ''
|
||||
#[Backend]
|
||||
backend = "auto" # Backend to use: "auto", "hyprland", "hyprsunset" or "wayland"
|
||||
transition_mode = "geo" # Select: "geo", "finish_by", "start_at", "center", "static"
|
||||
|
||||
#[Smoothing]
|
||||
smoothing = true # Enable smooth transitions during startup and exit
|
||||
startup_duration = 0.5 # Duration of smooth startup in seconds (0.1-60 | 0 = instant)
|
||||
shutdown_duration = 0.5 # Duration of smooth shutdown in seconds (0.1-60 | 0 = instant)
|
||||
adaptive_interval = 1 # Adaptive interval base for smooth transitions (1-1000)ms
|
||||
|
||||
#[Time-based config]
|
||||
night_temp = 3300 # Color temperature during night (1000-20000) Kelvin
|
||||
day_temp = 6500 # Color temperature during day (1000-20000) Kelvin
|
||||
night_gamma = 90 # Gamma percentage for night (10-200%)
|
||||
day_gamma = 100 # Gamma percentage for day (10-200%)
|
||||
update_interval = 60 # Update frequency during transitions in seconds (10-300)
|
||||
|
||||
#[Static config]
|
||||
static_temp = 6500 # Color temperature for static mode (1000-20000) Kelvin
|
||||
static_gamma = 100 # Gamma percentage for static mode (10-200%)
|
||||
|
||||
#[Manual transitions]
|
||||
sunset = "19:00:00" # Time for manual sunset calculations (HH:MM:SS)
|
||||
sunrise = "06:00:00" # Time for manual sunrise calculations (HH:MM:SS)
|
||||
transition_duration = 45 # Transition duration in minutes (5-120)
|
||||
|
||||
#[Geolocation]
|
||||
latitude = 55.950000 # Geographic latitude (auto-detected on first run)
|
||||
longitude = -3.200000 # Geographic longitude (use 'sunsetr geo' to change)
|
||||
'';
|
||||
}
|
||||
15
nixcfgs/users/js0ny/programs/desktop/wayland-wm/swayidle.nix
Normal file
15
nixcfgs/users/js0ny/programs/desktop/wayland-wm/swayidle.nix
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{pkgs, ...}: {
|
||||
services.swayidle = {
|
||||
enable = true;
|
||||
timeouts = [
|
||||
{
|
||||
timeout = 300;
|
||||
command = "${pkgs.hyprlock}/bin/hyprlock";
|
||||
}
|
||||
{
|
||||
timeout = 600;
|
||||
command = "${pkgs.systemd}/bin/systemctl suspend";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -21,6 +21,10 @@
|
|||
flycheck
|
||||
highlight-indent-guides
|
||||
magit
|
||||
elfeed
|
||||
elfeed-org
|
||||
olivetti
|
||||
org-modern
|
||||
];
|
||||
};
|
||||
# TODO: tdlib version is too high
|
||||
|
|
|
|||
|
|
@ -17,6 +17,11 @@ in {
|
|||
nodejs-slim_24 # for copilot-lua
|
||||
lua-language-server
|
||||
vimPlugins.nvim-treesitter-parsers.diff
|
||||
# Dependency of snacks.image
|
||||
tectonic
|
||||
vimPlugins.nvim-treesitter-parsers.latex
|
||||
mermaid-cli
|
||||
ghostscript
|
||||
];
|
||||
};
|
||||
# home.packages = with pkgs; [lua-language-server];
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
"la" = "ls -a";
|
||||
"lt" = "lsd --tree";
|
||||
"l" = "ls -la";
|
||||
"ll" = "ls -lh";
|
||||
"ll" = "ls -l";
|
||||
};
|
||||
extraConfig = ''
|
||||
$env.config.show_banner = false
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue