Compare commits
No commits in common. "5d1408254a4189ff369a290973728b0e15ea4a33" and "d2eb1518c70e5a67736ffff2a5cca1d54947791f" have entirely different histories.
5d1408254a
...
d2eb1518c7
25 changed files with 1654 additions and 666 deletions
1016
flake.lock
generated
1016
flake.lock
generated
File diff suppressed because it is too large
Load diff
20
flake.nix
20
flake.nix
|
@ -1,10 +1,10 @@
|
|||
{
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
|
||||
unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-25.05";
|
||||
url = "github:nix-community/home-manager/release-24.11";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
|
@ -17,11 +17,6 @@
|
|||
|
||||
homepage.url = "git+https://git.posixlycorrect.com/fabian/homepage.git?ref=master";
|
||||
|
||||
trivionomicon = {
|
||||
url = "git+https://git.posixlycorrect.com/deepState/trivionomicon?ref=master";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
authentik-nix = {
|
||||
url = "github:nix-community/authentik-nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
@ -45,9 +40,9 @@
|
|||
flake-utils,
|
||||
vpsadminos,
|
||||
homepage,
|
||||
conduwuit,
|
||||
mediawikiSkinCitizen,
|
||||
authentik-nix,
|
||||
trivionomicon,
|
||||
}: let
|
||||
system = "x86_64-linux";
|
||||
|
||||
|
@ -60,7 +55,6 @@
|
|||
self.overlays.default
|
||||
nur.overlays.default
|
||||
nixGL.overlay
|
||||
trivionomicon.overlays.default
|
||||
];
|
||||
};
|
||||
|
||||
|
@ -90,10 +84,6 @@
|
|||
|
||||
specialArgs = {
|
||||
inherit flakes;
|
||||
doctrine = import "${trivionomicon}/doctrine" {
|
||||
inherit pkgs;
|
||||
namespace = "sys";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -129,10 +119,6 @@
|
|||
|
||||
extraSpecialArgs = {
|
||||
inherit flakes;
|
||||
doctrine = import "${trivionomicon}/doctrine" {
|
||||
inherit pkgs;
|
||||
namespace = "hm";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -8,6 +8,5 @@
|
|||
with lib; {
|
||||
imports = [
|
||||
./modules
|
||||
flakes.trivionomicon.homeManagerModules.default
|
||||
];
|
||||
}
|
||||
|
|
|
@ -8,10 +8,11 @@ with lib; let
|
|||
cfg = config.local.services.deepState;
|
||||
in {
|
||||
options.local.services.deepState.enable = mkEnableOption "trivionomicon settings";
|
||||
config = mkIf cfg.enable {
|
||||
home.sessionVariables = {
|
||||
FSOCIETY_TELEGRAM_BACKUP_N = "0";
|
||||
FSOCIETY_TELEGRAM_BACKUP_LOCATION = "/extern/var/fsociety_backup";
|
||||
config =
|
||||
mkIf cfg.enable {
|
||||
home.sessionVariables = {
|
||||
FSOCIETY_TELEGRAM_BACKUP_N = "0";
|
||||
FSOCIETY_TELEGRAM_BACKUP_LOCATION = "/extern/var/fsociety_backup";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -18,6 +18,5 @@
|
|||
./accounts.nix
|
||||
./syncthing.nix
|
||||
./deepState.nix
|
||||
./mapping.nix
|
||||
];
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@ in {
|
|||
calibre
|
||||
chromium
|
||||
discord
|
||||
kdePackages.gwenview
|
||||
gwenview
|
||||
libreoffice-fresh
|
||||
mpv
|
||||
obs-studio
|
||||
|
|
|
@ -10,6 +10,14 @@ in {
|
|||
options.local.apps.firefox = {
|
||||
enable = mkEnableOption "firefox settings";
|
||||
|
||||
workspace = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = ''
|
||||
i3 Workspace in which Firefox should open. If not set, Firefox will not open at startup
|
||||
'';
|
||||
};
|
||||
|
||||
makeDefaultBrowser = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
|
@ -22,6 +30,10 @@ in {
|
|||
config = mkIf cfg.enable (mkMerge [
|
||||
{
|
||||
programs.firefox.enable = true;
|
||||
|
||||
xsession.windowManager.i3.config.startup = optional (cfg.workspace != null) {
|
||||
command = "${lib.getExe pkgs.i3-gaps} 'workspace ${cfg.workspace}; exec ${lib.getExe pkgs.firefox}'";
|
||||
};
|
||||
}
|
||||
|
||||
(mkIf cfg.makeDefaultBrowser {
|
||||
|
|
|
@ -38,7 +38,7 @@ in {
|
|||
maxCacheTtl = 3600 * 6;
|
||||
maxCacheTtlSsh = 3600 * 6;
|
||||
|
||||
pinentry.package = pkgs.pinentry-emacs;
|
||||
pinentryPackage = pkgs.pinentry-emacs;
|
||||
};
|
||||
|
||||
accounts.email.accounts = {
|
||||
|
|
32
home/modules/gui/autorandr.nix
Normal file
32
home/modules/gui/autorandr.nix
Normal file
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.local.gui;
|
||||
in {
|
||||
programs.autorandr = {
|
||||
profiles."default" = {
|
||||
fingerprint =
|
||||
mapAttrs
|
||||
(monitorId: monitor: monitor.fingerprint)
|
||||
cfg.monitors;
|
||||
|
||||
config =
|
||||
mapAttrs (
|
||||
monitorId:
|
||||
filterAttrs
|
||||
(k: v:
|
||||
!elem k [
|
||||
#list of options to exclude from this list
|
||||
"fingerprint"
|
||||
"initialI3Workspace"
|
||||
"monitorId"
|
||||
])
|
||||
)
|
||||
cfg.monitors;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -9,66 +9,120 @@ with lib; let
|
|||
monitorType = {setName}: (
|
||||
types.submodule ({name ? null, ...}: {
|
||||
options = {
|
||||
width = mkOption {
|
||||
monitorId = mkOption {
|
||||
type = types.str;
|
||||
default = "1920";
|
||||
example = "1920";
|
||||
example = "DP-1";
|
||||
readOnly = true;
|
||||
internal = true;
|
||||
};
|
||||
height = mkOption {
|
||||
primary = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "is primary monitor";
|
||||
example = "true";
|
||||
};
|
||||
position = mkOption {
|
||||
type = types.str;
|
||||
default = "1080";
|
||||
example = "1080";
|
||||
example = "0x0";
|
||||
};
|
||||
mode = mkOption {
|
||||
type = types.str;
|
||||
description = "resolution";
|
||||
default = "1920x1080";
|
||||
example = "1920x1080";
|
||||
};
|
||||
rate = mkOption {
|
||||
type = types.str;
|
||||
description = "refresh rate";
|
||||
example = "143.85";
|
||||
};
|
||||
posX = mkOption {
|
||||
rotate = mkOption {
|
||||
type = types.str;
|
||||
description = "x axis position";
|
||||
default = "0";
|
||||
example = "0";
|
||||
default = "normal";
|
||||
example = "left";
|
||||
};
|
||||
posY = mkOption {
|
||||
fingerprint = mkOption {
|
||||
type = types.str;
|
||||
description = "y axis position";
|
||||
default = "0";
|
||||
example = "0";
|
||||
example = "00ffffffffffff003669a03bd4040000231e0104a5341d783bd005ac5048a627125054bfcf00814081809500714f81c0b30001010101023a801871382d40582c450009252100001e0882805070384d400820f80c09252100001a000000fd003090b4b422010a202020202020000000fc004d53492047323443340a20202001a2020320f14d010304131f120211900e0f1d1e230907078301000065030c001000866f80a0703840403020350009252100001a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9";
|
||||
};
|
||||
initialI3Workspace = mkOption {
|
||||
type = types.nullOr types.int;
|
||||
default = null;
|
||||
example = 1;
|
||||
};
|
||||
};
|
||||
config = optionalAttrs setName {
|
||||
# make this better later
|
||||
monitorId = name;
|
||||
};
|
||||
})
|
||||
);
|
||||
in {
|
||||
options.local.gui = {
|
||||
enable = mkEnableOption "GUI settings";
|
||||
primaryMonitor = mkOption {
|
||||
type = monitorType {setName = false;};
|
||||
readOnly = true;
|
||||
internal = true;
|
||||
};
|
||||
monitors = mkOption {
|
||||
type = types.attrsOf (monitorType {setName = true;});
|
||||
};
|
||||
displayBatteryLevel = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "show battery level on polybar";
|
||||
example = "true";
|
||||
};
|
||||
};
|
||||
|
||||
imports = [
|
||||
./autorandr.nix
|
||||
./fonts.nix
|
||||
./i3.nix
|
||||
./polybar.nix
|
||||
./startx.nix
|
||||
./picom.nix
|
||||
./theme.nix
|
||||
./sway.nix
|
||||
./waybar.nix
|
||||
./wofi.nix
|
||||
];
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services = {
|
||||
mako.enable = true;
|
||||
};
|
||||
config = let
|
||||
primaryMonitors =
|
||||
filter (monitor: monitor.primary)
|
||||
(attrValues cfg.monitors);
|
||||
in
|
||||
mkIf cfg.enable {
|
||||
assertions = [
|
||||
{
|
||||
assertion = length primaryMonitors == 1;
|
||||
message = "Exactly one (1) primary monitor is requiered.";
|
||||
}
|
||||
];
|
||||
|
||||
xdg = {
|
||||
enable = true;
|
||||
mimeApps = {
|
||||
local.gui.primaryMonitor = head primaryMonitors;
|
||||
|
||||
xsession = {
|
||||
enable = true;
|
||||
defaultApplications = {
|
||||
"application/pdf" = with pkgs; ["qpdfview"];
|
||||
"x-scheme-handler/file" = with pkgs; ["kitty"];
|
||||
windowManager.i3.enable = true;
|
||||
};
|
||||
|
||||
programs.autorandr.enable = true;
|
||||
services = {
|
||||
dunst.enable = true;
|
||||
betterlockscreen.enable = true;
|
||||
polybar.enable = true;
|
||||
picom.enable = true;
|
||||
};
|
||||
|
||||
xdg = {
|
||||
enable = true;
|
||||
mimeApps = {
|
||||
enable = true;
|
||||
defaultApplications = {
|
||||
"application/pdf" = with pkgs; ["qpdfview"];
|
||||
"x-scheme-handler/file" = with pkgs; ["kitty"];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -4,38 +4,9 @@
|
|||
pkgs,
|
||||
...
|
||||
}: {
|
||||
fonts.fontconfig = {
|
||||
enable = true;
|
||||
defaultFonts = {
|
||||
monospace = [
|
||||
"JetBrains Mono"
|
||||
"Noto Sans Mono CJK SC"
|
||||
"Noto Sans Mono"
|
||||
"Noto Color Emoji"
|
||||
];
|
||||
sansSerif = [
|
||||
"Noto Sans"
|
||||
"Noto Sans CJK SC"
|
||||
"Noto Color Emoji"
|
||||
];
|
||||
serif = [
|
||||
"Noto Serif"
|
||||
"Noto Serif CJK SC"
|
||||
"Noto Color Emoji"
|
||||
];
|
||||
emoji = ["Noto Color Emoji"];
|
||||
};
|
||||
};
|
||||
fonts.fontconfig.enable = true;
|
||||
|
||||
# this is probably not necessary since they are already installed in sys
|
||||
# with fonts.packages buy im too lazy to check
|
||||
home.packages = with pkgs; [
|
||||
jetbrains-mono
|
||||
noto-fonts
|
||||
noto-fonts-cjk-sans
|
||||
noto-fonts-emoji
|
||||
noto-fonts-extra
|
||||
nerd-fonts.fira-code
|
||||
nerd-fonts.droid-sans-mono
|
||||
];
|
||||
}
|
||||
|
|
104
home/modules/gui/i3.nix
Normal file
104
home/modules/gui/i3.nix
Normal file
|
@ -0,0 +1,104 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; {
|
||||
xsession.windowManager.i3 = {
|
||||
package = pkgs.i3-gaps;
|
||||
|
||||
config = let
|
||||
mod = "Mod4";
|
||||
in {
|
||||
modifier = mod;
|
||||
|
||||
fonts = {
|
||||
names = ["JetBrains Mono"];
|
||||
style = "Regular";
|
||||
size = 8.0;
|
||||
};
|
||||
|
||||
gaps = {
|
||||
inner = 10;
|
||||
outer = -10;
|
||||
};
|
||||
|
||||
window = {
|
||||
hideEdgeBorders = "both";
|
||||
titlebar = false;
|
||||
};
|
||||
|
||||
workspaceLayout = "tabbed";
|
||||
|
||||
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 acá
|
||||
# NO QUITARLO. ver man home-configuration.nix
|
||||
keybindings = mkOptionDefault {
|
||||
"${mod}+Return" = "exec ${lib.getExe pkgs.kitty} ${lib.getExe pkgs.tmux}";
|
||||
"${mod}+Tab" = "focus right";
|
||||
"${mod}+Shift+Tab" = "focus left";
|
||||
"${mod}+Shift+s" = "exec ${lib.getExe pkgs.maim} -s -u | ${lib.getExe pkgs.xclip} -selection clipboard -t image/png -i";
|
||||
"${mod}+Shift+w" = "move workspace to output right";
|
||||
"${mod}+l" = "exec ${lib.getExe pkgs.betterlockscreen} -l";
|
||||
};
|
||||
|
||||
startup = [
|
||||
{
|
||||
command = "${lib.getExe pkgs.xss-lock} --transfer-sleep-lock -- ${lib.getExe pkgs.i3lock} --nofork";
|
||||
notification = false;
|
||||
}
|
||||
{
|
||||
command = "${lib.getExe pkgs.networkmanagerapplet}";
|
||||
notification = false;
|
||||
}
|
||||
#todo: sería nice hostear esta imagen en el server y fetchearla si no existe
|
||||
{
|
||||
command = "${lib.getExe pkgs.feh} --bg-fill ${config.home.homeDirectory}/Pictures/wallpapers/jupiter.png";
|
||||
notification = false;
|
||||
always = true;
|
||||
}
|
||||
{
|
||||
#todo: move this to telegram module
|
||||
command = "${lib.getExe pkgs.i3-gaps} 'workspace 2; exec ${lib.getExe pkgs.tdesktop}'";
|
||||
}
|
||||
{
|
||||
command = "${lib.getExe pkgs.i3-gaps} 'workspace 2; exec ${lib.getExe pkgs.gajim}'";
|
||||
}
|
||||
{
|
||||
command = "${pkgs.systemd}/bin/systemctl --user restart polybar.service";
|
||||
notification = false;
|
||||
always = true;
|
||||
}
|
||||
{
|
||||
command = "${lib.getExe pkgs.autorandr} -c";
|
||||
notification = false;
|
||||
always = true;
|
||||
}
|
||||
];
|
||||
|
||||
workspaceOutputAssign =
|
||||
mapAttrsToList (
|
||||
monitorId: v:
|
||||
{
|
||||
output = monitorId;
|
||||
}
|
||||
// optionalAttrs (v.initialI3Workspace != null) {
|
||||
workspace = toString v.initialI3Workspace;
|
||||
}
|
||||
)
|
||||
config.local.gui.monitors;
|
||||
bars = [];
|
||||
};
|
||||
};
|
||||
}
|
41
home/modules/gui/picom.nix
Normal file
41
home/modules/gui/picom.nix
Normal file
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
services.picom = {
|
||||
fade = true;
|
||||
fadeSteps = [0.1 0.1];
|
||||
fadeDelta = 10;
|
||||
settings = {
|
||||
animations = [
|
||||
{
|
||||
triggers = [
|
||||
"open"
|
||||
"show"
|
||||
];
|
||||
|
||||
preset = "appear";
|
||||
duration = "1";
|
||||
}
|
||||
{
|
||||
triggers = [
|
||||
"close"
|
||||
"hide"
|
||||
];
|
||||
|
||||
preset = "disappear";
|
||||
duration = "1";
|
||||
}
|
||||
{
|
||||
triggers = [
|
||||
"geometry"
|
||||
];
|
||||
preset = "geometry-change";
|
||||
duration = "1";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
460
home/modules/gui/polybar.nix
Normal file
460
home/modules/gui/polybar.nix
Normal file
|
@ -0,0 +1,460 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; {
|
||||
services.polybar = {
|
||||
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.gui.primaryMonitor.monitorId;
|
||||
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" = {
|
||||
monitor = head (attrNames (filterAttrs (monitorId: v:
|
||||
!v.primary)
|
||||
config.local.gui.monitors)); # this is bad. will fail if more than 2 monitors. this sets all monitors other than the primary one for this bar.
|
||||
"inherit" = "bar/main";
|
||||
|
||||
modules-left = "i3";
|
||||
modules-center = "xwindow";
|
||||
modules-right = "xkeyboard pulseaudio date";
|
||||
tray-position = "none";
|
||||
};
|
||||
|
||||
"module/xwindow" = {
|
||||
type = "internal/xwindow";
|
||||
label = "%title:0:30:...%";
|
||||
};
|
||||
|
||||
"module/xkeyboard" = {
|
||||
type = "internal/xkeyboard";
|
||||
blacklist-0 = "num lock";
|
||||
|
||||
format-prefix = "";
|
||||
format-prefix-foreground = "\${colors.foreground-alt}";
|
||||
|
||||
label-layout = "%layout%";
|
||||
|
||||
label-indicator-padding = 2;
|
||||
label-indicator-margin = 1;
|
||||
label-indicator-background = "\${colors.secondary}";
|
||||
};
|
||||
|
||||
"module/filesystem" = {
|
||||
type = "internal/fs";
|
||||
interval = 10;
|
||||
|
||||
mount-0 = "/";
|
||||
|
||||
label-mounted = "%{F#0a81f5}%mountpoint%%{F-}: %used%/%total%";
|
||||
label-unmounted = "";
|
||||
};
|
||||
|
||||
"module/i3" = {
|
||||
type = "internal/i3";
|
||||
format = "<label-state> <label-mode>";
|
||||
index-sort = true;
|
||||
wrapping-scroll = false;
|
||||
|
||||
# Only show workspaces on the same output as the bar
|
||||
# pin-workspaces = true
|
||||
|
||||
label-mode-padding = 1;
|
||||
label-mode-foreground = "#000";
|
||||
label-mode-background = "\${colors.primary}";
|
||||
|
||||
# focused = Active workspace on focused monitor
|
||||
label-focused = "%index%";
|
||||
label-focused-background = "\${colors.background}";
|
||||
label-focused-underline = "\${colors.primary}";
|
||||
label-focused-padding = 1;
|
||||
|
||||
# unfocused = Inactive workspace on any monitor
|
||||
label-unfocused = "%index%";
|
||||
label-unfocused-padding = 1;
|
||||
|
||||
# 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}";
|
||||
|
||||
# urgent = Workspace with urgency hint set
|
||||
label-urgent = "%index%";
|
||||
label-urgent-background = "\${colors.alert}";
|
||||
label-urgent-padding = 1;
|
||||
};
|
||||
|
||||
"module/xbacklight" = {
|
||||
type = "internal/xbacklight";
|
||||
|
||||
format = "<label> <bar>";
|
||||
label = "BL";
|
||||
|
||||
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}";
|
||||
};
|
||||
|
||||
"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-connected = "<ramp-signal> <label-connected>";
|
||||
label-connected = "%essid%";
|
||||
|
||||
format-disconnected = "";
|
||||
# format-disconnected = "<label-disconnected>";
|
||||
# format-disconnected-underline = "\${self.format-connected-underline}";
|
||||
# label-disconnected = "%ifname% disconnected";
|
||||
# label-disconnected-foreground = "\${colors.foreground-alt}";
|
||||
|
||||
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-connected-prefix = "";
|
||||
format-connected-prefix-foreground = "\${colors.foreground-alt}";
|
||||
label-connected = "%local_ip%";
|
||||
|
||||
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;
|
||||
|
||||
date = " %d/%m/%Y";
|
||||
date-alt = " %c";
|
||||
|
||||
time = "%H:%M";
|
||||
time-alt = " [%s]";
|
||||
|
||||
format-prefix = "";
|
||||
format-prefix-foreground = "\${colors.foreground-alt}";
|
||||
|
||||
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";
|
||||
|
||||
format-volume = "<label-volume>";
|
||||
label-volume = "vol %percentage%%";
|
||||
label-volume-foreground = "\${root.foreground}";
|
||||
|
||||
label-muted = "vol 0%";
|
||||
label-muted-foreground = "\${root.foreground}";
|
||||
|
||||
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";
|
||||
|
||||
format-volume = "<label-volume> <bar-volume>";
|
||||
label-volume = "VOL";
|
||||
label-volume-foreground = "\${root.foreground}";
|
||||
|
||||
format-muted-prefix = "vol ";
|
||||
format-muted-foreground = "\${colors.foreground-alt}";
|
||||
label-muted = "sound muted";
|
||||
|
||||
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-charging = "<animation-charging> <label-charging>";
|
||||
format-charging-underline = "#ffb52a";
|
||||
|
||||
format-discharging = "<animation-discharging> <label-discharging>";
|
||||
format-discharging-underline = "\${self.format-charging-underline}";
|
||||
|
||||
format-full-prefix = " ";
|
||||
format-full-prefix-foreground = "\${colors.foreground-alt}";
|
||||
format-full-underline = "\${self.format-charging-underline}";
|
||||
|
||||
ramp-capacity-0 = "";
|
||||
ramp-capacity-1 = "";
|
||||
ramp-capacity-2 = "";
|
||||
ramp-capacity-foreground = "\${colors.foreground-alt}";
|
||||
|
||||
animation-charging-0 = "";
|
||||
animation-charging-1 = "";
|
||||
animation-charging-2 = "";
|
||||
animation-charging-foreground = "\${colors.foreground-alt}";
|
||||
animation-charging-framerate = 750;
|
||||
|
||||
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 = "<ramp> <label>";
|
||||
format-warn = "<ramp> <label-warn>";
|
||||
|
||||
label = "cpu %temperature-c%";
|
||||
label-warn = "cpu %temperature-c%";
|
||||
label-warn-foreground = "\${colors.secondary}";
|
||||
|
||||
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;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
16
home/modules/gui/startx.nix
Normal file
16
home/modules/gui/startx.nix
Normal file
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; {
|
||||
config = mkIf config.local.gui.enable {
|
||||
home.file.".xinitrc".source = let
|
||||
content = ''
|
||||
exec ~/.xsession
|
||||
'';
|
||||
in
|
||||
pkgs.writeShellScript "xinitrc" content;
|
||||
};
|
||||
}
|
|
@ -1,142 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.local.gui;
|
||||
in {
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = [
|
||||
pkgs.wlr-randr
|
||||
];
|
||||
|
||||
services = {
|
||||
swayidle = {
|
||||
enable = true;
|
||||
timeouts = [
|
||||
{
|
||||
timeout = 600;
|
||||
command = "${getExe pkgs.gtklock} -d";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.services.wl-gammarelay-rs = {
|
||||
Unit.After = ["sway-session.target"];
|
||||
Install.WantedBy = ["sway-session.target"];
|
||||
|
||||
Service.ExecStart = getExe pkgs.wl-gammarelay-rs;
|
||||
};
|
||||
|
||||
wayland.windowManager.sway = {
|
||||
enable = true;
|
||||
|
||||
config = {
|
||||
output =
|
||||
lib.mapAttrs (k: v: {
|
||||
mode = "${toString v.width}x${toString v.height}@${v.rate}Hz";
|
||||
pos = "${toString v.posX} ${toString v.posY}";
|
||||
})
|
||||
cfg.monitors;
|
||||
|
||||
modifier = "Mod4";
|
||||
focus.followMouse = true;
|
||||
|
||||
input = {
|
||||
"*" = {
|
||||
xkb_layout = "us";
|
||||
xkb_variant = "altgr-intl";
|
||||
};
|
||||
};
|
||||
|
||||
fonts = {
|
||||
names = ["JetBrains Mono"];
|
||||
style = "Regular";
|
||||
size = 8.0;
|
||||
};
|
||||
|
||||
gaps = {
|
||||
inner = 10;
|
||||
outer = -10;
|
||||
};
|
||||
|
||||
bars = singleton {
|
||||
command = "waybar";
|
||||
position = "top";
|
||||
};
|
||||
|
||||
window = {
|
||||
hideEdgeBorders = "both";
|
||||
titlebar = false;
|
||||
};
|
||||
|
||||
workspaceLayout = "tabbed";
|
||||
|
||||
colors = {
|
||||
focused = {
|
||||
background = "#222222";
|
||||
border = "#4c7899";
|
||||
childBorder = "#222222";
|
||||
indicator = "#292d2e";
|
||||
text = "#888888";
|
||||
};
|
||||
};
|
||||
|
||||
keybindings = let
|
||||
mod = config.wayland.windowManager.sway.config.modifier;
|
||||
wofi = config.programs.wofi.package;
|
||||
|
||||
grimshot = getExe pkgs.sway-contrib.grimshot;
|
||||
in
|
||||
mkOptionDefault {
|
||||
"${mod}+a" = "focus parent";
|
||||
"${mod}+c" = "focus child";
|
||||
"${mod}+d" = "exec --no-startup-id ${getExe wofi} -S run";
|
||||
"${mod}+l" = "exec ${getExe pkgs.gtklock} -d";
|
||||
"${mod}+Return" = "exec ${lib.getExe pkgs.kitty} ${lib.getExe pkgs.tmux}";
|
||||
"${mod}+Shift+s" = "exec ${grimshot} copy area";
|
||||
"${mod}+Tab" = "focus right";
|
||||
"${mod}+Shift+Tab" = "focus left";
|
||||
"${mod}+Shift+w" = "move workspace to output right";
|
||||
};
|
||||
|
||||
startup = [
|
||||
{
|
||||
command = "${lib.getExe pkgs.sway} 'workspace 1; exec ${lib.getExe pkgs.firefox}'";
|
||||
}
|
||||
{
|
||||
command = "${lib.getExe pkgs.sway} 'workspace 2; exec ${lib.getExe pkgs.tdesktop}'";
|
||||
}
|
||||
{
|
||||
command = "${lib.getExe pkgs.sway} 'workspace 2; exec ${lib.getExe pkgs.gajim}'";
|
||||
}
|
||||
{
|
||||
command = "${lib.getExe pkgs.swaybg} -m fill -i ${config.home.homeDirectory}/Pictures/wallpapers/jupiter.png";
|
||||
always = true;
|
||||
}
|
||||
{
|
||||
command = "${lib.getExe pkgs.networkmanagerapplet}";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
extraSessionCommands = ''
|
||||
export SDL_VIDEODRIVER=wayland
|
||||
# needs qt5.qtwayland in systemPackages
|
||||
export QT_QPA_PLATFORM=wayland
|
||||
export QT_WAYLAND_DISABLE_WINDOWDECORATION="1"
|
||||
# Fix for some Java AWT applications (e.g. Android Studio),
|
||||
# use this if they aren't displayed properly:
|
||||
export _JAVA_AWT_WM_NONREPARENTING=1
|
||||
'';
|
||||
|
||||
swaynag.enable = true;
|
||||
systemd.enable = true;
|
||||
|
||||
xwayland = true;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,172 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.local.gui;
|
||||
in {
|
||||
config = mkIf cfg.enable {
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
settings = {
|
||||
mainBar = {
|
||||
layer = "top";
|
||||
position = "top";
|
||||
height = 20;
|
||||
spacing = 0;
|
||||
|
||||
modules-left = [
|
||||
"sway/workspaces"
|
||||
"sway/mode"
|
||||
];
|
||||
modules-center = [
|
||||
"clock"
|
||||
];
|
||||
|
||||
modules-right = [
|
||||
"cpu"
|
||||
"memory"
|
||||
"keyboard-state"
|
||||
"tray"
|
||||
];
|
||||
"keyboard-state" = {
|
||||
numlock = true;
|
||||
capslock = true;
|
||||
};
|
||||
"tray" = {
|
||||
icon-size = 13;
|
||||
spacing = 8;
|
||||
};
|
||||
"clock" = {
|
||||
interval = 60;
|
||||
format = "{:%A %B %d %Y %H:%M}";
|
||||
tooltip = true;
|
||||
tooltip-format = "{}";
|
||||
};
|
||||
"cpu" = {
|
||||
format = "cpu {usage}%";
|
||||
tooltip = false;
|
||||
};
|
||||
"memory" = {
|
||||
format = "mem {percentage}%";
|
||||
tooltip = true;
|
||||
tooltip-format = "{used}/{total}";
|
||||
};
|
||||
};
|
||||
};
|
||||
style = ''
|
||||
* {
|
||||
font-family: "JetBrains Mono", monospace;
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/* Entire bar: fully transparent, no border */
|
||||
window#waybar {
|
||||
background: transparent;
|
||||
color: #eaeaea;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* Optional: small edge breathing room (comment out if you want edge-to-edge) */
|
||||
/* window#waybar { margin: 3px 6px 0 6px; } */
|
||||
|
||||
/* Module containers */
|
||||
.modules-left, .modules-center, .modules-right {
|
||||
padding: 0;
|
||||
margin: 0 6px;
|
||||
}
|
||||
|
||||
/* Subtle separators between modules (no boxes) */
|
||||
.modules-left > widget:not(:first-child),
|
||||
.modules-center > widget:not(:first-child),
|
||||
.modules-right > widget:not(:first-child) {
|
||||
margin-left: 8px;
|
||||
padding-left: 8px;
|
||||
border-left: 1px solid rgba(255, 255, 255, 0.08);
|
||||
}
|
||||
|
||||
/* Tightest possible workspaces */
|
||||
#workspaces { padding: 0; margin: 0; }
|
||||
#workspaces button {
|
||||
margin: 0;
|
||||
padding: 0 3px;
|
||||
min-width: 0;
|
||||
border-radius: 0;
|
||||
background: transparent;
|
||||
color: #cfcfcf;
|
||||
}
|
||||
#workspaces button:hover {
|
||||
background: rgba(255, 255, 255, 0.06);
|
||||
}
|
||||
#workspaces button.active,
|
||||
#workspaces button.focused {
|
||||
background: rgba(255, 255, 255, 0.10);
|
||||
color: #ffffff;
|
||||
border-bottom: 2px solid #ffffff;
|
||||
}
|
||||
#workspaces button.urgent {
|
||||
background: rgba(255, 80, 80, 0.25);
|
||||
border-bottom: 2px solid #ff5050;
|
||||
}
|
||||
|
||||
/* Focused window title: single line, no glow */
|
||||
#window {
|
||||
padding: 0 6px;
|
||||
margin: 0;
|
||||
color: #dedede;
|
||||
}
|
||||
|
||||
/* Sway mode indicator: visible only when active, no bloat */
|
||||
#mode {
|
||||
padding: 0 6px;
|
||||
margin: 0;
|
||||
background: rgba(255, 255, 255, 0.10);
|
||||
color: #ffffff;
|
||||
border-bottom: 2px solid #ffffff;
|
||||
}
|
||||
|
||||
/* Status modules — keep them flat and compact */
|
||||
#clock, #battery, #network, #pulseaudio, #backlight, #cpu, #memory, #temperature, #tray {
|
||||
padding: 0 6px;
|
||||
margin: 0;
|
||||
background: transparent;
|
||||
color: #eaeaea;
|
||||
}
|
||||
|
||||
/* States (battery, network, audio) */
|
||||
#battery.charging { color: #c9ffbf; }
|
||||
#battery.warning:not(.charging) { color: #ffd29a; }
|
||||
#battery.critical:not(.charging) { color: #ff9a9a; }
|
||||
|
||||
#network.disconnected { color: #ffb4b4; }
|
||||
#pulseaudio.muted { color: #9aa0a6; }
|
||||
|
||||
/* Tray: compress icons */
|
||||
#tray > .passive { opacity: 0.6; }
|
||||
#tray > .needs-attention { opacity: 1; }
|
||||
|
||||
/* Tooltips: clean and readable */
|
||||
tooltip {
|
||||
background: rgba(30, 30, 30, 0.95);
|
||||
border: 1px solid rgba(255, 255, 255, 0.08);
|
||||
color: #eaeaea;
|
||||
padding: 6px 8px;
|
||||
}
|
||||
|
||||
/* Remove any leftover borders around everything */
|
||||
#custom-*, #idle_inhibitor, #privacy, #bluetooth {
|
||||
border: none;
|
||||
background: transparent;
|
||||
margin: 0;
|
||||
padding: 0 6px;
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,19 +0,0 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.local.apps.mapping;
|
||||
in {
|
||||
options.local.apps.mapping = {
|
||||
enable = mkEnableOption "mapping apps";
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
qgis
|
||||
openorienteering-mapper
|
||||
];
|
||||
};
|
||||
}
|
|
@ -28,7 +28,7 @@ in {
|
|||
ignoreSpace = true;
|
||||
};
|
||||
|
||||
initContent = import ./zshrc.nix {inherit config lib pkgs;};
|
||||
initExtra = import ./zshrc.nix {inherit config lib pkgs;};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -43,23 +43,29 @@
|
|||
gaming.enable = true;
|
||||
yubikey.enable = true;
|
||||
defaultDesktopPack.enable = true;
|
||||
firefox.enable = true;
|
||||
mapping.enable = true;
|
||||
firefox = {
|
||||
enable = true;
|
||||
workspace = "1"; #make this an int later
|
||||
};
|
||||
};
|
||||
|
||||
gui = {
|
||||
enable = true;
|
||||
monitors = {
|
||||
DP-1 = {
|
||||
width = "1920";
|
||||
height = "1080";
|
||||
rate = "59.94";
|
||||
primary = true;
|
||||
position = "0x0";
|
||||
mode = "1920x1080";
|
||||
rate = "143.85";
|
||||
fingerprint = "00ffffffffffff003669a03bd4040000231e0104a5341d783bd005ac5048a627125054bfcf00814081809500714f81c0b30001010101023a801871382d40582c450009252100001e0882805070384d400820f80c09252100001a000000fd003090b4b422010a202020202020000000fc004d53492047323443340a20202001a2020320f14d010304131f120211900e0f1d1e230907078301000065030c001000866f80a0703840403020350009252100001a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9";
|
||||
initialI3Workspace = 1;
|
||||
};
|
||||
DP-2 = {
|
||||
width = "1920";
|
||||
height = "1080";
|
||||
rate = "143.855";
|
||||
posX = "1920";
|
||||
position = "1920x0";
|
||||
mode = "1920x1080";
|
||||
rate = "59.94";
|
||||
fingerprint = "00ffffffffffff0009d1e77845540000061f0104a5351e783a0565a756529c270f5054a56b80d1c0b300a9c08180810081c001010101023a801871382d40582c45000f282100001e000000ff0039324d30303033323031510a20000000fd00324c1e5311010a202020202020000000fc0042656e51204757323438300a20019b02031cf14f901f041303120211011406071516052309070783010000023a801871382d40582c45000f282100001f011d8018711c1620582c25000f282100009f011d007251d01e206e2855000f282100001e8c0ad08a20e02d10103e96000f28210000180000000000000000000000000000000000000000000000000000008d";
|
||||
initialI3Workspace = 10;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -68,17 +74,19 @@
|
|||
home = {
|
||||
packages = with pkgs; [
|
||||
darktable
|
||||
deluge
|
||||
(gajim.override {
|
||||
enableSecrets = true;
|
||||
# enableJingle = true;
|
||||
# enableSpelling = true;
|
||||
enableUPnP = true;
|
||||
enableAppIndicator = true;
|
||||
# enableAppIndicator = true;
|
||||
enableE2E = true;
|
||||
enableRST = true;
|
||||
})
|
||||
gnucash
|
||||
kdePackages.kdenlive
|
||||
kdenlive
|
||||
nmap
|
||||
qbittorrent
|
||||
virt-manager
|
||||
];
|
||||
|
||||
|
|
|
@ -48,9 +48,12 @@
|
|||
enable = true;
|
||||
monitors = {
|
||||
eDP-1 = {
|
||||
width = "1920";
|
||||
height = "1080";
|
||||
primary = true;
|
||||
position = "0x0";
|
||||
mode = "1920x1080";
|
||||
rate = "60.00";
|
||||
fingerprint = "00ffffffffffff000dae0a1400000000291d0104a51f11780328659759548e271e505400000001010101010101010101010101010101363680a0703820403020a60035ad10000018000000fe004e3134304843412d4541450a20000000fe00434d4e0a202020202020202020000000fe004e3134304843412d4541450a200002";
|
||||
initialI3Workspace = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
}:
|
||||
with lib; {
|
||||
imports = [
|
||||
flakes.trivionomicon.nixosModules.default
|
||||
./modules
|
||||
];
|
||||
}
|
||||
|
|
|
@ -16,14 +16,4 @@
|
|||
./net.nix
|
||||
./steam.nix
|
||||
];
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
jetbrains-mono
|
||||
noto-fonts
|
||||
noto-fonts-cjk-sans
|
||||
noto-fonts-emoji
|
||||
noto-fonts-extra
|
||||
nerd-fonts.fira-code
|
||||
nerd-fonts.droid-sans-mono
|
||||
];
|
||||
}
|
||||
|
|
|
@ -30,8 +30,6 @@
|
|||
};
|
||||
};
|
||||
|
||||
trivium.sway.enable = true;
|
||||
|
||||
networking = {
|
||||
hostName = "posixlycorrect";
|
||||
networkmanager.enable = true;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue