Add graphical configuration
This commit is contained in:
parent
f3bc0c54ff
commit
7c10a7eb6c
|
@ -0,0 +1,113 @@
|
|||
{ lib, pkgs, config, ... }@attrs:
|
||||
let
|
||||
utils = import ./colors.nix attrs;
|
||||
colorscheme = utils.colorscheme "purple" ../../../external/6.png;
|
||||
in {
|
||||
home-manager.users.agatha = {
|
||||
xsession.windowManager.bspwm = {
|
||||
enable = true;
|
||||
extraConfigEarly = lib.strings.concatStringsSep "\n" [
|
||||
"xsetroot -cursor_name left_ptr"
|
||||
"xinput set-prop 'SynPS/2 Synaptics TouchPad' 'Synaptics Scrolling Distance' 60 60"
|
||||
];
|
||||
extraConfig = lib.strings.concatStringsSep "\n"
|
||||
[ "nitrogen --set-zoom-fill ${../../../external/6.png}" ];
|
||||
monitors = { eDP-1 = [ "I" "II" "III" "IV" "V" "VI" "VII" "VIII" ]; };
|
||||
settings = let color = n: colorscheme.colors."${builtins.toString n}";
|
||||
in {
|
||||
border_width = 3;
|
||||
window_gap = 15;
|
||||
top_padding = 45;
|
||||
split_ratio = 0.5;
|
||||
borderless_monocle = false;
|
||||
gapless_monocle = false;
|
||||
normal_border_color = color 0;
|
||||
focused_border_color = color 1;
|
||||
active_border_color = color 2;
|
||||
urgent_border_color = color 2;
|
||||
presel_feedback_color = color 2;
|
||||
};
|
||||
rules = {
|
||||
"Gimp" = {
|
||||
state = "tiled";
|
||||
follow = true;
|
||||
};
|
||||
"Element".desktop = "II";
|
||||
"TelegramDesktop".desktop = "III";
|
||||
"Geary".desktop = "IV";
|
||||
"firefox" = {
|
||||
desktop = "I";
|
||||
state = "tiled";
|
||||
follow = false;
|
||||
};
|
||||
"Yubico Authenticator".state = "floating";
|
||||
"firefox:Places".state = "floating";
|
||||
};
|
||||
};
|
||||
|
||||
services.sxhkd = {
|
||||
enable = true;
|
||||
keybindings = {
|
||||
# Terminal
|
||||
"super + Return" = "kitty";
|
||||
"Caps_Lock" = "kitty";
|
||||
# File explorer
|
||||
"super + e" = "nautilus";
|
||||
# Program launcher
|
||||
"super + @space" = "rofi -show drun";
|
||||
# Clipboard
|
||||
"super + v" = ''
|
||||
CM_LAUNCHER=rofi clipmenu \
|
||||
-theme-str 'listview \{ spacing: 0; \}' \
|
||||
-theme-str 'window \{ width: 30em; \}'
|
||||
'';
|
||||
# Calculator
|
||||
"super + shift + c" = ''
|
||||
rofi -show calc -modi calc -calc-command 'xdotool type --clearmodifiers "\{result\}"'';
|
||||
# Media keys
|
||||
"XF86Audio{Raise,Lower}Volume" = "pamixer {-i,-d} 5";
|
||||
"XF86AudioMute" = "pamixer -t";
|
||||
"XF86Audio{Prev,Next}" = "playerctl {previous,next}";
|
||||
"XF86AudioPlay" = "playerctl play-pause";
|
||||
# Screenshot
|
||||
"Print" = "flameshot gui && bspc desktop --focus focused";
|
||||
"shift + Print" =
|
||||
"flameshot gui -d 3000 && bspc desktop --focus focused";
|
||||
# Pause notifications
|
||||
"super + n" = "dunstctl set-paused toggle";
|
||||
# Reload WM
|
||||
"super + shift + {q,r}" = ''
|
||||
pkill -USR1 -x sxhkd \
|
||||
; for p in picom polybar dunst; killall $p; end \
|
||||
; bspc {quit,wm -r}
|
||||
'';
|
||||
# Close/kill window
|
||||
"super + {_,shift + }w" = "bspc node -{c,k}";
|
||||
# Monocle layout
|
||||
"super + m" = "bspc desktop -l next";
|
||||
# Toggle hide all windows
|
||||
"super + d" =
|
||||
"bspc query -N -n .window | xargs -I node_id bspc node node_id -g hidden";
|
||||
# Change window state
|
||||
"super + {t,shift + t,s,f}" =
|
||||
"bspc node -t {tiled,pseudo_tiled,floating,fullscreen}";
|
||||
# Focus/move window
|
||||
"super + {_,shift + }{j,k,i,l}" =
|
||||
"bspc node -{f,s} {west,south,north,east}";
|
||||
# Focus the next window in the current desktop
|
||||
"super + c" = "bspc node -f next.local.!hidden.window";
|
||||
# Focus previous/next desktop on current monitor
|
||||
"super + bracket{left,right}" = "bspc desktop -f {prev,next}.local";
|
||||
# Switch desktops / Move window to desktop
|
||||
"super + {_,shift + }{1-9,0}" = "bspc {desktop -f,node -d} '^{1-9,10}'";
|
||||
# Window switcher
|
||||
"alt + Tab" = "rofi -show window";
|
||||
# Move floating window
|
||||
"super + {Left,Down,Up,Right}" = "bspc node -v {-20 0,0 20,0 -20,20 0}";
|
||||
# Lock screen
|
||||
"super + x" =
|
||||
"betterlockscreen --lock dimblur; systemctl --user restart gpg-agent";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -0,0 +1,167 @@
|
|||
{ pkgs, config, lib, ... }: {
|
||||
imports = [
|
||||
./bspwm.nix
|
||||
./picom.nix
|
||||
./polybar.nix
|
||||
./iosevka.nix
|
||||
./kitty.nix
|
||||
./element.nix
|
||||
];
|
||||
|
||||
# User packages
|
||||
users.users.agatha.packages = with pkgs; [
|
||||
brightnessctl
|
||||
broot
|
||||
colmena
|
||||
element-desktop
|
||||
firefox
|
||||
flameshot
|
||||
gnome.eog
|
||||
gnome.file-roller
|
||||
gnome.geary
|
||||
gnome.gnome-calendar
|
||||
gnome.gnome-control-center
|
||||
gnome.gnome-disk-utility
|
||||
gnome.gnome-font-viewer
|
||||
gnome.nautilus
|
||||
gnome.totem
|
||||
hyperfine
|
||||
lxappearance
|
||||
magic-wormhole
|
||||
neofetch
|
||||
nitrogen
|
||||
pamixer
|
||||
pavucontrol
|
||||
pfetch
|
||||
playerctl
|
||||
pridefetch
|
||||
rofi
|
||||
rofi-calc
|
||||
rofimoji
|
||||
tdesktop
|
||||
wireguard-tools
|
||||
xdg-utils
|
||||
yubioath-desktop
|
||||
];
|
||||
|
||||
# Brightness/volume keys
|
||||
users.users.agatha.extraGroups = [ "video" ];
|
||||
programs.light.enable = true;
|
||||
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
displayManager = {
|
||||
gdm.enable = true;
|
||||
# gdm.wayland = true;
|
||||
|
||||
sessionPackages = [ pkgs.sway ];
|
||||
session = [{
|
||||
manage = "window";
|
||||
name = "bspwm";
|
||||
start = let cfg = config.home-manager.users.agatha;
|
||||
in ''
|
||||
${cfg.services.sxhkd.package}/bin/sxhkd ${
|
||||
toString cfg.services.sxhkd.extraOptions
|
||||
} &
|
||||
${cfg.xsession.windowManager.bspwm.package}/bin/bspwm -c ${cfg.xdg.configHome}/bspwm/bspwmrc
|
||||
'';
|
||||
}];
|
||||
};
|
||||
# Layout overrides
|
||||
layout = lib.mkForce "eu,de(qwerty),ua,ru";
|
||||
xkbOptions = "ctrl:nocaps,compose:rctrl";
|
||||
|
||||
synaptics = {
|
||||
enable = true;
|
||||
|
||||
tapButtons = true;
|
||||
vertTwoFingerScroll = true;
|
||||
vertEdgeScroll = true;
|
||||
|
||||
horizEdgeScroll = true;
|
||||
horizTwoFingerScroll = true;
|
||||
|
||||
palmDetect = true;
|
||||
palmMinWidth = 8;
|
||||
palmMinZ = 100;
|
||||
};
|
||||
};
|
||||
|
||||
home-manager.users.agatha = {
|
||||
# Compose key sequences
|
||||
home.file.".XCompose".text = ''
|
||||
include "%L"
|
||||
|
||||
<Multi_key> <l> <f> : "( ͡° ͜ʖ ͡°)"
|
||||
<Multi_key> <s> <f> : "¯\\_(ツ)_/¯"
|
||||
<Multi_key> <g> <f> : "༼ つ ◕_◕ ༽つ"
|
||||
<Multi_key> <B> <B> : "🅱️"
|
||||
<Multi_key> <o> <asterisk> : "•"
|
||||
<Multi_key> <h> <r> : "◆"
|
||||
<Multi_key> <v> <v> : "✔"
|
||||
<Multi_key> <v> <period> <v> : "✓"
|
||||
<Multi_key> <space> <space> : ""
|
||||
<Multi_key> <s> <0> : "§"
|
||||
<Multi_key> <b><l> : "█"
|
||||
<Multi_key> <h><s> : "☭"
|
||||
<Multi_key> <s><r> : "√"
|
||||
<Multi_key> <t><r> : "⚧️ trans rights uwu"
|
||||
<Multi_key> <w><apostrophe> : "òwó"
|
||||
<Multi_key> <W><apostrophe> : "ÒwÓ"
|
||||
<Multi_key> <p><t> : "👉👈"
|
||||
<Multi_key> <p><l> : "🥺"
|
||||
<Multi_key> <m><s> : "/html <span data-mx-spoiler=\"\"></span>"
|
||||
'';
|
||||
|
||||
# Cursor theme
|
||||
home.pointerCursor = {
|
||||
name = "Adwaita";
|
||||
package = pkgs.gnome.adwaita-icon-theme;
|
||||
size = 24;
|
||||
x11 = {
|
||||
enable = true;
|
||||
defaultCursor = "Adwaita";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
security.polkit.enable = true;
|
||||
|
||||
# Screenshare on wlroots
|
||||
xdg = {
|
||||
portal = {
|
||||
enable = true;
|
||||
extraPortals = with pkgs; [
|
||||
xdg-desktop-portal-wlr
|
||||
xdg-desktop-portal-gtk
|
||||
];
|
||||
wlr.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
fonts.fontconfig.enable = true;
|
||||
fonts.fonts = with pkgs; [
|
||||
cantarell-fonts
|
||||
crimson
|
||||
dejavu_fonts
|
||||
fira-code
|
||||
fira-code-symbols
|
||||
font-awesome_5
|
||||
iosevka
|
||||
noto-fonts-cjk
|
||||
siji
|
||||
twitter-color-emoji
|
||||
(nerdfonts.override { fonts = [ "DaddyTimeMono" "NerdFontsSymbolsOnly" ]; })
|
||||
];
|
||||
|
||||
services.printing.enable = true;
|
||||
|
||||
# Pipewire
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
}
|
|
@ -0,0 +1,109 @@
|
|||
{ pkgs, config, lib, ... }: {
|
||||
home-manager.users.agatha = {
|
||||
xdg.configFile."Element/config.json".text = ''
|
||||
{
|
||||
"settingDefaults": {
|
||||
"custom_themes": [
|
||||
{
|
||||
"name": "Sapphic Lavender",
|
||||
"is_dark": true,
|
||||
"fonts": {
|
||||
"general": "Allust, Twemoji, Twitter Color Emoji, sans",
|
||||
"monospace": "'Iosevka Medium Extended', 'Fira Code'"
|
||||
},
|
||||
"colors": {
|
||||
"accent": "#D2ADC6",
|
||||
"accent-color": "#D2ADC6",
|
||||
"primary-color": "#D2ADC6",
|
||||
"warning-color": "#BF80A6",
|
||||
"alert": "#BF80A6",
|
||||
"sidebar-color": "#231724",
|
||||
"primary-content": "#180F19",
|
||||
"secondary-content": "#E5D9E6",
|
||||
"tertiary-content": "#D2ADC6",
|
||||
"quaternary-content": "#E5D9E6",
|
||||
"quinary-content": "#251926",
|
||||
"system": "#180F19",
|
||||
"background": "#00f",
|
||||
"roomlist-background-color": "#231724",
|
||||
"roomlist-text-color": "#E5D9E6",
|
||||
"roomlist-text-secondary-color": "#ffd1dc",
|
||||
"roomlist-highlights-color": "#180F19",
|
||||
"roomlist-separator-color": "#180F19",
|
||||
"timeline-background-color": "#180F19",
|
||||
"timeline-text-color": "#E5D9E6",
|
||||
"timeline-text-secondary-color": "#D2ADC6",
|
||||
"timeline-highlights-color": "#231724",
|
||||
"eventbubble-self-bg": "#231724",
|
||||
"eventbubble-others-bg": "#231724",
|
||||
"eventbubble-bg-hover": "#231724",
|
||||
"eventbubble-reply-color": "#231724",
|
||||
"username-colors": [
|
||||
"#D8BFD8",
|
||||
"#ffd1dc",
|
||||
"#DDA0DD",
|
||||
"#DA70D6",
|
||||
"#BA55D3",
|
||||
"#9932CC",
|
||||
"#800060",
|
||||
"#8B008B"
|
||||
],
|
||||
"avatar-background-colors": ["#896bad", "#b09cc8", "#bdacd1"],
|
||||
"reaction-row-button-selected-bg-color": "#bd93f9"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Transgender Vampirism",
|
||||
"is_dark": true,
|
||||
"fonts": {
|
||||
"general": "Crimson, Noto Color Emoji, Twemoji, Twitter Color Emoji, sans",
|
||||
"monospace": "'Iosevka Gothic', 'Fira Code'"
|
||||
},
|
||||
"colors": {
|
||||
"accent": "#747E9D",
|
||||
"accent-color": "#747E9D",
|
||||
"primary-color": "#747E9D",
|
||||
"warning-color": "#110E18",
|
||||
"sidebar-color": "#16121F",
|
||||
"primary-content": "#110E18",
|
||||
"secondary-content": "#D5D6E8",
|
||||
"tertiary-content": "#747E9D",
|
||||
"quaternary-content": "#D5D6E8",
|
||||
"quinary-content": "#16121F",
|
||||
"system": "#16121F",
|
||||
"background": "#00f",
|
||||
"roomlist-background-color": "#16121F",
|
||||
"roomlist-text-color": "#D5D6E8",
|
||||
"roomlist-text-secondary-color": "#747E9D",
|
||||
"roomlist-highlights-color": "#110E18",
|
||||
"roomlist-separator-color": "#110E18",
|
||||
"timeline-background-color": "#110E18",
|
||||
"timeline-text-color": "#D5D6E8",
|
||||
"timeline-text-secondary-color": "#747E9D",
|
||||
"timeline-highlights-color": "#16121F",
|
||||
"eventbubble-self-bg": "#16121F",
|
||||
"eventbubble-others-bg": "#16121F",
|
||||
"eventbubble-bg-hover": "#16121F",
|
||||
"eventbubble-reply-color": "#16121F",
|
||||
"username-colors": [
|
||||
"#D8BFD8",
|
||||
"#AA9AB6",
|
||||
"#DDA0DD",
|
||||
"#DA70D6",
|
||||
"#7A5286",
|
||||
"#9932CC",
|
||||
"#800060",
|
||||
"#8B008B"
|
||||
],
|
||||
"avatar-background-colors": ["#896bad", "#b09cc8", "#bdacd1"],
|
||||
"reaction-row-button-selected-bg-color": "#bd93f9"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"showLabsSettings": true,
|
||||
"features": ["feature_latex_maths"]
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
{ config, pkgs, ... }: {
|
||||
# Iosevka Gothic
|
||||
nixpkgs.overlays = [
|
||||
(final: prev: {
|
||||
iosevka = prev.iosevka.override {
|
||||
privateBuildPlan = ''
|
||||
[buildPlans.iosevka-gothic]
|
||||
family = "Iosevka Gothic"
|
||||
spacing = "normal"
|
||||
serifs = "slab"
|
||||
no-cv-ss = true
|
||||
export-glyph-names = true
|
||||
|
||||
[buildPlans.iosevka-gothic.variants.design]
|
||||
capital-a = "straight-base-serifed"
|
||||
capital-b = "standard-bilateral-serifed"
|
||||
capital-h = "serifed"
|
||||
capital-i = "serifed"
|
||||
capital-q = "crossing"
|
||||
capital-r = "standing"
|
||||
f = "tailed"
|
||||
l = "tailed-serifed"
|
||||
z = "cursive"
|
||||
long-s = "bent-hook-tailed"
|
||||
eszet = "sulzbacher-descending"
|
||||
lower-mu = "tailed"
|
||||
lower-xi = "flat-top"
|
||||
three = "flat-top"
|
||||
six = "straight-bar"
|
||||
asterisk = "flip-penta-high"
|
||||
pilcrow = "high"
|
||||
caret = "medium"
|
||||
paren = "normal"
|
||||
brace = "curly-flat-boundary"
|
||||
number-sign = "upright"
|
||||
ampersand = "closed"
|
||||
at = "short"
|
||||
lig-ltgteq = "slanted"
|
||||
ascii-single-quote = "raised-comma"
|
||||
ascii-grave = "straight"
|
||||
|
||||
[buildPlans.iosevka-gothic.variants.italic]
|
||||
capital-z = "cursive-with-horizontal-crossbar"
|
||||
|
||||
[buildPlans.iosevka-gothic.ligations]
|
||||
inherits = "haskell"
|
||||
'';
|
||||
set = "gothic";
|
||||
};
|
||||
})
|
||||
];
|
||||
}
|
|
@ -0,0 +1,79 @@
|
|||
{ pkgs, config, ... }@attrs:
|
||||
let
|
||||
utils = import ./colors.nix attrs;
|
||||
colorscheme = utils.colorscheme "purple" ../../../external/6.png;
|
||||
color = n: colorscheme.colors."${builtins.toString n}";
|
||||
in {
|
||||
home-manager.users.agatha = {
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
font = {
|
||||
package = pkgs.iosevka;
|
||||
name = "Iosevka Gothic";
|
||||
size = 11.5;
|
||||
};
|
||||
|
||||
keybindings = { "f5" = "load_config_file"; };
|
||||
|
||||
settings = {
|
||||
disable_ligatures = "never";
|
||||
|
||||
draw_minimal_borders = false;
|
||||
active_tab_font_style = "italic";
|
||||
inactive_tab_font_style = "normal";
|
||||
|
||||
scrollback_lines = -10000;
|
||||
url_style = "single";
|
||||
|
||||
strip_trailing_spaces = "smart";
|
||||
enable_audio_bell = false;
|
||||
|
||||
window_margin_width = 10;
|
||||
window_padding_width = 10;
|
||||
inactive_text_alpha = "0.8";
|
||||
enabled_layouts = "vertical, grid, stack";
|
||||
|
||||
tab_bar_edge = "top";
|
||||
tab_bar_style = "fade";
|
||||
tab_bar_margin_width = 5;
|
||||
tab_separator = "•";
|
||||
tab_title_template = "☾ {index}";
|
||||
|
||||
foreground = color 15;
|
||||
background = color 0;
|
||||
cursor = color 16;
|
||||
|
||||
color0 = color 0;
|
||||
color8 = color 8;
|
||||
color1 = color 1;
|
||||
color9 = color 9;
|
||||
color2 = color 2;
|
||||
color10 = color 10;
|
||||
color3 = color 3;
|
||||
color11 = color 11;
|
||||
color4 = color 4;
|
||||
color12 = color 12;
|
||||
color5 = color 5;
|
||||
color13 = color 13;
|
||||
color6 = color 6;
|
||||
color14 = color 14;
|
||||
color7 = color 7;
|
||||
color15 = color 15;
|
||||
|
||||
selection_foreground = color 1;
|
||||
selection_background = color 15;
|
||||
|
||||
url_color = color 1;
|
||||
|
||||
active_border_color = color 1;
|
||||
inactive_border_color = color 2;
|
||||
bell_border_color = color 6;
|
||||
|
||||
active_tab_foreground = color 15;
|
||||
active_tab_background = color 1;
|
||||
inactive_tab_foreground = color 8;
|
||||
inactive_tab_background = color 2;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -0,0 +1,89 @@
|
|||
{ pkgs, config, lib, ... }: {
|
||||
home-manager.users.agatha = {
|
||||
services.picom = {
|
||||
enable = true;
|
||||
package = pkgs.picom-next;
|
||||
|
||||
# General
|
||||
backend = "glx";
|
||||
vSync = true;
|
||||
settings = {
|
||||
mark-wmwin-focused = true;
|
||||
detect = {
|
||||
rounded-corners = true;
|
||||
client-opacity = true;
|
||||
transient = true;
|
||||
client-leader = true;
|
||||
};
|
||||
use-damage = true;
|
||||
|
||||
wintypes = {
|
||||
tooltip = {
|
||||
fade = true;
|
||||
shadow = true;
|
||||
opacity = 0.75;
|
||||
focus = true;
|
||||
full-shadow = false;
|
||||
};
|
||||
dock = { shadow = false; };
|
||||
dnd = { shadow = false; };
|
||||
popup_menu = { opacity = 0.8; };
|
||||
dropdown_menu = { opacity = 0.8; };
|
||||
};
|
||||
};
|
||||
|
||||
# Shadows
|
||||
shadow = true;
|
||||
shadowOpacity = 1.0;
|
||||
shadowOffsets = [ (-7) (-7) ];
|
||||
shadowExclude = [
|
||||
"name = 'Notification'"
|
||||
"class_g ?= 'Notify-osd'"
|
||||
"class_g = 'Cairo-clock'"
|
||||
"class_g = 'firefox-nightly' && argb"
|
||||
"class_g = 'firefox' && argb"
|
||||
"_GTK_FRAME_EXTENTS@:c"
|
||||
];
|
||||
|
||||
# Fade
|
||||
fade = true;
|
||||
fadeSteps = [ 5.0e-2 5.0e-2 ];
|
||||
|
||||
# Opacity
|
||||
settings.frame-opacity = 0.7;
|
||||
settings.inactive-opacity-override = false;
|
||||
settings.inactive-dim = 0.2;
|
||||
settings.focus-exclude = [
|
||||
"class_g = 'firefox-nightly'"
|
||||
"class_g = 'firefox'"
|
||||
"class_g = 'Dunst'"
|
||||
];
|
||||
opacityRules = [
|
||||
"100:_NET_WM_STATE@[0]:32a = '_NET_WM_STATE_FULLSCREEN'"
|
||||
"100:_NET_WM_STATE@[1]:32a = '_NET_WM_STATE_FULLSCREEN'"
|
||||
"100:_NET_WM_STATE@[2]:32a = '_NET_WM_STATE_FULLSCREEN'"
|
||||
"100:_NET_WM_STATE@[3]:32a = '_NET_WM_STATE_FULLSCREEN'"
|
||||
"100:_NET_WM_STATE@[4]:32a = '_NET_WM_STATE_FULLSCREEN'"
|
||||
"0:_COMPTON_MONOCLE@:32c = 0"
|
||||
"70:class_g = 'kitty'"
|
||||
"80:class_g = 'Dunst'"
|
||||
"20:class_g = 'Bspwm' && class_i = 'presel_feedback'"
|
||||
];
|
||||
|
||||
# Blur
|
||||
settings.blur = {
|
||||
method = "dual_kawase";
|
||||
strength = 3;
|
||||
background = true;
|
||||
kern = "3x3box";
|
||||
background-exclude = [
|
||||
"window_type = 'dock'"
|
||||
"window_type = 'desktop'"
|
||||
"_GTK_FRAME_EXTENTS@:c"
|
||||
"class_g = 'firefox-nightly' && argb"
|
||||
"class_g = 'firefox' && argb"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -0,0 +1,258 @@
|
|||
{ lib, pkgs, config, ... }@attrs:
|
||||
let
|
||||
utils = import ./colors.nix attrs;
|
||||
colorscheme = utils.colorscheme "purple" ../../../external/6.png;
|
||||
in {
|
||||
home-manager.users.agatha = {
|
||||
services.polybar = {
|
||||
enable = true;
|
||||
package = pkgs.polybarFull;
|
||||
|
||||
script = "polybar right &";
|
||||
|
||||
settings = let color = n: colorscheme.colors."${builtins.toString n}";
|
||||
in {
|
||||
"colors" = {
|
||||
background = color 0;
|
||||
foreground = color 7;
|
||||
foreground-alt = color 7;
|
||||
primary = color 1;
|
||||
secondary = color 2;
|
||||
alert = color 3;
|
||||
red = color 4;
|
||||
};
|
||||
|
||||
"bar/right" = {
|
||||
monitor = "\${env:MONITOR:eDP-1}";
|
||||
width = "100%:-30";
|
||||
height = 30;
|
||||
offset-x = 15;
|
||||
offset-y = 12;
|
||||
radius = 0;
|
||||
fixed-center = true;
|
||||
|
||||
background = "\${colors.background}";
|
||||
foreground = "\${colors.foreground}";
|
||||
|
||||
line = {
|
||||
size = 0;
|
||||
color = color 3;
|
||||
};
|
||||
border = {
|
||||
size = 3;
|
||||
color = color 1;
|
||||
};
|
||||
padding = {
|
||||
left = 2;
|
||||
right = 2;
|
||||
};
|
||||
module.margin = {
|
||||
left = 1;
|
||||
right = 1;
|
||||
};
|
||||
|
||||
font = {
|
||||
"0" = "Iosevka Gothic:pixelsize=10;3";
|
||||
"1" = "DejaVuSans:fontformat=truetype:size=8:antialias=false;2";
|
||||
"2" = "Siji:pixelsize=11;2";
|
||||
"3" = "Symbols Nerd Font:pixelsize=10;2";
|
||||
"4" = "DejaVuSans:fontformat=truetype:size=8:antialias=false;1";
|
||||
};
|
||||
|
||||
modules = {
|
||||
left = "bspwm";
|
||||
center = "date";
|
||||
right =
|
||||
"filesystem battery pulseaudio xkeyboard memory cpu notication-status powermenu";
|
||||
};
|
||||
|
||||
wm-restack = "bspwm";
|
||||
cursor-click = "pointer";
|
||||
locale = "de_DE.UTF-8";
|
||||
};
|
||||
|
||||
"module/xkeyboard" = {
|
||||
type = "internal/xkeyboard";
|
||||
blacklist-0 = "num lock";
|
||||
|
||||
format-prefix = " ";
|
||||
format-prefix-foreground = "\${colors.foreground-alt}";
|
||||
|
||||
label = {
|
||||
layout = "%layout%";
|
||||
|
||||
indicator = {
|
||||
padding = 2;
|
||||
margin = 1;
|
||||
background = "\${colors.secondary}";
|
||||
underline = "\${colors.secondary}";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
"module/bspwm" = {
|
||||
type = "internal/bspwm";
|
||||
|
||||
label = {
|
||||
focused = "%name%";
|
||||
focused-foreground = "\${colors.primary}";
|
||||
focused-padding = 1;
|
||||
|
||||
occupied = "%name%";
|
||||
occupied-padding = 1;
|
||||
|
||||
urgent = "%name%!";
|
||||
urgent-background = "\${xrdb:color1:#222}";
|
||||
urgent-padding = 1;
|
||||
|
||||
empty = "%name%";
|
||||
empty-foreground = "\${colors.foreground-alt}";
|
||||
empty-padding = 1;
|
||||
};
|
||||
};
|
||||
|
||||
"module/date" = {
|
||||
type = "internal/date";
|
||||
interval = 5;
|
||||
|
||||
date = "";
|
||||
date-alt = " %a, %d %b %Y";
|
||||
|
||||
time = "%H:%M";
|
||||
time-alt = "%H:%M:%S";
|
||||
|
||||
format-prefix = "";
|
||||
format-prefix-foreground = "\${colors.foreground-alt}";
|
||||
|
||||
label = ''
|
||||
%{A3:dunstify ' Calendar' "$(cal --color=always | sed "s#\\x1b\\[7m#<b>#;s#\\x1b\\[27m#</b>#g")":}%date%%{A} %time%'';
|
||||
};
|
||||
|
||||
"module/filesystem" = {
|
||||
type = "internal/fs";
|
||||
interval = 25;
|
||||
|
||||
mount-0 = "/";
|
||||
|
||||
label-mounted = "%mountpoint%: %percentage_used%%";
|
||||
label-unmounted = "%mountpoint% not mounted";
|
||||
label-unmounted-foreground = "\${colors.foreground-alt}";
|
||||
};
|
||||
|
||||
"module/cpu" = {
|
||||
type = "internal/cpu";
|
||||
interval = 2;
|
||||
format-prefix = " ";
|
||||
format-prefix-foreground = "\${colors.foreground-alt}";
|
||||
label = "%{A1:kitty btop:}%percentage:2%%%{A}";
|
||||
};
|
||||
|
||||
"module/memory" = {
|
||||
type = "internal/memory";
|
||||
interval = 2;
|
||||
format-prefix = " ";
|
||||
format-prefix-foreground = "\${colors.foreground-alt}";
|
||||
label = "%{A1:kitty btop:}%percentage_used%%%{A}";
|
||||
};
|
||||
|
||||
"module/pulseaudio" = {
|
||||
type = "internal/pulseaudio";
|
||||
|
||||
format-volume = "%{A3:pavucontrol:}<label-volume> <bar-volume>%{A}";
|
||||
label-volume = " %percentage%%";
|
||||
label-volume-foreground = "\${root.foreground}";
|
||||
|
||||
label-muted = " muted";
|
||||
label-muted-foreground = "#666";
|
||||
|
||||
bar.volume = {
|
||||
width = 14;
|
||||
foreground-0 = "\${colors.secondary}";
|
||||
foreground-1 = "\${colors.secondary}";
|
||||
foreground-2 = "\${colors.primary}";
|
||||
foreground-3 = "\${colors.primary}";
|
||||
foreground-4 = "\${colors.primary}";
|
||||
foreground-5 = "\${colors.alert}";
|
||||
foreground-6 = "\${colors.red}";
|
||||
gradient = false;
|
||||
indicator = "|";
|
||||
indicator-font = 5;
|
||||
fill = "─";
|
||||
fill-font = 2;
|
||||
empty = "─";
|
||||
empty-font = 2;
|
||||
empty-foreground = "\${colors.foreground-alt}";
|
||||
};
|
||||
};
|
||||
|
||||
"module/powermenu" = {
|
||||
type = "custom/menu";
|
||||
|
||||
expand-right = true;
|
||||
format-spacing = 1;
|
||||
|
||||
label = {
|
||||
open = "";
|
||||
open-foreground = "\${colors.secondary}";
|
||||
close = " cancel";
|
||||
close-foreground = "\${colors.secondary}";
|
||||
separator = "|";
|
||||
separator-foreground = "\${colors.foreground-alt}";
|
||||
};
|
||||
|
||||
menu = {
|
||||
"0-0" = "reboot";
|
||||
"0-0-exec" = "reboot";
|
||||
"0-1" = "power off";
|
||||
"0-1-exec" = "sudo poweroff";
|
||||
};
|
||||
};
|
||||
|
||||
"module/battery" = {
|
||||
type = "internal/battery";
|
||||
full-at = 99;
|
||||
low-at = 10;
|
||||
battery = "BAT0";
|
||||
adapter = "AC";
|
||||
poll-interval = 3;
|
||||
|
||||
content-font = 3;
|
||||
|
||||
format-charging = "<animation-charging> <label-charging>";
|
||||
format-discharging = "<ramp-capacity> <label-discharging>";
|
||||
label = {
|
||||
charging = "%percentage_raw%%";
|
||||
discharging = "%percentage_raw%%";
|
||||
full = "";
|
||||
};
|
||||
|
||||
ramp = {
|
||||
capacity-0 = "";
|
||||
capacity-1 = "";
|
||||
capacity-2 = "";
|
||||
capacity-3 = "";
|
||||
capacity-4 = "";
|
||||
};
|
||||
|
||||
animation = {
|
||||
charging-0 = "";
|
||||
charging-1 = "";
|
||||
charging-2 = "";
|
||||
charging-3 = "";
|
||||
charging-4 = "";
|
||||
|
||||
charging-framerate = 750;
|
||||
};
|
||||
};
|
||||
|
||||
"module/notification-status" = {
|
||||
type = "custom/script";
|
||||
exec = ''
|
||||
if $(dunstctl is-paused); then; echo "Notifications paused"; else; echo ""; fi;'';
|
||||
interval = 2;
|
||||
format-prefix = " ";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -0,0 +1,103 @@
|
|||
{ pkgs, config, ... }: {
|
||||
|
||||
# User packages
|
||||
users.users.agatha.packages = with pkgs; [ grim rofi-wayland waybar ydotool ];
|
||||
|
||||
home-manager.users.agatha = {
|
||||
wayland.windowManager.sway = let
|
||||
cfg = config.home-manager.users.agatha.wayland.windowManager.sway.config;
|
||||
in {
|
||||
enable = true;
|
||||
config = {
|
||||
up = "i";
|
||||
left = "j";
|
||||
down = "k";
|
||||
right = "l";
|
||||
|
||||
modifier = "Mod4";
|
||||
terminal = "kitty";
|
||||
|
||||
fonts = {
|
||||
names = [ "Font Awesome 5 Free" "Iosevka Gothic" ];
|
||||
size = 11.0;
|
||||
};
|
||||
|
||||
workspaceAutoBackAndForth = true;
|
||||
window = {
|
||||
titlebar = true;
|
||||
hideEdgeBorders = "both";
|
||||
border = 0;
|
||||
};
|
||||
|
||||
gaps.inner = 15;
|
||||
|
||||
output."*" = { bg = "/home/agatha/Pictures/wallpaper.png fill"; };
|
||||
|
||||
input."type:keyboard" = {
|
||||
xkb_layout = config.services.xserver.layout;
|
||||
xkb_options = config.services.xserver.xkbOptions;
|
||||
};
|
||||
|
||||
input."type:touchpad" = { tap = "enabled"; };
|
||||
|
||||
keybindings = let mod = cfg.modifier;
|
||||
in {
|
||||
"${mod}+Return" = "exec ${cfg.terminal}";
|
||||
"Caps_Lock" = "exec ${cfg.terminal}";
|
||||
"${mod}+e" = "exec nautilus";
|
||||
"${mod}+space" = "exec rofi -show drun";
|
||||
"${mod}+shift+e" = "exec rofimoji --action clipboard";
|
||||
"${mod}+c" = ''
|
||||
exec rofi -show calc -modi calc -calc-command 'xdotool type --clearmodifiers "\{result\}"'
|
||||
'';
|
||||
XF86AudioRaiseVolume = "exec pamixer -i 5";
|
||||
XF86AudioLowerVolume = "exec pamixer -d 5";
|
||||
XF86AudioMute = "exec pamixer -t";
|
||||
XF86AudioPrev = "exec playerctl previous";
|
||||
XF86AudioNext = "exec playerctl next";
|
||||
XF86AudioPlay = "exec playerctl play-pause";
|
||||
Print = "exec flameshot gui";
|
||||
"shift+Print" = "exec flameshot gui -d 3000";
|
||||
"${mod}+n" = "exec dunstctl set-paused toggle";
|
||||
# "${mod}+o" = "TODO: port audio switcher";
|
||||
"${mod}+shift+r" =
|
||||
"reload; exec 'for p in waybar dunst; do; killall $p; done'";
|
||||
"${mod}+w" = "kill";
|
||||
"${mod}+m" = "layout tabbed";
|
||||
"${mod}+t" = "layout toggle split";
|
||||
"${mod}+s" = "floating toggle";
|
||||
"${mod}+f" = "fullscreen toggle";
|
||||
|
||||
"alt+Tab" = "exec rofi -show window";
|
||||
|
||||
# "${mod}+x" = "TODO: lockscreen";
|
||||
|
||||
"${mod}+Shift+${cfg.left}" = "move left";
|
||||
"${mod}+Shift+${cfg.down}" = "move down";
|
||||
"${mod}+Shift+${cfg.up}" = "move up";
|
||||
"${mod}+Shift+${cfg.right}" = "move right";
|
||||
|
||||
"${mod}+1" = "workspace number 1";
|
||||
"${mod}+2" = "workspace number 2";
|
||||
"${mod}+3" = "workspace number 3";
|
||||
"${mod}+4" = "workspace number 4";
|
||||
"${mod}+5" = "workspace number 5";
|
||||
"${mod}+6" = "workspace number 6";
|
||||
"${mod}+7" = "workspace number 7";
|
||||
"${mod}+8" = "workspace number 8";
|
||||
"${mod}+9" = "workspace number 9";
|
||||
|
||||
"${mod}+Shift+1" = "move container to workspace number 1";
|
||||
"${mod}+Shift+2" = "move container to workspace number 2";
|
||||
"${mod}+Shift+3" = "move container to workspace number 3";
|
||||
"${mod}+Shift+4" = "move container to workspace number 4";
|
||||
"${mod}+Shift+5" = "move container to workspace number 5";
|
||||
"${mod}+Shift+6" = "move container to workspace number 6";
|
||||
"${mod}+Shift+7" = "move container to workspace number 7";
|
||||
"${mod}+Shift+8" = "move container to workspace number 8";
|
||||
"${mod}+Shift+9" = "move container to workspace number 9";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 6.7 MiB |
Loading…
Reference in New Issue