style: improve theming with global variables

This commit is contained in:
b12f 2024-09-04 22:28:41 +02:00
parent 9fc9b6b5c8
commit 165fa48bfa
Signed by: b12f
GPG key ID: 729956E1124F8F26
16 changed files with 342 additions and 287 deletions

View file

@ -716,7 +716,8 @@
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_4",
"nixpkgs-master": "nixpkgs-master", "nixpkgs-master": "nixpkgs-master",
"nixpkgs-unstable": "nixpkgs-unstable", "nixpkgs-unstable": "nixpkgs-unstable",
"openstreetmap": "openstreetmap" "openstreetmap": "openstreetmap",
"themes": "themes"
} }
}, },
"systems": { "systems": {
@ -749,6 +750,21 @@
"type": "github" "type": "github"
} }
}, },
"themes": {
"locked": {
"lastModified": 1715166503,
"narHash": "sha256-eG3+PTzJntnMrO9J2fCtshU+XX18uI8iIjDKU9NkJXA=",
"owner": "RGBCube",
"repo": "ThemeNix",
"rev": "c188d0d729841f71f576dfb544e70c0340bf52a8",
"type": "github"
},
"original": {
"owner": "RGBCube",
"repo": "ThemeNix",
"type": "github"
}
},
"utils": { "utils": {
"inputs": { "inputs": {
"systems": "systems_2" "systems": "systems_2"

View file

@ -15,6 +15,8 @@
home-manager.url = "github:nix-community/home-manager/release-24.05"; home-manager.url = "github:nix-community/home-manager/release-24.05";
home-manager.inputs.nixpkgs.follows = "nixpkgs"; home-manager.inputs.nixpkgs.follows = "nixpkgs";
themes.url = "github:RGBCube/ThemeNix";
flake-parts.url = "github:hercules-ci/flake-parts"; flake-parts.url = "github:hercules-ci/flake-parts";
nixos-flake.url = "github:srid/nixos-flake"; nixos-flake.url = "github:srid/nixos-flake";
@ -61,6 +63,7 @@
imports = [ imports = [
inputs.nixos-flake.flakeModule inputs.nixos-flake.flakeModule
./public-keys.nix ./public-keys.nix
./theme.nix
./lib ./lib
./modules ./modules
./hosts ./hosts

View file

@ -1,5 +1,4 @@
{ {
withSystem,
self, self,
inputs, inputs,
... ...
@ -7,6 +6,7 @@
flake = { flake = {
nixosConfigurations = { nixosConfigurations = {
stroopwafel = self.nixos-flake.lib.mkLinuxSystem { stroopwafel = self.nixos-flake.lib.mkLinuxSystem {
nixpkgs.hostPlatform = "x86_64-linux"; nixpkgs.hostPlatform = "x86_64-linux";
imports = [ imports = [
inputs.impermanence.nixosModules.impermanence inputs.impermanence.nixosModules.impermanence

View file

@ -1,20 +1,3 @@
@define-color base00 #1a181a;
@define-color base01 #2d2a2e;
@define-color base02 #303030;
@define-color base03 #949494;
@define-color base04 #d3d1d4;
@define-color base05 #e3e1e4;
@define-color base06 #303030;
@define-color base07 #ff5f5f;
@define-color base08 #f85e84;
@define-color base09 #df5923;
@define-color base0A #e5c463;
@define-color base0B #9ecd6f;
@define-color base0C #ef9062;
@define-color base0D #7accd7;
@define-color base0E #ab9df2;
@define-color base0F #d70000;
* { * {
min-height: 0; min-height: 0;
border: none; border: none;

View file

@ -1,4 +1,4 @@
{ { flake, ...}: with flake.self.theme.with0x; {
env = { env = {
TERM = "xterm-256color"; TERM = "xterm-256color";
}; };
@ -164,8 +164,8 @@
# Default colors # Default colors
primary = { primary = {
background = "0x1a181a"; background = base00;
foreground = "0xe3e1e4"; foreground = base05;
}; };
# Cursor colors # Cursor colors
@ -184,8 +184,8 @@
# Allowed values are CellForeground/CellBackground, which reference the # Allowed values are CellForeground/CellBackground, which reference the
# affected cell, or hexadecimal colors like #ff00ff. # affected cell, or hexadecimal colors like #ff00ff.
matches = { matches = {
foreground = "0xe5c463"; foreground = base0A;
background = "0x1a181a"; background = base00;
}; };
focused_match = { focused_match = {
foreground = "CellBackground"; foreground = "CellBackground";
@ -203,58 +203,58 @@
# Allowed values are CellForeground/CellBackground, which reference the # Allowed values are CellForeground/CellBackground, which reference the
# affected cell, or hexadecimal colors like #ff00ff. # affected cell, or hexadecimal colors like #ff00ff.
selection = { selection = {
text = "0x1a181a"; text = base00;
background = "0xf85e84"; background = base08;
}; };
# Normal colors # Normal colors
normal = { normal = {
black = "0x1a181a"; black = base00;
red = "0xf85e84"; red = base08;
green = "0x9ecd6f"; green = base09;
yellow = "0xe5c463"; yellow = base0A;
blue = "0x7accd7"; blue = base0D;
magenta = "0xab9df2"; magenta = base0E;
cyan = "0xef9062"; cyan = base0C;
white = "0xe3e1e4"; white = base05;
}; };
# Bright colors # Bright colors
bright = { bright = {
black = "0x949494"; black = base00;
red = "0xf85e84"; red = base08;
green = "0x9ecd6f"; green = base09;
yellow = "0xe5c463"; yellow = base0A;
blue = "0x7accd7"; blue = base0D;
magenta = "0xab9df2"; magenta = base0E;
cyan = "0xef9062"; cyan = base0C;
white = "0xff5f5f"; white = base07;
}; };
indexed_colors = [ indexed_colors = [
{ {
index = 16; index = 16;
color = "0xdf5923"; color = base09;
} }
{ {
index = 17; index = 17;
color = "0xd70000"; color = base0F;
} }
{ {
index = 18; index = 18;
color = "0x2d2a2e"; color = base01;
} }
{ {
index = 19; index = 19;
color = "0x303030"; color = base02;
} }
{ {
index = 20; index = 20;
color = "0xd3d1d4"; color = base04;
} }
{ {
index = 21; index = 21;
color = "0x303030"; color = base02;
} }
]; ];
}; };

View file

@ -1,4 +1,4 @@
{ args@{
lib, lib,
config, config,
pkgs, pkgs,
@ -111,7 +111,7 @@ in {
home-manager.users."${psCfg.user.name}" = { home-manager.users."${psCfg.user.name}" = {
home.file."xinitrc".source = ./.xinitrc; home.file."xinitrc".source = ./.xinitrc;
xdg.configFile."alacritty/alacritty.toml".source = tomlFormat.generate "alacritty.toml" (import ./alacritty.nix); xdg.configFile."alacritty/alacritty.toml".source = tomlFormat.generate "alacritty.toml" ((import ./alacritty.nix) args);
xdg.configFile."xmodmap".source = ./.config/xmodmap; xdg.configFile."xmodmap".source = ./.config/xmodmap;
xdg.configFile."user-dirs.dirs".source = ./.config/user-dirs.dirs; xdg.configFile."user-dirs.dirs".source = ./.config/user-dirs.dirs;
xdg.configFile."user-dirs.locale".source = ./.config/user-dirs.locale; xdg.configFile."user-dirs.locale".source = ./.config/user-dirs.locale;
@ -119,6 +119,12 @@ in {
xdg.configFile."libinput-gestures.conf".source = ./.config/libinput-gestures.conf; xdg.configFile."libinput-gestures.conf".source = ./.config/libinput-gestures.conf;
xdg.configFile."wallpaper.jpg".source = ./assets/wallpaper.jpg; xdg.configFile."wallpaper.jpg".source = ./assets/wallpaper.jpg;
dconf.settings = {
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
};
};
gtk = { gtk = {
enable = true; enable = true;
font.name = "Lato"; font.name = "Lato";
@ -136,7 +142,7 @@ in {
gtk-xft-hinting = "1"; gtk-xft-hinting = "1";
gtk-xft-hintstyle = "hintfull"; gtk-xft-hintstyle = "hintfull";
gtk-xft-rgba = "rgb"; gtk-xft-rgba = "rgb";
gtk-application-prefer-dark-theme = "true"; gtk-application-prefer-dark-theme = "1";
}; };
}; };

View file

@ -2,6 +2,7 @@
lib, lib,
config, config,
pkgs, pkgs,
flake,
... ...
}: }:
with lib; let with lib; let
@ -10,20 +11,20 @@ in {
home-manager.users."${psCfg.user.name}" = { home-manager.users."${psCfg.user.name}" = {
services.mako = { services.mako = {
enable = true; enable = true;
extraConfig = '' extraConfig = with flake.self.theme.withHashtag; ''
padding=10 padding=10
margin=5,5,0 margin=5,5,0
default-timeout=5000 default-timeout=5000
background-color=#1a181a background-color=${base00}
text-color=#e3e1e4 text-color=${base05}
border-color=#ff5f5f border-color=${base07}
font=Hack 14 font=Hack 14
[urgency=high] [urgency=high]
background-color=#ff5f5f background-color=${base07}
text-color=#1a181a text-color=${base00}
border-color=#1a181a border-color=${base00}
layer=overlay layer=overlay
font=Hack 14 font=Hack 14
''; '';

View file

@ -1,19 +0,0 @@
## Base16 Burn
# Author: Benjamin Bädorf
set $base00 #1a181a
set $base01 #2d2a2e
set $base02 #303030
set $base03 #949494
set $base04 #d3d1d4
set $base05 #e3e1e4
set $base06 #303030
set $base07 #ff5f5f
set $base08 #f85e84
set $base09 #df5923
set $base0A #e5c463
set $base0B #9ecd6f
set $base0C #ef9062
set $base0D #7accd7
set $base0E #ab9df2
set $base0F #d70000

View file

@ -1,14 +1,12 @@
{ {
pkgs, pkgs,
psCfg, config,
... ...
}: }: with pkgs; ''
with pkgs;
''
# Set shut down, restart and locking features # Set shut down, restart and locking features
'' ''
+ ( + (
if psCfg.core.hibernation.enable if config.pub-solar.core.hibernation.enable
then '' then ''
set $mode_system (e)xit, (l)ock, (h)ibernate, (r)eboot, (Shift+s)hutdown set $mode_system (e)xit, (l)ock, (h)ibernate, (r)eboot, (Shift+s)hutdown
'' ''
@ -24,7 +22,7 @@ with pkgs;
bindsym l exec ${swaylock-bg}/bin/swaylock-bg, mode "default" bindsym l exec ${swaylock-bg}/bin/swaylock-bg, mode "default"
'' ''
+ ( + (
if psCfg.core.hibernation.enable if config.pub-solar.core.hibernation.enable
then '' then ''
bindsym h exec ${systemd}/bin/systemctl hibernate, mode "default" bindsym h exec ${systemd}/bin/systemctl hibernate, mode "default"
'' ''

View file

@ -1,3 +1,21 @@
{ flake, ... }: with flake.self.theme.withHashtag; ''
set $base00 ${base00}
set $base01 ${base01}
set $base02 ${base02}
set $base03 ${base03}
set $base04 ${base04}
set $base05 ${base05}
set $base06 ${base06}
set $base07 ${base07}
set $base08 ${base08}
set $base09 ${base09}
set $base0A ${base0A}
set $base0B ${base0B}
set $base0C ${base0C}
set $base0D ${base0D}
set $base0E ${base0E}
set $base0F ${base0F}
# Border BG Text Ind Child Border # Border BG Text Ind Child Border
client.focused $base00 $base01 $base07 $base0D $base07 client.focused $base00 $base01 $base07 $base0D $base07
client.focused_inactive $base00 $base01 $base07 $base03 $base00 client.focused_inactive $base00 $base01 $base07 $base03 $base00
@ -14,3 +32,4 @@ exec_always import-gtk-settings \
# Workaround to fix cursor scaling, see https://github.com/swaywm/sway/issues/4112 # Workaround to fix cursor scaling, see https://github.com/swaywm/sway/issues/4112
seat seat0 xcursor_theme Adwaita seat seat0 xcursor_theme Adwaita
''

View file

@ -1,217 +1,225 @@
{ args@{
config, config,
pkgs, pkgs,
... ...
}: '' }: let
# Default config for sway applications = builtins.readFile ./config.d/applications.conf;
# custom-keybindings = builtins.readFile ./config.d/custom-keybindings.conf;
# Copy this to ~/.config/sway/config and edit it to your liking. gaps = builtins.readFile ./config.d/gaps.conf;
# mode-system = import ./config.d/mode_system.conf.nix args;
# Read `man 5 sway` for a complete reference. systemd = builtins.readFile ./config.d/systemd.conf;
in ''
# Default config for sway
#
# Copy this to ~/.config/sway/config and edit it to your liking.
#
# Read `man 5 sway` for a complete reference.
### Variables ### Variables
# #
# Logo key. Use Mod1 for Alt. # Logo key. Use Mod1 for Alt.
set $mod Mod4 set $mod Mod4
# Home row direction keys, like vim # Home row direction keys, like vim
set $left j set $left j
set $down k set $down k
set $up i set $up i
set $right l set $right l
# Your preferred terminal emulator # Your preferred terminal emulator
set $term ${pkgs.alacritty}/bin/alacritty set $term ${pkgs.alacritty}/bin/alacritty
# Your preferred application launcher # Your preferred application launcher
# Note: pass the final command to swaymsg so that the resulting window can be opened # Note: pass the final command to swaymsg so that the resulting window can be opened
# on the original workspace that the command was run on. # on the original workspace that the command was run on.
#set $menu dmenu_path | dmenu | xargs swaymsg exec bemenu-run --no-overlap #set $menu dmenu_path | dmenu | xargs swaymsg exec bemenu-run --no-overlap
default_border pixel 1 default_border pixel 1
### Output configuration ### Key bindings
# #
# Default wallpaper (more resolutions are available in @datadir@/backgrounds/sway/) # Basics:
output * bg ~/.config/wallpaper.jpg fill #
# Start a terminal
bindsym $mod+Return exec $term
### Key bindings # Start a terminal
# bindsym $mod+Shift+Return exec sh -c '$term --working-directory $(wcwd)'
# Basics:
#
# Start a terminal
bindsym $mod+Return exec $term
# Start a terminal # Kill focused window
bindsym $mod+Shift+Return exec sh -c '$term --working-directory $(wcwd)' bindsym $mod+Shift+q kill
# Kill focused window # Drag floating windows by holding down $mod and left mouse button.
bindsym $mod+Shift+q kill # Resize them with right mouse button + $mod.
# Despite the name, also works for non-floating windows.
# Change normal to inverse to use left mouse button for resizing and right
# mouse button for dragging.
floating_modifier $mod normal
# Drag floating windows by holding down $mod and left mouse button. # Reload the configuration file
# Resize them with right mouse button + $mod. bindsym $mod+F5 reload
# Despite the name, also works for non-floating windows.
# Change normal to inverse to use left mouse button for resizing and right
# mouse button for dragging.
floating_modifier $mod normal
# Reload the configuration file #
bindsym $mod+F5 reload # Moving around:
#
# Move your focus around
bindsym $mod+$left focus left
bindsym $mod+$down focus down
bindsym $mod+$up focus up
bindsym $mod+$right focus right
# Or use $mod+[up|down|left|right]
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# # Move the focused window with the same, but add Shift
# Moving around: bindsym $mod+Shift+$left move left
# bindsym $mod+Shift+$down move down
# Move your focus around bindsym $mod+Shift+$up move up
bindsym $mod+$left focus left bindsym $mod+Shift+$right move right
bindsym $mod+$down focus down # Ditto, with arrow keys
bindsym $mod+$up focus up bindsym $mod+Shift+Left move left
bindsym $mod+$right focus right bindsym $mod+Shift+Down move down
# Or use $mod+[up|down|left|right] bindsym $mod+Shift+Up move up
bindsym $mod+Left focus left bindsym $mod+Shift+Right move right
bindsym $mod+Down focus down #
bindsym $mod+Up focus up # Workspaces:
bindsym $mod+Right focus right #
# Move the focused window with the same, but add Shift
bindsym $mod+Shift+$left move left
bindsym $mod+Shift+$down move down
bindsym $mod+Shift+$up move up
bindsym $mod+Shift+$right move right
# Ditto, with arrow keys
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
#
# Workspaces:
#
# Workspace names # Workspace names
# to display names or symbols instead of plain workspace numbers you can use # to display names or symbols instead of plain workspace numbers you can use
# something like: set $ws1 1:mail # something like: set $ws1 1:mail
# set $ws2 2: # set $ws2 2:
set $ws1 1 set $ws1 1
set $ws2 2 set $ws2 2
set $ws3 3 set $ws3 3
set $ws4 4 set $ws4 4
set $ws5 5 set $ws5 5
set $ws6 6 set $ws6 6
set $ws7 7 set $ws7 7
set $ws8 8 set $ws8 8
set $ws9 9 set $ws9 9
# Switch to workspace # Switch to workspace
bindsym $mod+1 workspace 1 bindsym $mod+1 workspace 1
bindsym $mod+2 workspace 2 bindsym $mod+2 workspace 2
bindsym $mod+3 workspace 3 bindsym $mod+3 workspace 3
bindsym $mod+4 workspace 4 bindsym $mod+4 workspace 4
bindsym $mod+5 workspace 5 bindsym $mod+5 workspace 5
bindsym $mod+6 workspace 6 bindsym $mod+6 workspace 6
bindsym $mod+7 workspace 7 bindsym $mod+7 workspace 7
bindsym $mod+8 workspace 8 bindsym $mod+8 workspace 8
bindsym $mod+9 workspace 9 bindsym $mod+9 workspace 9
# Move focused container to workspace # Move focused container to workspace
bindsym $mod+Ctrl+1 move container to workspace $ws1 bindsym $mod+Ctrl+1 move container to workspace $ws1
bindsym $mod+Ctrl+2 move container to workspace $ws2 bindsym $mod+Ctrl+2 move container to workspace $ws2
bindsym $mod+Ctrl+3 move container to workspace $ws3 bindsym $mod+Ctrl+3 move container to workspace $ws3
bindsym $mod+Ctrl+4 move container to workspace $ws4 bindsym $mod+Ctrl+4 move container to workspace $ws4
bindsym $mod+Ctrl+5 move container to workspace $ws5 bindsym $mod+Ctrl+5 move container to workspace $ws5
bindsym $mod+Ctrl+6 move container to workspace $ws6 bindsym $mod+Ctrl+6 move container to workspace $ws6
bindsym $mod+Ctrl+7 move container to workspace $ws7 bindsym $mod+Ctrl+7 move container to workspace $ws7
bindsym $mod+Ctrl+8 move container to workspace $ws8 bindsym $mod+Ctrl+8 move container to workspace $ws8
bindsym $mod+Ctrl+9 move container to workspace $ws9 bindsym $mod+Ctrl+9 move container to workspace $ws9
# Move focused container to workspace and move focus with it # Move focused container to workspace and move focus with it
bindsym $mod+Shift+1 move container to workspace 1; workspace $ws1 bindsym $mod+Shift+1 move container to workspace 1; workspace $ws1
bindsym $mod+Shift+2 move container to workspace 2; workspace $ws2 bindsym $mod+Shift+2 move container to workspace 2; workspace $ws2
bindsym $mod+Shift+3 move container to workspace 3; workspace $ws3 bindsym $mod+Shift+3 move container to workspace 3; workspace $ws3
bindsym $mod+Shift+4 move container to workspace 4; workspace $ws4 bindsym $mod+Shift+4 move container to workspace 4; workspace $ws4
bindsym $mod+Shift+5 move container to workspace 5; workspace $ws5 bindsym $mod+Shift+5 move container to workspace 5; workspace $ws5
bindsym $mod+Shift+6 move container to workspace 6; workspace $ws6 bindsym $mod+Shift+6 move container to workspace 6; workspace $ws6
bindsym $mod+Shift+7 move container to workspace 7; workspace $ws7 bindsym $mod+Shift+7 move container to workspace 7; workspace $ws7
bindsym $mod+Shift+8 move container to workspace 8; workspace $ws8 bindsym $mod+Shift+8 move container to workspace 8; workspace $ws8
bindsym $mod+Shift+9 move container to workspace 9; workspace $ws9 bindsym $mod+Shift+9 move container to workspace 9; workspace $ws9
# Note: workspaces can have any name you want, not just numbers. # Note: workspaces can have any name you want, not just numbers.
# We just use 1-10 as the default. # We just use 1-10 as the default.
#navigate workspaces next / previous #navigate workspaces next / previous
bindsym $mod+Ctrl+Right workspace next bindsym $mod+Ctrl+Right workspace next
bindsym $mod+Ctrl+Left workspace prev bindsym $mod+Ctrl+Left workspace prev
# workspace back and forth (with/without active container) # workspace back and forth (with/without active container)
workspace_auto_back_and_forth yes workspace_auto_back_and_forth yes
bindsym $mod+b workspace back_and_forth bindsym $mod+b workspace back_and_forth
bindsym $mod+Shift+b move container to workspace back_and_forth; workspace back_and_forth bindsym $mod+Shift+b move container to workspace back_and_forth; workspace back_and_forth
# #
# Layout stuff: # Layout stuff:
# #
# Configure border style <normal|1pixel|pixel xx|none|pixel> # Configure border style <normal|1pixel|pixel xx|none|pixel>
default_border pixel 1 default_border pixel 1
default_floating_border normal default_floating_border normal
# Hide borders # Hide borders
hide_edge_borders none hide_edge_borders none
# Font for window titles. Will also be used by the bar unless a different font # Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below. # is used in the bar {} block below.
font xft:Hack 16 font xft:Hack 16
# You can "split" the current object of your focus with # You can "split" the current object of your focus with
# $mod+b or $mod+v, for horizontal and vertical splits # $mod+b or $mod+v, for horizontal and vertical splits
# respectively. # respectively.
bindsym $mod+h splith; exec notify-send 'tile horizontally' bindsym $mod+h splith; exec notify-send 'tile horizontally'
bindsym $mod+v splitv; exec notify-send 'tile vertically' bindsym $mod+v splitv; exec notify-send 'tile vertically'
# Switch the current container between different layout styles # Switch the current container between different layout styles
bindsym $mod+s layout stacking bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split bindsym $mod+e layout toggle split
# Make the current focus fullscreen # Make the current focus fullscreen
bindsym $mod+f fullscreen bindsym $mod+f fullscreen
# Toggle the current focus between tiling and floating mode # Toggle the current focus between tiling and floating mode
bindsym $mod+Shift+space floating toggle bindsym $mod+Shift+space floating toggle
# Swap focus between the tiling area and the floating area # Swap focus between the tiling area and the floating area
bindsym $mod+t focus mode_toggle bindsym $mod+t focus mode_toggle
# Move focus to the parent container # Move focus to the parent container
bindsym $mod+a focus parent bindsym $mod+a focus parent
bindsym $mod+d focus child bindsym $mod+d focus child
# #
# Scratchpad: # Scratchpad:
# #
# Sway has a "scratchpad", which is a bag of holding for windows. # Sway has a "scratchpad", which is a bag of holding for windows.
# You can send windows there and get them back later. # You can send windows there and get them back later.
# Move the currently focused window to the scratchpad # Move the currently focused window to the scratchpad
bindsym $mod+Shift+minus move scratchpad bindsym $mod+Shift+minus move scratchpad
# Show the next scratchpad window or hide the focused scratchpad window. # Show the next scratchpad window or hide the focused scratchpad window.
# If there are multiple scratchpad windows, this command cycles through them. # If there are multiple scratchpad windows, this command cycles through them.
bindsym $mod+minus scratchpad show bindsym $mod+minus scratchpad show
# #
# Resizing containers: # Resizing containers:
# #
mode "resize" { mode "resize" {
# left will shrink the containers width # left will shrink the containers width
# right will grow the containers width # right will grow the containers width
# up will shrink the containers height # up will shrink the containers height
# down will grow the containers height # down will grow the containers height
bindsym $left resize shrink width 10px bindsym $left resize shrink width 10px
bindsym $down resize grow height 10px bindsym $down resize grow height 10px
bindsym $up resize shrink height 10px bindsym $up resize shrink height 10px
bindsym $right resize grow width 10px bindsym $right resize grow width 10px
# Ditto, with arrow keys # Ditto, with arrow keys
bindsym Left resize shrink width 10px bindsym Left resize shrink width 10px
bindsym Down resize grow height 10px bindsym Down resize grow height 10px
bindsym Up resize shrink height 10px bindsym Up resize shrink height 10px
bindsym Right resize grow width 10px bindsym Right resize grow width 10px
# Return to default mode # Return to default mode
bindsym Return mode "default" bindsym Return mode "default"
bindsym Escape mode "default" bindsym Escape mode "default"
} }
bindsym $mod+r mode "resize" bindsym $mod+r mode "resize"
include ~/.config/sway/config.d/*'' ${applications}
${gaps}
${custom-keybindings}
${mode-system}
${systemd}
include ~/.config/sway/config.d/*
''

View file

@ -1,4 +1,4 @@
{ args@{
lib, lib,
config, config,
pkgs, pkgs,
@ -77,14 +77,7 @@ in {
systemd.user.services.xsettingsd = import ./xsettingsd.service.nix {inherit pkgs psCfg;}; systemd.user.services.xsettingsd = import ./xsettingsd.service.nix {inherit pkgs psCfg;};
systemd.user.targets.sway-session = import ./sway-session.target.nix {inherit pkgs psCfg;}; systemd.user.targets.sway-session = import ./sway-session.target.nix {inherit pkgs psCfg;};
xdg.configFile."sway/config".text = import ./config/config.nix {inherit config pkgs;}; xdg.configFile."sway/config".text = import ./config/config.nix args;
xdg.configFile."sway/config.d/colorscheme.conf".source = ./config/config.d/colorscheme.conf;
xdg.configFile."sway/config.d/theme.conf".source = ./config/config.d/theme.conf;
xdg.configFile."sway/config.d/gaps.conf".source = ./config/config.d/gaps.conf;
xdg.configFile."sway/config.d/custom-keybindings.conf".source = ./config/config.d/custom-keybindings.conf;
xdg.configFile."sway/config.d/mode_system.conf".text = import ./config/config.d/mode_system.conf.nix {inherit pkgs psCfg;};
xdg.configFile."sway/config.d/applications.conf".source = ./config/config.d/applications.conf;
xdg.configFile."sway/config.d/systemd.conf".source = ./config/config.d/systemd.conf;
services.swayidle = with pkgs; { services.swayidle = with pkgs; {
enable = true; enable = true;

View file

@ -2,13 +2,14 @@
lib, lib,
config, config,
pkgs, pkgs,
flake,
... ...
}: }:
with lib; let with lib; let
psCfg = config.pub-solar; psCfg = config.pub-solar;
in { in {
home-manager.users."${psCfg.user.name}" = { home-manager.users."${psCfg.user.name}" = {
programs.waybar = { programs.waybar = with flake.self.theme.withHashtag; {
enable = true; enable = true;
settings.main = { settings.main = {
layer = "top"; layer = "top";
@ -88,7 +89,25 @@ in {
}; };
}; };
}; };
style = builtins.readFile ./.config/waybar/style.css; style = ''
@define-color base00 ${base00};
@define-color base01 ${base01};
@define-color base02 ${base02};
@define-color base03 ${base03};
@define-color base04 ${base04};
@define-color base05 ${base05};
@define-color base06 ${base06};
@define-color base07 ${base07};
@define-color base08 ${base08};
@define-color base09 ${base09};
@define-color base0A ${base0A};
@define-color base0B ${base0B};
@define-color base0C ${base0C};
@define-color base0D ${base0D};
@define-color base0E ${base0E};
@define-color base0F ${base0F};
''+ builtins.readFile ./.config/waybar/style.css;
systemd.enable = true; systemd.enable = true;
systemd.target = "sway-session.target"; systemd.target = "sway-session.target";
}; };

View file

@ -2,6 +2,7 @@
lib, lib,
config, config,
pkgs, pkgs,
flake,
... ...
}: }:
with lib; let with lib; let
@ -23,8 +24,8 @@ in {
users.users."${psCfg.user.name}".packages = with pkgs; users.users."${psCfg.user.name}".packages = with pkgs;
[ [
tealdeer
asciinema asciinema
bat
blesh blesh
eza eza
fd fd
@ -73,7 +74,7 @@ in {
# starship.toml has sane defaults that can be changed there # starship.toml has sane defaults that can be changed there
programs.starship = { programs.starship = {
enable = true; enable = true;
settings = import ./starship.toml.nix; settings = import ./starship.toml.nix flake.self.theme.withHashtag;
}; };
programs.bash = import ./bash { programs.bash = import ./bash {

View file

@ -1,20 +1,20 @@
{ theme: with theme; {
format = "$username$hostname$directory($git_branch$git_commit$git_state$git_status)($c$deno$golang$haskell$nodejs$php$python$ruby$rust$terraform[](fg:#F85E84 bg:#000000))($docker_context[](fg:#06969A))($container)$fill(\${custom.triton})$nix_shell$status[ |](fg:#F85E84)$line_break$character"; format = "$username$hostname$directory($git_branch$git_commit$git_state$git_status)($c$deno$golang$haskell$nodejs$php$python$ruby$rust$terraform[](fg:#F85E84 bg:${base00}))($docker_context[](fg:#06969A))($container)$fill(\${custom.triton})$nix_shell$status[ |](fg:#F85E84)$line_break$character";
# Disable the blank line at the start of the prompt # Disable the blank line at the start of the prompt
add_newline = false; add_newline = false;
# You can also replace your username with a neat symbol like  to save some space # You can also replace your username with a neat symbol like  to save some space
username = { username = {
style_user = "bg:#000000 fg:#F85E84"; style_user = "bg:${base00} fg:#F85E84";
style_root = "bg:#F85E84 fg:#000000"; style_root = "bg:#F85E84 fg:${base00}";
format = ''[$user ]($style)''; format = ''[$user ]($style)'';
}; };
hostname = { hostname = {
ssh_symbol = ""; ssh_symbol = "";
trim_at = ""; trim_at = "";
style = "bg:#000000 fg:#F85E84"; style = "bg:${base00} fg:#F85E84";
}; };
character = { character = {

27
theme.nix Normal file
View file

@ -0,0 +1,27 @@
{
inputs,
...
}: {
flake = {
theme = inputs.themes.custom {
"name" = "burn";
"author" = "b12f";
"base00" = "#1a181a";
"base01" = "#2d2a2e";
"base02" = "#303030";
"base03" = "#949494";
"base04" = "#d3d1d4";
"base05" = "#e3e1e4";
"base06" = "#303030";
"base07" = "#ff5f5f";
"base08" = "#f85e84";
"base09" = "#df5923";
"base0A" = "#e5c463";
"base0B" = "#9ecd6f";
"base0C" = "#ef9062";
"base0D" = "#7accd7";
"base0E" = "#ab9df2";
"base0F" = "#d70000";
};
};
}