Compare commits
5 commits
5d1408254a
...
0d7022d7c1
Author | SHA1 | Date | |
---|---|---|---|
0d7022d7c1 | |||
158c761ae2 | |||
6382debb3b | |||
aa7265e49e | |||
ef8b281c19 |
8 changed files with 175 additions and 94 deletions
|
@ -52,7 +52,6 @@ in {
|
||||||
./theme.nix
|
./theme.nix
|
||||||
./sway.nix
|
./sway.nix
|
||||||
./waybar.nix
|
./waybar.nix
|
||||||
./wofi.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -8,10 +8,16 @@ with lib; let
|
||||||
cfg = config.local.gui;
|
cfg = config.local.gui;
|
||||||
in {
|
in {
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
home.packages = [
|
home.packages = with pkgs; [
|
||||||
pkgs.wlr-randr
|
wlr-randr
|
||||||
|
bemenu
|
||||||
];
|
];
|
||||||
|
|
||||||
|
home.sessionVariables = {
|
||||||
|
"BEMENU_BACKEND" = "wayland";
|
||||||
|
"BEMENU_RENDERER" = "bemenu-wlroots";
|
||||||
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
swayidle = {
|
swayidle = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -43,7 +49,11 @@ in {
|
||||||
cfg.monitors;
|
cfg.monitors;
|
||||||
|
|
||||||
modifier = "Mod4";
|
modifier = "Mod4";
|
||||||
focus.followMouse = true;
|
|
||||||
|
focus = {
|
||||||
|
followMouse = true;
|
||||||
|
wrapping = "workspace";
|
||||||
|
};
|
||||||
|
|
||||||
input = {
|
input = {
|
||||||
"*" = {
|
"*" = {
|
||||||
|
@ -59,8 +69,10 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
gaps = {
|
gaps = {
|
||||||
inner = 10;
|
inner = 8;
|
||||||
outer = -10;
|
outer = -10;
|
||||||
|
smartBorders = "on";
|
||||||
|
smartGaps = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
bars = singleton {
|
bars = singleton {
|
||||||
|
@ -71,33 +83,70 @@ in {
|
||||||
window = {
|
window = {
|
||||||
hideEdgeBorders = "both";
|
hideEdgeBorders = "both";
|
||||||
titlebar = false;
|
titlebar = false;
|
||||||
|
border = 2;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
floating = {
|
||||||
|
border = 0;
|
||||||
|
titlebar = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
menu = "bemenu-run";
|
||||||
|
|
||||||
workspaceLayout = "tabbed";
|
workspaceLayout = "tabbed";
|
||||||
|
|
||||||
colors = {
|
colors = {
|
||||||
|
background = "#141414";
|
||||||
focused = {
|
focused = {
|
||||||
background = "#222222";
|
border = "#1c1c1c";
|
||||||
border = "#4c7899";
|
background = "#000000";
|
||||||
childBorder = "#222222";
|
text = "#eaeaea";
|
||||||
indicator = "#292d2e";
|
indicator = "#000000";
|
||||||
text = "#888888";
|
childBorder = "#000000";
|
||||||
|
};
|
||||||
|
focusedInactive = {
|
||||||
|
border = "#000000";
|
||||||
|
background = "#000000";
|
||||||
|
text = "#eaeaea";
|
||||||
|
indicator = "#000000";
|
||||||
|
childBorder = "#000000";
|
||||||
|
};
|
||||||
|
unfocused = {
|
||||||
|
border = "#000000";
|
||||||
|
background = "#000000";
|
||||||
|
text = "#eaeaea";
|
||||||
|
indicator = "#000000";
|
||||||
|
childBorder = "#000000";
|
||||||
|
};
|
||||||
|
urgent = {
|
||||||
|
border = "#ff6666";
|
||||||
|
background = "#ff6666";
|
||||||
|
text = "#eaeaea";
|
||||||
|
indicator = "#ff6666";
|
||||||
|
childBorder = "#ff6666";
|
||||||
|
};
|
||||||
|
placeholder = {
|
||||||
|
border = "#000000";
|
||||||
|
background = "#000000";
|
||||||
|
text = "#eaeaea";
|
||||||
|
indicator = "#000000";
|
||||||
|
childBorder = "#000000";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
keybindings = let
|
keybindings = let
|
||||||
mod = config.wayland.windowManager.sway.config.modifier;
|
mod = config.wayland.windowManager.sway.config.modifier;
|
||||||
wofi = config.programs.wofi.package;
|
|
||||||
|
|
||||||
grimshot = getExe pkgs.sway-contrib.grimshot;
|
grimshot = getExe pkgs.sway-contrib.grimshot;
|
||||||
|
bemenuCommand = ''bemenu-run --center --width-factor 0.2 --fixed-height --list 10 --scrollbar none --auto-select --accept-single --fn "JetBrains Mono 12" --prompt "" --tb "#000000" --tf "#EAEAEA" --fb "#000000" --ff "#EAEAEA" --cb "#EAEAEA" --cf "#000000" --nb "#000000" --nf "#EAEAEA" --sb "#000000" --sf "#EAEAEA" --hb "#000000" --hf "#EAEAEA" --fbb "#000000" --fbf "#000000" --ab "#000000" --af "#EAEAEA"'';
|
||||||
in
|
in
|
||||||
mkOptionDefault {
|
mkOptionDefault {
|
||||||
"${mod}+a" = "focus parent";
|
"${mod}+a" = "focus parent";
|
||||||
"${mod}+c" = "focus child";
|
"${mod}+c" = "focus child";
|
||||||
"${mod}+d" = "exec --no-startup-id ${getExe wofi} -S run";
|
"${mod}+d" = "exec ${bemenuCommand}";
|
||||||
"${mod}+l" = "exec ${getExe pkgs.gtklock} -d";
|
"${mod}+l" = "exec ${getExe pkgs.gtklock} -d";
|
||||||
"${mod}+Return" = "exec ${lib.getExe pkgs.kitty} ${lib.getExe pkgs.tmux}";
|
"${mod}+Return" = "exec ${lib.getExe pkgs.kitty} ${lib.getExe pkgs.tmux}";
|
||||||
"${mod}+Shift+s" = "exec ${grimshot} copy area";
|
"${mod}+Shift+s" = "exec ${grimshot} copy area";
|
||||||
|
"${mod}+Shift+a" = "exec ${grimshot} copy active";
|
||||||
"${mod}+Tab" = "focus right";
|
"${mod}+Tab" = "focus right";
|
||||||
"${mod}+Shift+Tab" = "focus left";
|
"${mod}+Shift+Tab" = "focus left";
|
||||||
"${mod}+Shift+w" = "move workspace to output right";
|
"${mod}+Shift+w" = "move workspace to output right";
|
||||||
|
@ -135,7 +184,6 @@ in {
|
||||||
|
|
||||||
swaynag.enable = true;
|
swaynag.enable = true;
|
||||||
systemd.enable = true;
|
systemd.enable = true;
|
||||||
|
|
||||||
xwayland = true;
|
xwayland = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -26,8 +26,11 @@ in {
|
||||||
];
|
];
|
||||||
|
|
||||||
modules-right = [
|
modules-right = [
|
||||||
|
"privacy"
|
||||||
"cpu"
|
"cpu"
|
||||||
"memory"
|
"memory"
|
||||||
|
"disk"
|
||||||
|
"temperature"
|
||||||
"keyboard-state"
|
"keyboard-state"
|
||||||
"tray"
|
"tray"
|
||||||
];
|
];
|
||||||
|
@ -42,8 +45,6 @@ in {
|
||||||
"clock" = {
|
"clock" = {
|
||||||
interval = 60;
|
interval = 60;
|
||||||
format = "{:%A %B %d %Y %H:%M}";
|
format = "{:%A %B %d %Y %H:%M}";
|
||||||
tooltip = true;
|
|
||||||
tooltip-format = "{}";
|
|
||||||
};
|
};
|
||||||
"cpu" = {
|
"cpu" = {
|
||||||
format = "cpu {usage}%";
|
format = "cpu {usage}%";
|
||||||
|
@ -54,6 +55,14 @@ in {
|
||||||
tooltip = true;
|
tooltip = true;
|
||||||
tooltip-format = "{used}/{total}";
|
tooltip-format = "{used}/{total}";
|
||||||
};
|
};
|
||||||
|
"disk" = {
|
||||||
|
format = "disk {specific_used:0.0f}/{specific_total:0.0f}";
|
||||||
|
unit = "GiB";
|
||||||
|
tooltip = false;
|
||||||
|
};
|
||||||
|
"privacy" = {
|
||||||
|
icon-size = 12;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
style = ''
|
style = ''
|
||||||
|
@ -86,8 +95,8 @@ in {
|
||||||
.modules-left > widget:not(:first-child),
|
.modules-left > widget:not(:first-child),
|
||||||
.modules-center > widget:not(:first-child),
|
.modules-center > widget:not(:first-child),
|
||||||
.modules-right > widget:not(:first-child) {
|
.modules-right > widget:not(:first-child) {
|
||||||
margin-left: 8px;
|
margin-left: 12px;
|
||||||
padding-left: 8px;
|
padding-left: 12px;
|
||||||
border-left: 1px solid rgba(255, 255, 255, 0.08);
|
border-left: 1px solid rgba(255, 255, 255, 0.08);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,74 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib; let
|
|
||||||
cfg = config.local.gui;
|
|
||||||
in {
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
programs = {
|
|
||||||
wofi = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
prompt = "";
|
|
||||||
width = "25%";
|
|
||||||
height = "30%";
|
|
||||||
};
|
|
||||||
style = ''
|
|
||||||
window {
|
|
||||||
background-color: rgb(0, 0, 0);
|
|
||||||
color: #eaeaea;
|
|
||||||
font-family: monospace;
|
|
||||||
font-size: 12px;
|
|
||||||
border: none;
|
|
||||||
border-radius: 0;
|
|
||||||
padding: 0;
|
|
||||||
width: 50%; /* half screen width */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Search input */
|
|
||||||
#input {
|
|
||||||
background-color: rgba(0, 0, 0, 0.5);
|
|
||||||
color: #ffffff;
|
|
||||||
padding: 4px 6px;
|
|
||||||
border: none;
|
|
||||||
border-radius: 0;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Results list container */
|
|
||||||
#inner-box {
|
|
||||||
background-color: transparent;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Entries */
|
|
||||||
#entry {
|
|
||||||
padding: 2px 6px;
|
|
||||||
margin: 0;
|
|
||||||
border-radius: 0;
|
|
||||||
background-color: transparent;
|
|
||||||
color: #cccccc;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Text inside entries */
|
|
||||||
#text {
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Scrollbar */
|
|
||||||
scrollbar {
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
scrollbar slider {
|
|
||||||
background: rgba(255, 255, 255, 0.15);
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -22,14 +22,27 @@ in {
|
||||||
escapeTime = 10;
|
escapeTime = 10;
|
||||||
terminal = "xterm-256color";
|
terminal = "xterm-256color";
|
||||||
keyMode = "emacs";
|
keyMode = "emacs";
|
||||||
|
mouse = true;
|
||||||
|
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
set -g mouse on
|
|
||||||
set -ga update-environment " LIFT_PID"
|
set -ga update-environment " LIFT_PID"
|
||||||
set -g set-titles on
|
set -g set-titles on
|
||||||
set -g renumber-windows on
|
set -g renumber-windows on
|
||||||
set -sa terminal-overrides ',xterm-termite:RGB'
|
set -sa terminal-overrides ',xterm-termite:RGB'
|
||||||
set -g status-right "#{?window_bigger,[#{window_offset_x}#,#{window_offset_y}] ,} %H:%M %d-%b-%y"
|
|
||||||
|
set -g status-style bg=default,fg=colour250
|
||||||
|
set -g pane-border-style fg=colour236
|
||||||
|
set -g pane-active-border-style fg=colour240
|
||||||
|
set -g window-status-format " #I:#W "
|
||||||
|
set -g window-status-style bg=default,fg=colour244
|
||||||
|
set -g window-status-current-format " #I:#W "
|
||||||
|
set -g window-status-current-style bg=colour236,fg=white,bold
|
||||||
|
set -g status-position bottom
|
||||||
|
set -g status-left-length 20
|
||||||
|
set -g status-right-length 60
|
||||||
|
set -g status-left ""
|
||||||
|
set -g window-status-separator ""
|
||||||
|
set -g status-justify left
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
./bluetooth.nix
|
./bluetooth.nix
|
||||||
./net.nix
|
./net.nix
|
||||||
./steam.nix
|
./steam.nix
|
||||||
|
./gtklock.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
fonts.packages = with pkgs; [
|
fonts.packages = with pkgs; [
|
||||||
|
|
84
sys/modules/gtklock.nix
Normal file
84
sys/modules/gtklock.nix
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.local.sys.gtklock;
|
||||||
|
in {
|
||||||
|
options.local.sys.gtklock = {
|
||||||
|
enable = mkEnableOption "gtklock settings";
|
||||||
|
};
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.gtklock = {
|
||||||
|
enable = true;
|
||||||
|
config = {
|
||||||
|
main = {
|
||||||
|
idle-hide = true;
|
||||||
|
idle-timeout = 1;
|
||||||
|
time-format = "%H:%M:%S";
|
||||||
|
start-hidden = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
style = ''
|
||||||
|
/* Main lockscreen window */
|
||||||
|
window {
|
||||||
|
background-color: rgba(20, 20, 20, 0.9); /* dark, slightly translucent */
|
||||||
|
color: #eaeaea;
|
||||||
|
font-family: "JetBrains Mono", monospace;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Container for clock + prompt */
|
||||||
|
#main-box {
|
||||||
|
background: transparent;
|
||||||
|
border: none;
|
||||||
|
border-radius: 0;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Clock text */
|
||||||
|
#clock {
|
||||||
|
font-size: 32px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #ffffff;
|
||||||
|
margin-bottom: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Date text */
|
||||||
|
#date {
|
||||||
|
font-size: 14px;
|
||||||
|
color: #aaaaaa;
|
||||||
|
margin-bottom: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Password entry */
|
||||||
|
entry {
|
||||||
|
background-color: rgba(0, 0, 0, 0.5);
|
||||||
|
color: #ffffff;
|
||||||
|
border: none;
|
||||||
|
border-radius: 0;
|
||||||
|
padding: 6px 8px;
|
||||||
|
font-family: "JetBrains Mono", monospace;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Hide any extra icons in the entry */
|
||||||
|
entry image {
|
||||||
|
opacity: 0;
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Wrong password feedback */
|
||||||
|
#auth-failure {
|
||||||
|
color: #ff6666;
|
||||||
|
font-size: 12px;
|
||||||
|
margin-top: 6px;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -20,6 +20,7 @@
|
||||||
virtualisation.enable = true;
|
virtualisation.enable = true;
|
||||||
androidSupport.enable = true;
|
androidSupport.enable = true;
|
||||||
steam.enable = true;
|
steam.enable = true;
|
||||||
|
gtklock.enable = true;
|
||||||
|
|
||||||
users = {
|
users = {
|
||||||
fabian = {
|
fabian = {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue