reestructuración

This commit is contained in:
Fabián Montero 2022-11-29 21:29:21 -06:00
parent 576b7c5798
commit b29950097c
33 changed files with 1054 additions and 913 deletions

View file

@ -1,8 +1,14 @@
{ config, pkgs, lib, ... } :
with lib;
let
cfg = config.local.gui.autorandr;
in
{
programs.autorandr = {
enable = true;
profiles."${config.local.platform}" = config.local.display.autorandrProfile;
options.local.gui.autorandr.enable = mkEnableOption "Autorandr";
config = mkIf cfg.enable {
programs.autorandr = {
enable = true;
profiles."${config.local.platform}" = config.local.display.autorandrProfile;
};
};
}

View file

@ -1,43 +1,49 @@
{ config, pkgs, lib, ... } :
with lib;
let
cfg = config.local.gui;
in
{
options.local.gui = {
enable = mkEnableOption "GUI settings and programs";
desktop = mkEnableOption "i3 desktop envirorment"
};
imports = [
./autorandr.nix
./desktop
./fonts.nix
./gtk.nix
./i3.nix
./polybar.nix
./startx.nix
];
config = mkIf ( !config.home.isolation.active ) {
config = mkIf cfg.enable {
local.gui = {
fonts.enable = mkDefault true;
gtk.enable = mkDefault true;
services.picom = {
enable = true;
autorandr.enable = mkDefault cfg.desktop;
i3.enable = mkDefault cfg.desktop;
polybar.enable = mkDefault cfg.desktop;
startx.enable = mkDefault cfg.desktop;
};
services.dunst = {
enable = true;
};
services.betterlockscreen = {
enable = true;
};
xdg.mimeApps = {
enable = true;
defaultApplications = {
"application/pdf" = [ "org.kde.okular.desktop" ];
"application/x-extension-htm" = [ "firefox.desktop" ];
"application/x-extension-html" = [ "firefox.desktop" ];
"application/x-extension-shtml" = [ "firefox.desktop" ];
"application/x-extension-xht" = [ "firefox.desktop" ];
"application/x-extension-xhtml" = [ "firefox.desktop" ];
"application/xhtml+xml" = [ "firefox.desktop" ];
"text/html" = [ "firefox.desktop" ];
"x-scheme-handler/http" = [ "firefox.desktop" ];
"x-scheme-handler/https" = [ "firefox.desktop" ];
services = mkIf cfg.desktop {
picom = {
enable = true;
};
dunst = {
enable = true;
};
betterlockscreen = {
enable = true;
};
};
xdg.mimeApps.enable = true;
};
}

View file

@ -1,13 +0,0 @@
{ config, lib, pkgs, ...} :
with lib;
{
imports = [
./terminal.nix
./steam
./vscode.nix
];
# el sistema de shenvs detecta
# que esto solo va para mi home,
# no para las shenvs
programs.steam.enable = !config.home.isolation.active;
}

View file

@ -1,87 +0,0 @@
''
# Fonts
font_family JetBrains Mono Medium
bold_font JetBrains Mono Bold
italic_font JetBrains Mono Italic
bold_italic_font JetBrains Mono Bold Italic
font_size 15
disable_ligatures cursor
initial_window_width 1200
initial_window_height 600
# Cursor
cursor_shape beam
cursor_beam_thickness 1.9
cursor_stop_blinking_after 0
# Audio
enable_audio_bell no
# Tabs
tab_bar_style separator
tab_separator " | "
tab_title_template "{index}: {title}"
# Color
# special
foreground #ffffff
foreground_bold #ffffff
cursor #ffffff
background #000000
background_opacity 1
# Shortcuts
map ctrl+shift+c copy_to_clipboard
map ctrl+shift+v paste_from_clipboard
map ctrl+shift+s paste_from_selection
map shift+insert paste_from_selection
map ctrl+shift+up scroll_line_up
map ctrl+shift+down scroll_line_down
map ctrl+shift+page_up scroll_page_up
map ctrl+shift+page_down scroll_page_down
map ctrl+shift+home scroll_home
map ctrl+shift+end scroll_end
map ctrl+shift+enter new_window
map ctrl+alt+enter launch --cwd=current
map ctrl+shift+w close_window
map ctrl+shift+] next_window
map ctrl+shift+[ previous_window
map ctrl+shift+1 first_window
map ctrl+shift+2 second_window
map ctrl+shift+3 third_window
map ctrl+shift+4 fourth_window
map ctrl+shift+5 fifth_window
map ctrl+shift+6 sixth_window
map ctrl+shift+7 seventh_window
map ctrl+shift+8 eighth_window
map ctrl+shift+9 ninth_window
map ctrl+shift+0 tenth_window
map ctrl+shift+right next_tab
map ctrl+shift+left previous_tab
map ctrl+shift+t new_tab
map ctrl+shift+q close_tab
map ctrl+shift+. move_tab_forward
map ctrl+shift+, move_tab_backward
map ctrl+shift+alt+t set_tab_title
map ctrl+alt+1 goto_tab 1
map ctrl+alt+2 goto_tab 2
map ctrl+alt+3 goto_tab 3
map ctrl+alt+4 goto_tab 4
map ctrl+alt+5 goto_tab 5
map ctrl+alt+6 goto_tab 6
map ctrl+alt+7 goto_tab 7
map ctrl+alt+8 goto_tab 8
map ctrl+alt+9 goto_tab 9
map ctrl+alt+0 goto_tab 10
map ctrl+shift+equal change_font_size all +1.0
map ctrl+shift+minus change_font_size all -1.0
map ctrl+shift+backspace change_font_size all 0
map ctrl+shift+delete clear_terminal reset active
''

View file

@ -1,13 +0,0 @@
{pkgs, lib, config, ...}:
with lib; let
cfg = config.programs.steam;
in {
options = {
programs.steam.enable = mkEnableOption "Weather to enable option or not.";
};
config = mkIf cfg.enable {
home.packages = [
(pkgs.callPackage ./package.nix {})
];
};
}

View file

@ -1,4 +0,0 @@
{ writeShellScriptBin, steam-run, steam, ... }:
writeShellScriptBin "steam" ''
exec ${steam-run}/bin/steam-run ${steam}/bin/steam
''

View file

@ -1,28 +0,0 @@
{config, lib, pkgs, ...} :
with lib;
{
programs = mkIf ( !config.home.isolation.active ) {
kitty = {
enable = true;
extraConfig = import ./kitty.conf.nix;
};
tmux = {
enable = true;
aggressiveResize = true;
clock24 = true;
escapeTime = 10;
terminal = "xterm-256color";
keyMode = "emacs";
extraConfig = ''
set -g mouse on
set -ga update-environment " LIFT_PID"
set -g set-titles on
set -g renumber-windows on
set -sa terminal-overrides ',xterm-termite:RGB'
set -g status-right "#{?window_bigger,[#{window_offset_x}#,#{window_offset_y}] ,} %H:%M %d-%b-%y"
'';
};
};
}

View file

@ -1,67 +0,0 @@
{config, lib, pkgs, ...} :
with lib;
{
programs.vscode = mkIf ( !config.home.isolation.active ) {
enable = true;
package = pkgs.vscodium;
haskell = {
enable = true;
hie.enable = false;
};
mutableExtensionsDir = false;
extensions = (with pkgs.vscode-extensions; [
bbenoist.nix
ms-toolsai.jupyter
ms-vscode.cpptools
]) ++ (with pkgs.local.vscode-extensions; [
rust-lang.rust
sirtori.indenticator
toasty-technologies.octave
Gimly81.matlab
zhwu95.riscv
tomoki1207.pdf
vscode-icons-team.vscode-icons
dan-c-underwood.arm
mshr-h.VerilogHDL
rashwell.tcl
xshrim.txt-syntax
ZixuanWang.linkerscript
hediet.vscode-drawio
aaron-bond.better-comments
streetsidesoftware.code-spell-checker
wayou.vscode-todo-highlight
xaver.clang-format
yzhang.markdown-all-in-one
christian-kohler.path-intellisense
sukumo28.wav-preview
oderwat.indent-rainbow
ms-python.python
]);
userSettings = {
"files.autoSave" = "onFocusChange";
"explorer.confirmDelete" = false;
"explorer.confirmDragAndDrop" = false;
"security.workspace.trust.enabled" = false;
"workbench.startupEditor" = "none";
"workbench.colorTheme" = "Default High Contrast";
"editor.mouseWheelZoom" = true;
"editor.cursorSmoothCaretAnimation" = true;
"workbench.list.smoothScrolling" = true;
"editor.smoothScrolling" = true;
"editor.rulers" = [80 120];
"workbench.iconTheme" = "vscode-icons";
"workbench.editor.untitled.hint" = "hidden";
"editor.autoClosingDelete" = "never";
"editor.autoClosingOvertype" = "never";
"editor.autoClosingBrackets" = "never";
"editor.autoClosingQuotes" = "never";
"indentRainbow.colors" = [
"rgba(255,255,64,0.2)"
"rgba(127,255,127,0.2)"
"rgba(255,127,255,0.2)"
"rgba(79,236,236,0.2)"
];
"hediet.vscode-drawio.theme" = "dark";
};
};
}

15
home/gui/fonts.nix Normal file
View file

@ -0,0 +1,15 @@
{ config, pkgs, lib, ... } :
with lib;
let
cfg = config.local.gui.fonts;
in
{
options.local.gui.fonts.enable = mkEnableOption "Font management";
config = mkIf cfg.enable {
fonts.fontconfig.enable = true;
home.packages = with pkgs; [
jetbrains-mono
];
};
}

14
home/gui/gtk.nix Normal file
View file

@ -0,0 +1,14 @@
{ config, lib, pkgs, ... } :
with lib;
let
cfg = config.local.gui.gtk;
in
{
options.local.gui.gtk.enable = mkEnableOption "GTK related programs";
config = mkIf cfg.enable {
home.packages = with pkgs; [
gruvbox-dark-icons-gtk
libsForQt5.breeze-gtk
];
}
}

View file

@ -1,96 +1,101 @@
{ config, pkgs, lib, ... } :
with lib;
let
cfg = config.local.gui.i3;
in
{
xsession.windowManager.i3 = mkIf ( !config.home.isolation.active ) {
enable = true;
package = pkgs.i3-gaps;
config = let
mod = "Mod4";
in {
modifier = mod;
# revisar luego si config.bars tiene un default danino
options.local.gui.i3.enable = mkEnableOption "i3 window manager";
config = mkIf cfg.enable {
xsession.windowManager.i3 = {
enable = true;
package = pkgs.i3-gaps;
fonts = {
names = [ "JetBrains Mono" ];
style = "Regular";
size = 8.0;
};
gaps = {
inner = 10;
outer = -10;
};
window = {
hideEdgeBorders = "both";
};
colors = {
focused = {
background = "#222222";
border = "#4c7899";
childBorder = "#222222";
indicator = "#292d2e";
text = "#888888";
config = let
mod = "Mod4";
in {
modifier = mod;
# revisar luego si config.bars tiene un default danino
fonts = {
names = [ "JetBrains Mono" ];
style = "Regular";
size = 8.0;
};
};
# mkOptionDefault hace que se ponga la config por default
# y se sobreescriba las cosas que pongo acA
# NO QUITARLO. ver man home-configuration.nix
keybindings = mkOptionDefault {
"${mod}+Return" = "exec ${pkgs.kitty}/bin/kitty ${pkgs.tmux}/bin/tmux";
"${mod}+Tab" = "focus right";
"${mod}+Shift+Tab" = "focus left";
"${mod}+Shift+s" = "exec ${pkgs.maim}/bin/maim -s -u | ${pkgs.xclip}/bin/xclip -selection clipboard -t image/png -i";
"${mod}+Shift+w" = "move workspace to output right";
};
# menu = "${pkgs.dmenu}/bin/dmenu_run"
startup = [
{
command = "${pkgs.xss-lock}/bin/xss-lock --transfer-sleep-lock -- ${pkgs.i3lock}/bin/i3lock --nofork";
notification = false;
}
{
command = "${pkgs.networkmanagerapplet}/bin/nm-applet";
notification = false;
}
{
command = "${pkgs.feh}/bin/feh --bg-scale ${config.home.homeDirectory}/Pictures/wallpapers/carina_jwst.jpg";
notification = false;
always = true;
}
{
command = "${pkgs.i3-gaps}/bin/i3-msg 'workspace 1; exec ${pkgs.firefox}/bin/firefox'";
}
{
command = "${pkgs.i3-gaps}/bin/i3-msg 'workspace 2; exec ${pkgs.tdesktop}/bin/telegram-desktop'";
}
{
command = "${pkgs.i3-gaps}/bin/i3-msg 'workspace 2; exec ${pkgs.signal-desktop}/bin/signal-desktop'";
}
{
command = "${pkgs.systemd}/bin/systemctl --user restart polybar.service";
notification = false;
always = true;
}
];
workspaceOutputAssign = [
{
output = config.local.display."0";
workspace = "1";
}
] ++ optional (config.local.display."1" != null) {
output = config.local.display."1";
workspace = "10";
gaps = {
inner = 10;
outer = -10;
};
bars = [ ];
window = {
hideEdgeBorders = "both";
};
colors = {
focused = {
background = "#222222";
border = "#4c7899";
childBorder = "#222222";
indicator = "#292d2e";
text = "#888888";
};
};
# mkOptionDefault hace que se ponga la config por default
# y se sobreescriba las cosas que pongo acA
# NO QUITARLO. ver man home-configuration.nix
keybindings = mkOptionDefault {
"${mod}+Return" = "exec ${pkgs.kitty}/bin/kitty ${pkgs.tmux}/bin/tmux";
"${mod}+Tab" = "focus right";
"${mod}+Shift+Tab" = "focus left";
"${mod}+Shift+s" = "exec ${pkgs.maim}/bin/maim -s -u | ${pkgs.xclip}/bin/xclip -selection clipboard -t image/png -i";
"${mod}+Shift+w" = "move workspace to output right";
};
# menu = "${pkgs.dmenu}/bin/dmenu_run"
startup = [
{
command = "${pkgs.xss-lock}/bin/xss-lock --transfer-sleep-lock -- ${pkgs.i3lock}/bin/i3lock --nofork";
notification = false;
}
{
command = "${pkgs.networkmanagerapplet}/bin/nm-applet";
notification = false;
}
{
command = "${pkgs.feh}/bin/feh --bg-scale ${config.home.homeDirectory}/Pictures/wallpapers/carina_jwst.jpg";
notification = false;
always = true;
}
{
command = "${pkgs.i3-gaps}/bin/i3-msg 'workspace 1; exec ${pkgs.firefox}/bin/firefox'";
}
{
command = "${pkgs.i3-gaps}/bin/i3-msg 'workspace 2; exec ${pkgs.tdesktop}/bin/telegram-desktop'";
}
{
command = "${pkgs.i3-gaps}/bin/i3-msg 'workspace 2; exec ${pkgs.signal-desktop}/bin/signal-desktop'";
}
{
command = "${pkgs.systemd}/bin/systemctl --user restart polybar.service";
notification = false;
always = true;
}
];
workspaceOutputAssign = [
{
output = config.local.display."0";
workspace = "1";
}
] ++ optional (config.local.display."1" != null) {
output = config.local.display."1";
workspace = "10";
};
bars = [ ];
};
};
};
}

View file

@ -1,454 +1,460 @@
{ config, pkgs, lib, ... } :
with lib;
let
cfg = config.local.gui.polybar;
in
{
services.polybar = mkIf ( !config.home.isolation.active ) {
enable = true;
package = pkgs.polybarFull;
script = ''
# Terminate already running bar instances
killall -q polybar
# Wait until the processes have been shut down
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
# Launch Polybar, using default config location ~/.config/polybar/config
polybar -r main & polybar -r secondary &
'';
settings = {
"colors" = {
# background = "\${xrdb:color0:#222}";
background = "#AA000000";
background-alt = "#00000000";
# foreground = "\${xrdb:color7:#222}";
foreground = "#ffffff";
foreground-alt = "#ffffff";
primary = "#ffffff";
secondary = "#e60053";
alert = "#bd2c40";
};
"bar/main" = {
monitor = "${config.local.display."0"}";
width = "100%";
height = 30;
offset-x = "0%";
offset-y = "0%";
radius = 0.0;
fixed-center = false;
background = "\${colors.background}";
foreground = "\${colors.foreground}";
line-size = 1;
line-color = "#f0000000";
border-size = 0;
border-color = "#00000000";
padding-left = 0;
padding-right = 0;
module-margin-left = 1;
module-margin-right = 1;
# font-0 = "fixed:pixelsize=10;1";
font-0 = "JetBrains Mono Light:size=10;0";
font-1 = "unifont:fontformat=truetype:size=8:antialias=false;0";
font-2 = "siji:pixelsize=10;1";
# font-2 = "FontAwesome5Free:style=Regular:size=10;4";
modules-left = "i3";
modules-center = "xwindow";
modules-right = "xkeyboard pulseaudio filesystem memory cpu temperature gputemperature nvmetemperature wlan eth date semanatec";
separator = "|";
tray-position = "right";
tray-padding = 2;
# To allow other windows to be placed above the bar, or to avoid having the bar visible when in fullscreen mode,
# you need to use the following two parameters. Note that it will tell the window manager to back off so no
# area will be reserved, etc.
#
# wm-restack = "i3";
# override-redirect = true;
cursor-click = "pointer";
cursor-scroll = "ns-resize";
};
"bar/secondary" = optionalAttrs (config.local.display."1" != null) {
monitor = "${config.local.display."1"}";
"inherit" = "bar/main";
options.local.gui.polybar.enable = mkEnableOption "Polybar";
config = mkIf cfg.enable {
services.polybar = mkIf ( !config.home.isolation.active ) {
enable = true;
package = pkgs.polybarFull;
script = ''
# Terminate already running bar instances
killall -q polybar
modules-left = "i3";
modules-center = "xwindow";
modules-right = "xkeyboard pulseaudio date";
tray-position = "none";
};
# Wait until the processes have been shut down
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
# Launch Polybar, using default config location ~/.config/polybar/config
polybar -r main & polybar -r secondary &
'';
"module/xwindow" = {
type = "internal/xwindow";
label = "%title:0:30:...%";
};
settings = {
"colors" = {
# background = "\${xrdb:color0:#222}";
background = "#AA000000";
background-alt = "#00000000";
# foreground = "\${xrdb:color7:#222}";
foreground = "#ffffff";
foreground-alt = "#ffffff";
primary = "#ffffff";
secondary = "#e60053";
alert = "#bd2c40";
};
"module/xkeyboard" = {
type = "internal/xkeyboard";
blacklist-0 = "num lock";
"bar/main" = {
monitor = "${config.local.display."0"}";
width = "100%";
height = 30;
offset-x = "0%";
offset-y = "0%";
radius = 0.0;
fixed-center = false;
format-prefix = "";
format-prefix-foreground = "\${colors.foreground-alt}";
background = "\${colors.background}";
foreground = "\${colors.foreground}";
label-layout = "%layout%";
line-size = 1;
line-color = "#f0000000";
label-indicator-padding = 2;
label-indicator-margin = 1;
label-indicator-background = "\${colors.secondary}";
};
border-size = 0;
border-color = "#00000000";
"module/filesystem" = {
type = "internal/fs";
interval = 10;
padding-left = 0;
padding-right = 0;
mount-0 = "/";
module-margin-left = 1;
module-margin-right = 1;
label-mounted = "%{F#0a81f5}%mountpoint%%{F-}: %used%/%total%";
label-unmounted = "";
};
# font-0 = "fixed:pixelsize=10;1";
font-0 = "JetBrains Mono Light:size=10;0";
font-1 = "unifont:fontformat=truetype:size=8:antialias=false;0";
font-2 = "siji:pixelsize=10;1";
# font-2 = "FontAwesome5Free:style=Regular:size=10;4";
"module/i3" = {
type = "internal/i3";
format = "<label-state> <label-mode>";
index-sort = true;
wrapping-scroll = false;
modules-left = "i3";
modules-center = "xwindow";
modules-right = "xkeyboard pulseaudio filesystem memory cpu temperature gputemperature nvmetemperature wlan eth date semanatec";
separator = "|";
# Only show workspaces on the same output as the bar
# pin-workspaces = true
tray-position = "right";
tray-padding = 2;
label-mode-padding = 1;
label-mode-foreground = "#000";
label-mode-background = "\${colors.primary}";
# To allow other windows to be placed above the bar, or to avoid having the bar visible when in fullscreen mode,
# you need to use the following two parameters. Note that it will tell the window manager to back off so no
# area will be reserved, etc.
#
# wm-restack = "i3";
# override-redirect = true;
# focused = Active workspace on focused monitor
label-focused = "%index%";
label-focused-background = "\${colors.background}";
label-focused-underline = "\${colors.primary}";
label-focused-padding = 1;
cursor-click = "pointer";
cursor-scroll = "ns-resize";
};
# unfocused = Inactive workspace on any monitor
label-unfocused = "%index%";
label-unfocused-padding = 1;
"bar/secondary" = optionalAttrs (config.local.display."1" != null) {
monitor = "${config.local.display."1"}";
"inherit" = "bar/main";
modules-left = "i3";
modules-center = "xwindow";
modules-right = "xkeyboard pulseaudio date";
tray-position = "none";
};
# visible = Active workspace on unfocused monitor
label-visible = "%index%";
label-visible-background = "\${self.label-focused-background}";
label-visible-underline = "\${self.label-focused-underline}";
label-visible-padding = "\${self.label-focused-padding}";
"module/xwindow" = {
type = "internal/xwindow";
label = "%title:0:30:...%";
};
# urgent = Workspace with urgency hint set
label-urgent = "%index%";
label-urgent-background = "\${colors.alert}";
label-urgent-padding = 1;
};
"module/xkeyboard" = {
type = "internal/xkeyboard";
blacklist-0 = "num lock";
"module/xbacklight" = {
type = "internal/xbacklight";
format-prefix = "";
format-prefix-foreground = "\${colors.foreground-alt}";
format = "<label> <bar>";
label = "BL";
label-layout = "%layout%";
bar-width = 10;
bar-indicator = "|";
bar-indicator-foreground = "#fff";
bar-indicator-font = 2;
bar-fill = "";
bar-fill-font = 2;
bar-fill-foreground = "#9f78e1";
bar-empty = "";
bar-empty-font = 2;
bar-empty-foreground = "\${colors.foreground-alt}";
};
label-indicator-padding = 2;
label-indicator-margin = 1;
label-indicator-background = "\${colors.secondary}";
};
"module/backlight-acpi" = {
"inherit" = "module/xbacklight";
type = "internal/backlight";
card = "intel_backlight";
};
"module/cpu" = {
type = "internal/cpu";
interval = 2;
format-prefix = "cpu ";
format-prefix-foreground = "\${colors.foreground-alt}";
label = "%percentage:2%%";
};
"module/memory" = {
type = "internal/memory";
interval = 2;
format-prefix = "mem ";
format-prefix-foreground = "\${colors.foreground-alt}";
label = "%percentage_used%%";
};
"module/wlan" = {
type = "internal/network";
interface = "wlp7s0";
interval = 3.0;
"module/filesystem" = {
type = "internal/fs";
interval = 10;
format-connected = "<ramp-signal> <label-connected>";
label-connected = "%essid%";
mount-0 = "/";
format-disconnected = "";
# format-disconnected = "<label-disconnected>";
# format-disconnected-underline = "\${self.format-connected-underline}";
# label-disconnected = "%ifname% disconnected";
# label-disconnected-foreground = "\${colors.foreground-alt}";
label-mounted = "%{F#0a81f5}%mountpoint%%{F-}: %used%/%total%";
label-unmounted = "";
};
ramp-signal-0 = "";
ramp-signal-1 = "";
ramp-signal-2 = "";
ramp-signal-3 = "";
ramp-signal-4 = "";
ramp-signal-foreground = "\${colors.foreground-alt}";
};
"module/eth" = {
type = "internal/network";
interface = "enp8s0";
interval = 3.0;
"module/i3" = {
type = "internal/i3";
format = "<label-state> <label-mode>";
index-sort = true;
wrapping-scroll = false;
format-connected-prefix = "";
format-connected-prefix-foreground = "\${colors.foreground-alt}";
label-connected = "%local_ip%";
# Only show workspaces on the same output as the bar
# pin-workspaces = true
format-disconnected = "";
# format-disconnected = "<label-disconnected>";
# format-disconnected-underline = "\${self.format-connected-underline}";
# label-disconnected = "%ifname% disconnected";
# label-disconnected-foreground = "\${colors.foreground-alt}";
};
"module/date" = {
type = "internal/date";
interval = 1;
label-mode-padding = 1;
label-mode-foreground = "#000";
label-mode-background = "\${colors.primary}";
date = " %d/%m/%Y" ;
date-alt = " %c";
# focused = Active workspace on focused monitor
label-focused = "%index%";
label-focused-background = "\${colors.background}";
label-focused-underline = "\${colors.primary}";
label-focused-padding = 1;
time = "%H:%M";
time-alt = " [%s]";
# unfocused = Inactive workspace on any monitor
label-unfocused = "%index%";
label-unfocused-padding = 1;
format-prefix = "";
format-prefix-foreground = "\${colors.foreground-alt}";
# visible = Active workspace on unfocused monitor
label-visible = "%index%";
label-visible-background = "\${self.label-focused-background}";
label-visible-underline = "\${self.label-focused-underline}";
label-visible-padding = "\${self.label-focused-padding}";
label = "%date% %time%";
};
# "module/semanatec" = {
# type = "custom/script"
# exec = "/home/fabian/bin/semanatec/target/release/semanatec"
# interval = 3600
# format-prefix = ""
# };
"module/pulseaudio" = {
type = "internal/pulseaudio";
# urgent = Workspace with urgency hint set
label-urgent = "%index%";
label-urgent-background = "\${colors.alert}";
label-urgent-padding = 1;
};
format-volume = "<label-volume>";
label-volume = "vol %percentage%%";
label-volume-foreground = "\${root.foreground}";
"module/xbacklight" = {
type = "internal/xbacklight";
label-muted = "vol 0%";
label-muted-foreground = "\${root.foreground}";
format = "<label> <bar>";
label = "BL";
bar-volume-width = 10;
bar-volume-foreground-0 = "#55aa55";
bar-volume-foreground-1 = "#55aa55";
bar-volume-foreground-2 = "#55aa55";
bar-volume-foreground-3 = "#55aa55";
bar-volume-foreground-4 = "#55aa55";
bar-volume-foreground-5 = "#f5a70a";
bar-volume-foreground-6 = "#ff5555";
bar-volume-gradient = false;
bar-volume-indicator = "|";
bar-volume-indicator-font = 2;
bar-volume-fill = "";
bar-volume-fill-font = 2;
bar-volume-empty = "";
bar-volume-empty-font = 2;
bar-volume-empty-foreground = "\${colors.foreground-alt}";
};
"module/alsa" = {
type = "internal/alsa";
bar-width = 10;
bar-indicator = "|";
bar-indicator-foreground = "#fff";
bar-indicator-font = 2;
bar-fill = "";
bar-fill-font = 2;
bar-fill-foreground = "#9f78e1";
bar-empty = "";
bar-empty-font = 2;
bar-empty-foreground = "\${colors.foreground-alt}";
};
format-volume = "<label-volume> <bar-volume>";
label-volume = "VOL";
label-volume-foreground = "\${root.foreground}";
"module/backlight-acpi" = {
"inherit" = "module/xbacklight";
type = "internal/backlight";
card = "intel_backlight";
};
"module/cpu" = {
type = "internal/cpu";
interval = 2;
format-prefix = "cpu ";
format-prefix-foreground = "\${colors.foreground-alt}";
label = "%percentage:2%%";
};
"module/memory" = {
type = "internal/memory";
interval = 2;
format-prefix = "mem ";
format-prefix-foreground = "\${colors.foreground-alt}";
label = "%percentage_used%%";
};
"module/wlan" = {
type = "internal/network";
interface = "wlp7s0";
interval = 3.0;
format-muted-prefix = "vol ";
format-muted-foreground = "\${colors.foreground-alt}";
label-muted = "sound muted";
format-connected = "<ramp-signal> <label-connected>";
label-connected = "%essid%";
bar-volume-width = 10;
bar-volume-foreground-0 = "#55aa55";
bar-volume-foreground-1 = "#55aa55";
bar-volume-foreground-2 = "#55aa55";
bar-volume-foreground-3 = "#55aa55";
bar-volume-foreground-4 = "#55aa55";
bar-volume-foreground-5 = "#f5a70a";
bar-volume-foreground-6 = "#ff5555";
bar-volume-gradient = false;
bar-volume-indicator = "|";
bar-volume-indicator-font = 2;
bar-volume-fill = "";
bar-volume-fill-font = 2;
bar-volume-empty = "";
bar-volume-empty-font = 2;
bar-volume-empty-foreground = "\${colors.foreground-alt}";
};
"module/battery" = {
type = "internal/battery";
battery = "BAT0";
adapter = "ADP1";
full-at = 98;
format-disconnected = "";
# format-disconnected = "<label-disconnected>";
# format-disconnected-underline = "\${self.format-connected-underline}";
# label-disconnected = "%ifname% disconnected";
# label-disconnected-foreground = "\${colors.foreground-alt}";
format-charging = "<animation-charging> <label-charging>";
format-charging-underline = "#ffb52a";
ramp-signal-0 = "";
ramp-signal-1 = "";
ramp-signal-2 = "";
ramp-signal-3 = "";
ramp-signal-4 = "";
ramp-signal-foreground = "\${colors.foreground-alt}";
};
"module/eth" = {
type = "internal/network";
interface = "enp8s0";
interval = 3.0;
format-discharging = "<animation-discharging> <label-discharging>";
format-discharging-underline = "\${self.format-charging-underline}";
format-connected-prefix = "";
format-connected-prefix-foreground = "\${colors.foreground-alt}";
label-connected = "%local_ip%";
format-full-prefix = " ";
format-full-prefix-foreground = "\${colors.foreground-alt}";
format-full-underline = "\${self.format-charging-underline}";
format-disconnected = "";
# format-disconnected = "<label-disconnected>";
# format-disconnected-underline = "\${self.format-connected-underline}";
# label-disconnected = "%ifname% disconnected";
# label-disconnected-foreground = "\${colors.foreground-alt}";
};
"module/date" = {
type = "internal/date";
interval = 1;
ramp-capacity-0 = "";
ramp-capacity-1 = "";
ramp-capacity-2 = "";
ramp-capacity-foreground = "\${colors.foreground-alt}";
date = " %d/%m/%Y" ;
date-alt = " %c";
animation-charging-0 = "";
animation-charging-1 = "";
animation-charging-2 = "";
animation-charging-foreground = "\${colors.foreground-alt}";
animation-charging-framerate = 750;
time = "%H:%M";
time-alt = " [%s]";
animation-discharging-0 = "";
animation-discharging-1 = "";
animation-discharging-2 = "";
animation-discharging-foreground = "\${colors.foreground-alt}";
animation-discharging-framerate = 750;
};
"module/temperature" = {
type = "internal/temperature";
warn-temperature = 60;
hwmon-path = "/sys/devices/pci0000:00/0000:00:18.3/hwmon/hwmon1/temp2_input";
format-prefix = "";
format-prefix-foreground = "\${colors.foreground-alt}";
format = "<ramp> <label>";
format-warn = "<ramp> <label-warn>";
label = "%date% %time%";
};
# "module/semanatec" = {
# type = "custom/script"
# exec = "/home/fabian/bin/semanatec/target/release/semanatec"
# interval = 3600
# format-prefix = ""
# };
"module/pulseaudio" = {
type = "internal/pulseaudio";
label = "cpu %temperature-c%";
label-warn = "cpu %temperature-c%";
label-warn-foreground = "\${colors.secondary}";
format-volume = "<label-volume>";
label-volume = "vol %percentage%%";
label-volume-foreground = "\${root.foreground}";
ramp-0 = "";
ramp-1 = "";
ramp-2 = "";
ramp-foreground = "\${colors.foreground-alt}";
};
"module/gputemperature" = {
type = "internal/temperature";
warn-temperature = 60;
hwmon-path = "/sys/devices/pci0000:00/0000:00:03.1/0000:09:00.0/hwmon/hwmon3/temp1_input";
label-muted = "vol 0%";
label-muted-foreground = "\${root.foreground}";
format = "<ramp> <label>";
format-warn = "<ramp> <label-warn>";
bar-volume-width = 10;
bar-volume-foreground-0 = "#55aa55";
bar-volume-foreground-1 = "#55aa55";
bar-volume-foreground-2 = "#55aa55";
bar-volume-foreground-3 = "#55aa55";
bar-volume-foreground-4 = "#55aa55";
bar-volume-foreground-5 = "#f5a70a";
bar-volume-foreground-6 = "#ff5555";
bar-volume-gradient = false;
bar-volume-indicator = "|";
bar-volume-indicator-font = 2;
bar-volume-fill = "";
bar-volume-fill-font = 2;
bar-volume-empty = "";
bar-volume-empty-font = 2;
bar-volume-empty-foreground = "\${colors.foreground-alt}";
};
"module/alsa" = {
type = "internal/alsa";
label = "gpu %temperature-c%";
label-warn = "gpu %temperature-c%";
label-warn-foreground = "\${colors.secondary}";
format-volume = "<label-volume> <bar-volume>";
label-volume = "VOL";
label-volume-foreground = "\${root.foreground}";
ramp-0 = "";
ramp-1 = "";
ramp-2 = "";
ramp-foreground = "\${colors.foreground-alt}";
};
"module/nvmetemperature" = {
type = "internal/temperature";
warn-temperature = 60;
hwmon-path = "/sys/devices/pci0000:00/0000:00:01.1/0000:01:00.0/hwmon/hwmon0/temp1_input";
format-muted-prefix = "vol ";
format-muted-foreground = "\${colors.foreground-alt}";
label-muted = "sound muted";
format = "<ramp> <label>";
format-warn = "<ramp> <label-warn>";
bar-volume-width = 10;
bar-volume-foreground-0 = "#55aa55";
bar-volume-foreground-1 = "#55aa55";
bar-volume-foreground-2 = "#55aa55";
bar-volume-foreground-3 = "#55aa55";
bar-volume-foreground-4 = "#55aa55";
bar-volume-foreground-5 = "#f5a70a";
bar-volume-foreground-6 = "#ff5555";
bar-volume-gradient = false;
bar-volume-indicator = "|";
bar-volume-indicator-font = 2;
bar-volume-fill = "";
bar-volume-fill-font = 2;
bar-volume-empty = "";
bar-volume-empty-font = 2;
bar-volume-empty-foreground = "\${colors.foreground-alt}";
};
"module/battery" = {
type = "internal/battery";
battery = "BAT0";
adapter = "ADP1";
full-at = 98;
label = "M.2 %temperature-c%";
label-warn = "M.2 %temperature-c%";
label-warn-foreground = "\${colors.secondary}";
format-charging = "<animation-charging> <label-charging>";
format-charging-underline = "#ffb52a";
ramp-0 = "";
ramp-1 = "";
ramp-2 = "";
ramp-foreground = "\${colors.foreground-alt}";
};
"module/powermenu" = {
type = "custom/menu";
format-discharging = "<animation-discharging> <label-discharging>";
format-discharging-underline = "\${self.format-charging-underline}";
expand-right = true;
format-full-prefix = " ";
format-full-prefix-foreground = "\${colors.foreground-alt}";
format-full-underline = "\${self.format-charging-underline}";
format-spacing = 1;
ramp-capacity-0 = "";
ramp-capacity-1 = "";
ramp-capacity-2 = "";
ramp-capacity-foreground = "\${colors.foreground-alt}";
label-open = "";
label-open-foreground = "\${colors.secondary}";
label-close = " cancel";
label-close-foreground = "\${colors.secondary}";
label-separator = "|";
label-separator-foreground = "\${colors.foreground-alt}";
animation-charging-0 = "";
animation-charging-1 = "";
animation-charging-2 = "";
animation-charging-foreground = "\${colors.foreground-alt}";
animation-charging-framerate = 750;
menu-0-0 = "reboot";
menu-0-0-exec = "menu-open-1";
menu-0-1 = "power off";
menu-0-1-exec = "menu-open-2";
animation-discharging-0 = "";
animation-discharging-1 = "";
animation-discharging-2 = "";
animation-discharging-foreground = "\${colors.foreground-alt}";
animation-discharging-framerate = 750;
};
"module/temperature" = {
type = "internal/temperature";
warn-temperature = 60;
hwmon-path = "/sys/devices/pci0000:00/0000:00:18.3/hwmon/hwmon1/temp2_input";
menu-1-0 = "cancel";
menu-1-0-exec = "menu-open-0";
menu-1-1 = "reboot";
menu-1-1-exec = "sudo reboot";
format = "<ramp> <label>";
format-warn = "<ramp> <label-warn>";
menu-2-0 = "power off";
menu-2-0-exec = "sudo poweroff";
menu-2-1 = "cancel";
menu-2-1-exec = "menu-open-0";
};
label = "cpu %temperature-c%";
label-warn = "cpu %temperature-c%";
label-warn-foreground = "\${colors.secondary}";
"module/sink_changer" = {
type = "custom/script";
exec = "/home/fabian/bin/polybar_scripts/info.sh";
label = "%output%";
click-left = "/home/fabian/bin/polybar_scripts/sink_changer.sh";
# format-prefix = " ";
interval = "0";
# format-prefix-foreground = "${colors.foreground-alt}";
};
"settings" = {
screenchange-reload = true;
# compositing-background = "xor";
# compositing-background = "screen";
# compositing-foreground = "source";
# compositing-border = "over";
# pseudo-transparency = false;
};
"global/wm" = {
margin-top = 5;
margin-bottom = 5;
ramp-0 = "";
ramp-1 = "";
ramp-2 = "";
ramp-foreground = "\${colors.foreground-alt}";
};
"module/gputemperature" = {
type = "internal/temperature";
warn-temperature = 60;
hwmon-path = "/sys/devices/pci0000:00/0000:00:03.1/0000:09:00.0/hwmon/hwmon3/temp1_input";
format = "<ramp> <label>";
format-warn = "<ramp> <label-warn>";
label = "gpu %temperature-c%";
label-warn = "gpu %temperature-c%";
label-warn-foreground = "\${colors.secondary}";
ramp-0 = "";
ramp-1 = "";
ramp-2 = "";
ramp-foreground = "\${colors.foreground-alt}";
};
"module/nvmetemperature" = {
type = "internal/temperature";
warn-temperature = 60;
hwmon-path = "/sys/devices/pci0000:00/0000:00:01.1/0000:01:00.0/hwmon/hwmon0/temp1_input";
format = "<ramp> <label>";
format-warn = "<ramp> <label-warn>";
label = "M.2 %temperature-c%";
label-warn = "M.2 %temperature-c%";
label-warn-foreground = "\${colors.secondary}";
ramp-0 = "";
ramp-1 = "";
ramp-2 = "";
ramp-foreground = "\${colors.foreground-alt}";
};
"module/powermenu" = {
type = "custom/menu";
expand-right = true;
format-spacing = 1;
label-open = "";
label-open-foreground = "\${colors.secondary}";
label-close = " cancel";
label-close-foreground = "\${colors.secondary}";
label-separator = "|";
label-separator-foreground = "\${colors.foreground-alt}";
menu-0-0 = "reboot";
menu-0-0-exec = "menu-open-1";
menu-0-1 = "power off";
menu-0-1-exec = "menu-open-2";
menu-1-0 = "cancel";
menu-1-0-exec = "menu-open-0";
menu-1-1 = "reboot";
menu-1-1-exec = "sudo reboot";
menu-2-0 = "power off";
menu-2-0-exec = "sudo poweroff";
menu-2-1 = "cancel";
menu-2-1-exec = "menu-open-0";
};
"module/sink_changer" = {
type = "custom/script";
exec = "/home/fabian/bin/polybar_scripts/info.sh";
label = "%output%";
click-left = "/home/fabian/bin/polybar_scripts/sink_changer.sh";
# format-prefix = " ";
interval = "0";
# format-prefix-foreground = "${colors.foreground-alt}";
};
"settings" = {
screenchange-reload = true;
# compositing-background = "xor";
# compositing-background = "screen";
# compositing-foreground = "source";
# compositing-border = "over";
# pseudo-transparency = false;
};
"global/wm" = {
margin-top = 5;
margin-bottom = 5;
};
};
};
};

View file

@ -1,9 +1,13 @@
{ config, pkgs, lib, ... } :
with lib;
let
cfg = config.local.gui.startx;
in
{
config = mkIf ( !config.home.isolation.active ) {
options.local.gui.startx.enable = mkEnableOption "startx";
config = mkIf cfg.enable {
xsession.enable = true;
home.file.".xinitrc".source = let
content = if config.local.nixos then ''
exec ~/.xsession
@ -13,7 +17,4 @@ with lib;
in
pkgs.writeShellScript "xinitrc" content;
};
}
}