commit a1e0d5cff6de2cdba69bcb325b400f8ea87cd598 Author: Lauren Lagarde Date: Fri Oct 25 16:21:08 2024 -0500 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1377554 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.swp diff --git a/assets/QtPass.conf b/assets/QtPass.conf new file mode 100644 index 0000000..fd0c8bf --- /dev/null +++ b/assets/QtPass.conf @@ -0,0 +1,36 @@ +[General] +addGPGId=true +alwaysOnTop=true +autoPull=true +autoPush=true +autoclearPanelSeconds=10 +autoclearSeconds=10 +avoidCapitals=false +avoidNumbers=false +clipBoardType=2 +gitExecutable=/home/lauren_lagarde/.nix-profile/bin/git +gpgExecutable=/home/lauren_lagarde/.nix-profile/bin/gpg2 +hideContent=false +hideOnClose=true +hidePassword=false +lessRandom=false +passExecutable=/run/current-system/sw/bin/pass +passStore=/home/lauren_lagarde/.password-store/ +passTemplate=login\nurl +passwordChars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890~!@#$%^&*()_-+={}[]|:;<>,.?" +passwordCharsselection=0 +passwordLength=8 +pwgenExecutable=/run/current-system/sw/bin/pwgen +startMinimized=false +templateAllFields=false +useAutoclear=true +useAutoclearPanel=true +useGit=true +useOtp=true +usePass=true +usePwgen=true +useQrencode=false +useSelection=false +useSymbols=false +useTemplate=false +useTrayIcon=true diff --git a/assets/resetbluetooth.sh b/assets/resetbluetooth.sh new file mode 100644 index 0000000..4533f4f --- /dev/null +++ b/assets/resetbluetooth.sh @@ -0,0 +1,2 @@ +systemctl --user restart pipewire && sudo systemctl restart bluetooth +i3-msg restart diff --git a/clear_secrets.sh b/clear_secrets.sh new file mode 100644 index 0000000..19d878b --- /dev/null +++ b/clear_secrets.sh @@ -0,0 +1 @@ +rm -rf ./secrets diff --git a/firefox.nix b/firefox.nix new file mode 100644 index 0000000..c02498e --- /dev/null +++ b/firefox.nix @@ -0,0 +1,67 @@ +{ unstable, ... }: { + programs.firefox = { + enable = true; + package = unstable.pkgs.firefox; + policies = { + DisableTelemetry = false; + DisablePocket = true; + DisableFirefoxStudies = true; + DontCheckDefaultBrowser = true; + SearchBar = "unified"; + + Preferences = {}; + + # about:debugging#/runtime/this-firefox + ExtensionSettings = { + # uBlock Origin + "uBlock0@raymondhill.net" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"; + installation_mode = "force_installed"; + }; + # Vimium + "{d7742d87-e61d-4b78-b8a1-b469842139fa}" = { + install_url = "https://addons.mozilla.org/firefox/downloads/file/4191523/vimium_ff-2.0.6.xpi"; + installation_mode = "force_installed"; + }; + # BrowserPass + "browserpass@maximbaz.com" = { + install_url = "https://addons.mozilla.org/firefox/downloads/file/4187654/browserpass_ce-3.8.0.xpi"; + installation_mode = "force_installed"; + }; + # LibRedirect + "7esoorv3@alefvanoon.anonaddy.me" = { + install_url = "https://addons.mozilla.org/firefox/downloads/file/4248205/libredirect-2.8.2.xpi"; + installation_mode = "force_installed"; + }; + # New Tab Homepage + "{66E978CD-981F-47DF-AC42-E3CF417C1467}" = { + install_url = "https://addons.mozilla.org/firefox/downloads/file/4270256/new_tab_homepage-0.6.3resigned1.xpi"; + installation_mode = "force_installed"; + }; + }; + }; + + profiles.lauren = { + settings = { + "browser.uiCustomization.state" = '' + {"placements":{"widget-overflow-fixed-list":[],"unified-extensions-area":[],"nav-bar":["back-button","forward-button","stop-reload-button","customizableui-special-spring1","urlbar-container","customizableui-special-spring2","save-to-pocket-button","downloads-button","fxa-toolbar-menu-button","unified-extensions-button","browserpass_maximbaz_com-browser-action","_d7742d87-e61d-4b78-b8a1-b469842139fa_-browser-action","ublock0_raymondhill_net-browser-action","7esoorv3_alefvanoon_anonaddy_me-browser-action"],"toolbar-menubar":["menubar-items"],"TabsToolbar":["firefox-view-button","tabbrowser-tabs","new-tab-button","alltabs-button"],"PersonalToolbar":["import-button","personal-bookmarks"]},"seen":["developer-button","_d7742d87-e61d-4b78-b8a1-b469842139fa_-browser-action","browserpass_maximbaz_com-browser-action","ublock0_raymondhill_net-browser-action","7esoorv3_alefvanoon_anonaddy_me-browser-action"],"dirtyAreaCache":["nav-bar","PersonalToolbar","unified-extensions-area","toolbar-menubar","TabsToolbar"],"currentVersion":20,"newElementCount":2} + ''; + "signon.rememberSignons" = false; + "browser.aboutConfig.showWarning" = false; + "widget.disable-workspace-management" = true; + "browser.startup.homepage" = "https://git.mlaga97.space/household/household/issues"; + "browser.toolbars.bookmarks.visibility" = "always"; + + # Attempting to minimize the amount of crap that happens at first startup + "app.normandy.first_run" = false; + "browser.startup.firstrunSkipsHomepage" = false; + "doh-rollout.doneFirstRun" = true; + "toolkit.telemetry.reportingpolicy.firstRun" = false; + "trailhead.firstrun.didSeeAboutWelcome" = true; + "trailhead.firstrun.branches" = "nofirstrun-empty"; + "browser.aboutwelcome.enabled" = false; + "browser.newtab.extensionControlled" = true; + }; + }; + }; +} diff --git a/gnome-terminal.nix b/gnome-terminal.nix new file mode 100644 index 0000000..a1829ee --- /dev/null +++ b/gnome-terminal.nix @@ -0,0 +1,38 @@ +{ pkgs, home-manager, ... }: { + programs.gnome-terminal = { + enable = true; + themeVariant = "system"; + + profile."0403cfe3-f423-4b1c-97f5-e0a581056e7e" = { + default = true; + visibleName = "Elementary"; + audibleBell = false; + backspaceBinding = "ascii-backspace"; + #scrollbackLines = null; #TODO + + colors = { + palette = [ + "#303030" + "#E1321A" + "#6AB017" + "#FFC005" + "#004F9E" + "#EC0048" + "#2AA7E7" + "#F2F2F2" + "#5D5D5D" + "#FF361E" + "#7BC91F" + "#FFD00A" + "#0071FF" + "#FF1D62" + "#4BB8FD" + "#A020F0" + ]; + + foregroundColor = "#F2F2F2"; + backgroundColor = "#101010"; + }; + }; + }; +} diff --git a/gpg.nix b/gpg.nix new file mode 100644 index 0000000..88a7b14 --- /dev/null +++ b/gpg.nix @@ -0,0 +1,17 @@ +{ ... }: { + programs.gpg = { + enable = true; + mutableKeys = true; + mutableTrust = true; + publicKeys = [ + { + source = ./pubkeys/mlaga97_pubkey_20240419.asc; + trust = 5; + } + { + source = ./pubkeys/ajfunk27_pubkey_20240129.asc; + trust = 4; + } + ]; + }; +} diff --git a/home.nix b/home.nix new file mode 100644 index 0000000..cfb7842 --- /dev/null +++ b/home.nix @@ -0,0 +1,10 @@ +{ ... }: { + home = { + username = "lauren_lagarde"; + homeDirectory = "/home/lauren_lagarde"; + }; + + imports = [ + ./lauren_lagarde.nix + ]; +} diff --git a/i3.nix b/i3.nix new file mode 100644 index 0000000..a09f752 --- /dev/null +++ b/i3.nix @@ -0,0 +1,296 @@ +{ ... }: { + imports = [ + ./firefox.nix + ./polybar.nix + ./gnome-terminal.nix + ./monitor_configs.nix + ]; + + home.file = { + ".config/IJHack/QtPass.conf".source = ./assets/QtPass.conf; + + "fixbluetooth" = { + executable = true; + source = ./assets/resetbluetooth.sh; + }; + }; + + programs.browserpass.enable = true; + programs.chromium = { + enable = true; + extensions = [ + { id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; } # UBlock Origin + { id = "dbepggeogbaibhgnhhndojpepiihcmeb"; } # Vimium + { id = "naepdomgkenhinolocfifgehidddafch"; } # Browserpass + ]; + }; + + # picom --vsync --experimental-backend + xsession.windowManager.i3 = { + enable = true; + config.bars = []; + extraConfig = '' + ################################################################################ + set $mod Mod4 + + # Font for window titles. + font pango:monospace 8 + + # Bar + exec_always --no-startup-id systemctl --user restart polybar + + # Background + #exec_always --no-startup-id feh --bg-scale $HOME/Archive/Multimedia/Pictures/Firewatch\ Wallpapers/3\ -\ NAQ0dTR.png + #exec_always --no-startup-id feh --bg-scale $HOME/Archive/Multimedia/Pictures/Other\ Wallpapers/EMwduGkh_o.png + #exec_always --no-startup-id feh --bg-scale $HOME/Archive/Multimedia/Pictures/Other\ Wallpapers/1345403996113.jpg + #exec_always --no-startup-id feh --bg-scale $HOME/tmp/backgrounds/dcrhoj0-e922ac66-5611-43af-a35e-e5068ab642c3.png + #exec_always --no-startup-id feh --bg-scale $HOME/Archive/Multimedia/Pictures/Wallpapers/ae4xtKY.jpg + + ################################################################################ + # Hardware Control + + # Desk Lights + bindsym $mod+Shift+d exec curl -X POST https://homeassistant.mlaga97.space/api/webhook/--caDGWR8KXLTM3yZ6Y01XPe6 + bindsym $mod+Shift+w exec curl -X POST https://homeassistant.mlaga97.space/api/webhook/-tbHkUPb8aLVcFaOQcXbBdIJb + bindsym $mod+Shift+o exec curl -X POST https://homeassistant.mlaga97.space/api/webhook/-fmYa59UtZaMXythyEsda_ulo + + # Network Manager + exec nm-applet + + # Allow gnome apps to prompt for password + exec --no-startup-id /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1 & + + # Various gnome-settings-daemon helpers + exec --no-startup-id /usr/libexec/gsd-backlight-helper & + #exec --no-startup-id /usr/libexec/gsd-usb-protection & + #exec --no-startup-id /usr/libexec/gsd-sound & + #exec --no-startup-id /usr/libexec/gsd-disk-utility-notify & + #exec --no-startup-id /usr/libexec/gsd-power & + #exec --no-startup-id /usr/libexec/gsd-screensaver-proxy & + #exec --no-startup-id /usr/libexec/gsd-wacom & + #exec --no-startup-id /usr/libexec/gsd-xsettings & + #exec --no-startup-id /usr/libexec/gsd-printer & + #exec --no-startup-id /usr/libexec/gsd-sharing & + #exec --no-startup-id /usr/libexec/gsd-color & + #exec --no-startup-id /usr/libexec/gsd-wwan & + #exec --no-startup-id /usr/libexec/gsd-datetime & + #exec --no-startup-id /usr/libexec/gsd-wacom-oled-helper & + #exec --no-startup-id /usr/libexec/gsd-keyboard & + #exec --no-startup-id /usr/libexec/gsd-smartcard & + #exec --no-startup-id /usr/libexec/gsd-a11y-settings & + #exec --no-startup-id /usr/libexec/gsd-media-keys & + #exec --no-startup-id /usr/libexec/gsd-rfkill & + #exec --no-startup-id /usr/libexec/gsd-housekeeping & + #exec --no-startup-id /usr/libexec/gsd-print-notifications & + + # Screen Brightness Controls + bindsym XF86MonBrightnessUp exec --no-startup-id brightnessctl set +5% + bindsym XF86MonBrightnessDown exec --no-startup-id brightnessctl set 5%- + + # Monitor Layout Controls + bindsym $mod+Control+d exec arandr + + # Pulse Audio Controls + bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 1 +5% #increase sound volume + bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 1 -5% #decrease sound volume + bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 1 toggle # mute sound + + # Sound Device Control + bindsym $mod+Control+a exec pavucontrol + bindsym $mod+Control+b exec blueman-manager + + # Fast calculator + bindsym $mod+c exec rofi -theme solarized -font "ubuntu mono 16" -show calc -modi "calc:qalc +u8 -nocurrencies" + + ################################################################################ + # Session Management + + # Reload Config + bindsym $mod+Shift+c reload + + # Restart i3 In Place + bindsym $mod+Shift+r restart + + # Lock Screen + #exec --no-startup-id xidlehook --not-when-fullscreen --not-when-audio --timer normal 30 ~/Applications/lock_then_off.sh + #bindsym $mod+Control+Mod1+Shift+l exec ~/Applications/lock_then_off.sh + bindsym $mod+Control+Mod1+Shift+l exec i3lock + + # Logout + bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'" + + # Shutdown + bindsym $mod+Ctrl+Mod1+Shift+p exec "i3-nagbar -t warning -m 'Really Shutdown?' -b 'Yes' 'systemctl poweroff -i'" + + ################################################################################ + + # toggle fullscreen + bindsym $mod+f fullscreen toggle + + # Picture-in-Picture + bindsym $mod+p exec "i3-msg 'floating toggle; sticky toggle; resize shrink width 10000px; resize grow width 200px; resize shrink height 10000px; resize grow height 250px; move position 6950px 1750px;'" + + # change container layout (stacked, tabbed, toggle split) + bindsym $mod+s layout stacking + bindsym $mod+t layout tabbed + bindsym $mod+e layout toggle split + + # toggle floating + bindsym $mod+Shift+space floating toggle + + # change focus between tiling / floating windows + bindsym $mod+space focus mode_toggle + + # focus the parent container + bindsym $mod+a focus parent + + # Use Mouse+$mod to drag floating windows to their wanted position + floating_modifier $mod + + # resize mode + mode "resize" { + #bindsym j resize shrink width 10 px or 10 ppt + #bindsym k resize grow height 10 px or 10 ppt + #bindsym l resize shrink height 10 px or 10 ppt + #bindsym semicolon resize grow width 10 px or 10 ppt + bindsym h resize shrink width 10 px or 10 ppt + bindsym j resize grow height 10 px or 10 ppt + bindsym k resize shrink height 10 px or 10 ppt + bindsym l resize grow width 10 px or 10 ppt + + bindsym Return mode "default" + bindsym Escape mode "default" + bindsym Control+[ mode "default" + } + + bindsym $mod+r mode "resize" + + ################################################################################ + + # Terminal + bindsym $mod+Return exec i3-sensible-terminal + + # Exit Current Window + bindsym $mod+Shift+q kill + + # Run a Program + #bindsym $mod+d exec dmenu_run + bindsym $mod+d exec rofi -combi-modi run#window#ssh -theme solarized -font "ubuntu mono 10" -show combi + + # Cycle Through Windows + #bindsym $mod+j focus left + #bindsym $mod+k focus down + #bindsym $mod+l focus up + #bindsym $mod+semicolon focus right + bindsym $mod+h focus left + bindsym $mod+j focus down + bindsym $mod+k focus up + bindsym $mod+l focus right + + # Move Current Window + #bindsym $mod+Shift+j move left + #bindsym $mod+Shift+k move down + #bindsym $mod+Shift+l move up + #bindsym $mod+Shift+semicolon move right + bindsym $mod+Shift+h move left + bindsym $mod+Shift+j move down + bindsym $mod+Shift+k move up + bindsym $mod+Shift+l move right + + # Horizontal Split + # bindsym $mod+h split h + bindsym $mod+b split h + + # Vertical Split + bindsym $mod+v split v + + # switch to workspace + bindsym $mod+1 workspace 1 + bindsym $mod+2 workspace 2 + bindsym $mod+3 workspace 3 + bindsym $mod+4 workspace 4 + bindsym $mod+5 workspace 5 + bindsym $mod+6 workspace 6 + bindsym $mod+7 workspace 7 + bindsym $mod+8 workspace 8 + bindsym $mod+9 workspace 9 + bindsym $mod+0 workspace 10 + bindsym $mod+Ctrl+1 workspace 11 + bindsym $mod+Ctrl+2 workspace 12 + bindsym $mod+Ctrl+3 workspace 13 + bindsym $mod+Ctrl+4 workspace 14 + bindsym $mod+Ctrl+5 workspace 15 + bindsym $mod+Ctrl+6 workspace 16 + bindsym $mod+Ctrl+7 workspace 17 + bindsym $mod+Ctrl+8 workspace 18 + bindsym $mod+Ctrl+9 workspace 19 + bindsym $mod+Ctrl+0 workspace 20 + bindsym $mod+mod1+Ctrl+1 workspace 21 + bindsym $mod+mod1+Ctrl+2 workspace 22 + bindsym $mod+mod1+Ctrl+3 workspace 23 + bindsym $mod+mod1+Ctrl+4 workspace 24 + bindsym $mod+mod1+Ctrl+5 workspace 25 + bindsym $mod+mod1+Ctrl+6 workspace 26 + bindsym $mod+mod1+Ctrl+7 workspace 27 + bindsym $mod+mod1+Ctrl+8 workspace 28 + bindsym $mod+mod1+Ctrl+9 workspace 29 + bindsym $mod+mod1+Ctrl+0 workspace 30 + + # move focused container to workspace + bindsym $mod+Shift+1 move container to workspace 1 + bindsym $mod+Shift+2 move container to workspace 2 + bindsym $mod+Shift+3 move container to workspace 3 + bindsym $mod+Shift+4 move container to workspace 4 + bindsym $mod+Shift+5 move container to workspace 5 + bindsym $mod+Shift+6 move container to workspace 6 + bindsym $mod+Shift+7 move container to workspace 7 + bindsym $mod+Shift+8 move container to workspace 8 + bindsym $mod+Shift+9 move container to workspace 9 + bindsym $mod+Shift+0 move container to workspace 10 + bindsym $mod+Ctrl+Shift+1 move container to workspace 11 + bindsym $mod+Ctrl+Shift+2 move container to workspace 12 + bindsym $mod+Ctrl+Shift+3 move container to workspace 13 + bindsym $mod+Ctrl+Shift+4 move container to workspace 14 + bindsym $mod+Ctrl+Shift+5 move container to workspace 15 + bindsym $mod+Ctrl+Shift+6 move container to workspace 16 + bindsym $mod+Ctrl+Shift+7 move container to workspace 17 + bindsym $mod+Ctrl+Shift+8 move container to workspace 18 + bindsym $mod+Ctrl+Shift+9 move container to workspace 19 + bindsym $mod+Ctrl+Shift+0 move container to workspace 20 + bindsym $mod+mod1+Ctrl+Shift+1 move container to workspace 21 + bindsym $mod+mod1+Ctrl+Shift+2 move container to workspace 22 + bindsym $mod+mod1+Ctrl+Shift+3 move container to workspace 23 + bindsym $mod+mod1+Ctrl+Shift+4 move container to workspace 24 + bindsym $mod+mod1+Ctrl+Shift+5 move container to workspace 25 + bindsym $mod+mod1+Ctrl+Shift+6 move container to workspace 26 + bindsym $mod+mod1+Ctrl+Shift+7 move container to workspace 27 + bindsym $mod+mod1+Ctrl+Shift+8 move container to workspace 28 + bindsym $mod+mod1+Ctrl+Shift+9 move container to workspace 29 + bindsym $mod+mod1+Ctrl+Shift+0 move container to workspace 30 + + ################################################################################ + # Other + + # Workspace Movement + #bindsym $mod+Control+Shift+j move workspace to output left + #bindsym $mod+Control+Shift+semicolon move workspace to output right + bindsym $mod+Control+Shift+h move workspace to output left + bindsym $mod+Control+Shift+l move workspace to output right + + # Cycle Through Workspaces + #bindsym $mod+Ctrl+j focus workspace prevonoutput + #bindsym $mod+Ctrl+semicolon focus workspace nextonoutput + bindsym $mod+Ctrl+h focus workspace prevonoutput + bindsym $mod+Ctrl+l focus workspace nextonoutput + + # Custom Workspace Names + bindsym $mod+Control+r exec i3-input -F 'rename workspace to "%s"' -P 'Rename workspace to: ' + bindsym $mod+Control+s exec i3-input -F 'workspace "%s"' -P 'Switch to workspace: ' + bindsym $mod+Control+Shift+s exec i3-input -F 'move container to workspace "%s"' -P 'Move to workspace: ' + + # Move Windows through cycle + bindsym $mod+Ctrl+Shift+Left move container to workspace prevonoutput + bindsym $mod+Ctrl+Shift+Right move container to workspace nextonoutput + ''; + }; +} diff --git a/lauren_lagarde.nix b/lauren_lagarde.nix new file mode 100644 index 0000000..42e9283 --- /dev/null +++ b/lauren_lagarde.nix @@ -0,0 +1,12 @@ +{ pkgs, ... }: { + home.stateVersion = "24.05"; + + # Self-hosting + programs.bash.enable = true; + programs.home-manager.enable = true; + + imports = [ + ./vim.nix + ./gpg.nix + ]; +} diff --git a/monitor_configs.nix b/monitor_configs.nix new file mode 100644 index 0000000..8742f1a --- /dev/null +++ b/monitor_configs.nix @@ -0,0 +1,56 @@ +{ home-manager, ... }: { + home.file = { + "precision/tv" = { + executable = true; + text = '' + xrandr \ + --output eDP-1 --mode 1920x1080 --primary \ + --output DP-4 --mode 1920x1080 --rate 60 + i3-msg restart + ''; + }; + "precision/desk" = { + executable = true; + text = '' + xrandr \ + --output DP-4-3 --mode 3840x2160 --rate 30 --primary \ + --output DP-4-1 --mode 3840x2160 --rate 30 --right-of DP-4-3 \ + --output eDP-1 --off + i3-msg restart + ''; + }; + "xps/desk" = { + executable = true; + text = '' + xrandr \ + --output DP-1-2 --mode 3840x2160 --rate 30 --primary \ + --output DP-1-1 --mode 3840x2160 --rate 30 --right-of DP-1-2 \ + --output eDP-1 --off + i3-msg restart + ''; + }; + "precision/work" = { + executable = true; + text = '' + xrandr \ + --output DP-2-2 --mode 3840x2160 --rate 30 --primary \ + --output DP-2-1 --mode 3840x2160 --rate 30 --right-of DP-2-2 \ + --output eDP-1 --off + i3-msg restart + ''; + }; + "precision/standalone" = { + executable = true; + text = '' + xrandr \ + --output eDP-1 --mode 1920x1200 --primary \ + --output DP-4 --off \ + --output DP-2-1 --off \ + --output DP-2-2 --off \ + --output DP-4-1 --off \ + --output DP-4-3 --off + i3-msg restart + ''; + }; + }; +} diff --git a/polybar.nix b/polybar.nix new file mode 100644 index 0000000..20cc5bd --- /dev/null +++ b/polybar.nix @@ -0,0 +1,321 @@ +{ pkgs, home-manager, ... }: { + services.polybar = { + enable = true; + package = pkgs.polybar.override { + i3Support = true; + pulseSupport = true; + }; + script = '' + PATH="$PATH:/run/current-system/sw/bin" + + # 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 + + IFS=$'\n' + for m in $(xrandr --query | grep " connected"); do + if [[ $m = *primary* ]]; then + MONITOR=$(echo $m | cut -d" " -f1) polybar --reload bottom_main & + else + MONITOR=$(echo $m | cut -d" " -f1) polybar --reload bottom & + fi + done + ''; + settings = { + "colors" = { + background = "#222"; + background-alt = "#444"; + foreground = "#dfdfdf"; + foreground-alt = "#999"; + primary = "#ffb52a"; + secondary = "#e60053"; + alert = "#bd2c40"; + }; + + "bar/bottom" = { + monitor = "\${env:MONITOR:}"; + bottom = true; + + radius = 0; + height = 25; + width = "100%"; + + padding = 1; + line-size = 3; + module-margin = 1; + + background = "\${colors.background}"; + foreground = "\${colors.foreground}"; + + font = [ + "fixed:pixelsize=14;1" + "unifont:fontformat=truetype:size=12:antialias=false;0" + "FontAwesome5Free-Solid:weight=heavy:size=12" + #"siji:pixelsize=14;1" + ]; + + modules-left = "hostname bspwm i3"; + modules-center = "mpd"; + modules-right = "dirty root xbacklight volume wlan eth zram memory cpu battery date"; + + scroll-up = "i3wm-wsnext"; + scroll-down = "i3wm-wsprev"; + }; + + "bar/bottom_main" = { + monitor = "\${env:MONITOR:}"; + bottom = true; + + radius = 0; + height = 25; + width = "100%"; + + padding = 1; + line-size = 3; + module-margin = 1; + + background = "\${colors.background}"; + foreground = "\${colors.foreground}"; + + font = [ + "fixed:pixelsize=14;1" + "unifont:fontformat=truetype:size=12:antialias=false;0" + "FontAwesome5Free-Solid:weight=heavy:size=12" + #"siji:pixelsize=14;1" + ]; + + modules-left = "hostname bspwm i3"; + modules-center = "mpd"; + modules-right = "dirty root xbacklight volume wlan eth zram memory cpu battery date tray"; + + scroll-up = "i3wm-wsnext"; + scroll-down = "i3wm-wsprev"; + }; + + "module/tray" = { + type = "internal/tray"; + }; + + "module/root" = { + type = "internal/fs"; + interval = "10"; + + mount = [ "/" ]; + + format-mounted = " "; + format-mounted-underline = "#f876cd"; + + label-mounted = "%mountpoint%%{F-} %free% of %total%"; + label-mounted-foreground = "\${colors.foreground-alt}"; + + bar-used-width = 10; + bar-used-fill = "█"; + bar-used-empty = "█"; + bar-used-indicator = ""; + bar-used-empty-foreground = "#444444"; + + format-prefix = " "; + format-prefix-foreground = "\${colors.foreground-alt}"; + }; + + "module/battery" = { + type = "internal/battery"; + + format-charging = " "; + format-charging-underline = "#ffb52a"; + + format-discharging = " "; + format-discharging-underline = "#ffb52a"; + + format-full-prefix = " "; + format-full-prefix-foreground = "\${colors.foreground-alt}"; + format-full-underline = "#ffb52a"; + + ramp-capacity = [" " " " " " " " " "]; + animation-charging = [" " " " " " " " " "]; + animation-charging-framerate = 750; + }; + + "module/hostname" = { + type = "custom/script"; + exec = "echo $(uname -n)"; + interval = 256; + + format = "