mirror of
https://github.com/foo-dogsquared/nixos-config.git
synced 2025-02-07 06:19:00 +00:00
Add the theme templates
This commit is contained in:
parent
3d9f5436d8
commit
e67a74485a
@ -77,7 +77,7 @@ In this case, it is my https://github.com/foo-dogsquared/dotflies[dotfiles] dire
|
||||
|
||||
* The `hosts/` contains the individual system configuration of my machine (I've only one but I plan to NixOS for my new ones).
|
||||
Each folder inside of this directory represents one machine.
|
||||
It is also used on the installation phase (from `make install`) by setting the `HOST` variable (i.e., `HOST=zilch make -C /etc/install`) with the folder name as the argument.
|
||||
It is also used on the installation phase (from `make install`) by setting the `HOST` variable (i.e., `HOST=zilch make -C /etc/install`) with the folder name as the argument.
|
||||
|
||||
* The `packages/` folder is my custom packages either the new ones that haven't made into nixpkgs yet or packages with overrides.
|
||||
Also contains third-party package repositories and overlays such as the NUR or the unstable branch of Emacs.
|
||||
@ -87,7 +87,7 @@ Also contains third-party package repositories and overlays such as the NUR or t
|
||||
|
||||
== Themes
|
||||
|
||||
My setup feature themes as a NixOS modules (in link:./modules/themes[`modules/themes`]) which sets up a complete graphical environment.
|
||||
My setup feature themes as a NixOS module (in link:./modules/themes[`modules/themes`]) which sets up a complete graphical environment.
|
||||
This lets me easily switch my graphical setup with a simple toggle (i.e., `theme.$THEME_NAME.enable = true;`).
|
||||
For safety, you should have a bare installation ala-Arch Linux.
|
||||
|
||||
@ -119,11 +119,12 @@ $THEME_NAME
|
||||
----
|
||||
|
||||
* The `config/` folder is where all of the specific configurations will go.
|
||||
Each program to be configured is stored in its own folder (i.e., polybar, bspwm, sxhkd).
|
||||
Each program to be configured is stored in its own folder (e.g., polybar, bspwm, sxhkd).
|
||||
A wallpaper can be placed at `config/wallpaper` for convenience.
|
||||
|
||||
* `default.nix` is simply the entry point for our theme module.
|
||||
This is where you can add certain packages, enable certain settings, setup your files to the home directory, and pass the theme metadata.
|
||||
|
||||
* For convenience, you should make the NixOS theme module as a https://github.com/cookiecutter/cookiecutter[Cookiecutter template] to easily replace the color schemes, fonts, and what-have-you.
|
||||
I have my theme templates stored in link:./templates[`./templates`].
|
||||
|
||||
|
9
templates/themes/README.adoc
Executable file
9
templates/themes/README.adoc
Executable file
@ -0,0 +1,9 @@
|
||||
= NixOS desktop themes
|
||||
|
||||
These are some of my themes om NixOS as a module ala-link:https://github.com/hlissner/dotfiles[hlissner NixOS modules] as a https://github.com/cookiecutter/cookiecutter[Cookiecutter template].
|
||||
Most of them just need a Pywal JSON scheme in the appropriate config file and generate the module with the given color scheme as a result.
|
||||
|
||||
Also, to make them working, you need to have home-manager installed (or do the hardwork of converting them to be suitable for system configuration yourself, your choice).
|
||||
Furthermore, be careful when using the themes as they may override some of the current configuration.
|
||||
The modules assume you don't have much installed and/or enabled (e.g., display servers, window managers) and handle installing those packages for you.
|
||||
|
41
templates/themes/fair-and-square/cookiecutter.json
Executable file
41
templates/themes/fair-and-square/cookiecutter.json
Executable file
@ -0,0 +1,41 @@
|
||||
{
|
||||
"name": "Fair and square",
|
||||
"version": "0.1.0",
|
||||
"special": {
|
||||
"background": "#2E3440",
|
||||
"foreground": "#D8DEE9",
|
||||
"cursor": "#D8DEE9"
|
||||
},
|
||||
"colors": {
|
||||
"color0": "#3B4252",
|
||||
"color1": "#BF616A",
|
||||
"color2": "#A3BE8C",
|
||||
"color3": "#EBCB8B",
|
||||
"color4": "#81A1C1",
|
||||
"color5": "#B48EAD",
|
||||
"color6": "#88C0D0",
|
||||
"color7": "#E5E9F0",
|
||||
"color8": "#727B8A",
|
||||
"color9": "#BF616A",
|
||||
"color10": "#A3BE8C",
|
||||
"color11": "#EBCB8B",
|
||||
"color12": "#81A1C1",
|
||||
"color13": "#B48EAD",
|
||||
"color14": "#8FBCBB",
|
||||
"color15": "#ECEFF4"
|
||||
},
|
||||
"font": {
|
||||
"mono": {
|
||||
"name": "Iosevka",
|
||||
"baseSize": 12
|
||||
},
|
||||
"sansSerif": {
|
||||
"name": "Source Sans Pro",
|
||||
"baseSize": 14
|
||||
},
|
||||
"serif": {
|
||||
"name": "Source Serif Pro",
|
||||
"baseSize": 14
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
= {{ cookiecutter.name }}
|
||||
|
||||
A theme featuring fairly simple graphics with not much bells and whistles.
|
||||
Thus, it focuses on snapiness and efficient use of keyboard shortcuts.
|
||||
Intended to be used for potatoes (READ: cheap low-end computers) like mine.
|
||||
|
||||
This theme is mainly composed of the following components:
|
||||
|
||||
- bspwm as the window manager
|
||||
- polybar for the bars
|
||||
- rofi for the application laucher and the generic interface
|
||||
- dunst (and libnotify) for desktop notifications
|
||||
- Arc is the chosen GTK theme
|
||||
|
||||
Other miscellaneous stuff:
|
||||
|
||||
- sxhkd (since you're using bspwm, anyways)
|
||||
- feh (for setting the background)
|
||||
|
@ -0,0 +1,465 @@
|
||||
# Configuration for Alacritty, the GPU enhanced terminal emulator.
|
||||
|
||||
window:
|
||||
# Window dimensions (changes require restart)
|
||||
#
|
||||
# Specified in number of columns/lines, not pixels.
|
||||
# If both are `0`, this setting is ignored.
|
||||
dimensions:
|
||||
columns: 0
|
||||
lines: 0
|
||||
|
||||
# Window position (changes require restart)
|
||||
#
|
||||
# Specified in number of pixels.
|
||||
# If the position is not set, the window manager will handle the placement.
|
||||
#position:
|
||||
# x: 0
|
||||
# y: 0
|
||||
|
||||
# Window padding (changes require restart)
|
||||
#
|
||||
# Blank space added around the window in pixels. This padding is scaled
|
||||
# by DPI and the specified value is always added at both opposing sides.
|
||||
padding:
|
||||
x: 0
|
||||
y: 0
|
||||
|
||||
# Spread additional padding evenly around the terminal content.
|
||||
dynamic_padding: false
|
||||
|
||||
# Window decorations
|
||||
#
|
||||
# Values for `decorations`:
|
||||
# - full: Borders and title bar
|
||||
# - none: Neither borders nor title bar
|
||||
#
|
||||
# Values for `decorations` (macOS only):
|
||||
# - transparent: Title bar, transparent background and title bar buttons
|
||||
# - buttonless: Title bar, transparent background, but no title bar buttons
|
||||
decorations: full
|
||||
|
||||
# Startup Mode (changes require restart)
|
||||
#
|
||||
# Values for `startup_mode`:
|
||||
# - Windowed
|
||||
# - Maximized
|
||||
# - Fullscreen
|
||||
#
|
||||
# Values for `startup_mode` (macOS only):
|
||||
# - SimpleFullscreen
|
||||
startup_mode: Windowed
|
||||
|
||||
# Allow terminal applications to change Alacritty's window title.
|
||||
dynamic_title: true
|
||||
|
||||
|
||||
colors:
|
||||
primary:
|
||||
background: "{{ cookiecutter.special.background }}"
|
||||
foreground: "{{ cookiecutter.special.foreground }}"
|
||||
|
||||
normal:
|
||||
black: "{{ cookiecutter.colors.color0 }}"
|
||||
red: "{{ cookiecutter.colors.color1 }}"
|
||||
green: "{{ cookiecutter.colors.color2 }}"
|
||||
yellow: "{{ cookiecutter.colors.color3 }}"
|
||||
blue: "{{ cookiecutter.colors.color4 }}"
|
||||
magenta: "{{ cookiecutter.colors.color5 }}"
|
||||
cyan: "{{ cookiecutter.colors.color6 }}"
|
||||
white: "{{ cookiecutter.colors.color7 }}"
|
||||
|
||||
bright:
|
||||
black: "{{ cookiecutter.colors.color8 }}"
|
||||
red: "{{ cookiecutter.colors.color9 }}"
|
||||
green: "{{ cookiecutter.colors.color10 }}"
|
||||
yellow: "{{ cookiecutter.colors.color11 }}"
|
||||
blue: "{{ cookiecutter.colors.color12 }}"
|
||||
magenta: "{{ cookiecutter.colors.color13 }}"
|
||||
cyan: "{{ cookiecutter.colors.color14 }}"
|
||||
white: "{{ cookiecutter.colors.color15 }}"
|
||||
|
||||
|
||||
scrolling:
|
||||
# Maximum number of lines in the scrollback buffer.
|
||||
# Specifying '0' will disable scrolling.
|
||||
history: 10000
|
||||
|
||||
# Number of lines the viewport will move for every line scrolled when
|
||||
# scroll back is enabled (history > 0).
|
||||
multiplier: 3
|
||||
|
||||
|
||||
# Font configuration (changes require restart)
|
||||
font:
|
||||
normal:
|
||||
family: monospace
|
||||
family: {{ cookiecutter.font.mono.name }}
|
||||
|
||||
# Point size
|
||||
size: 13.0
|
||||
|
||||
# Offset is the extra space around each character. `offset.y` can be thought of
|
||||
# as modifying the line spacing, and `offset.x` as modifying the letter spacing.
|
||||
offset:
|
||||
x: 0
|
||||
y: 0
|
||||
|
||||
# Glyph offset determines the locations of the glyphs within their cells with
|
||||
# the default being at the bottom. Increasing `x` moves the glyph to the right,
|
||||
# increasing `y` moves the glyph upwards.
|
||||
glyph_offset:
|
||||
x: 0
|
||||
y: 0
|
||||
|
||||
# Thin stroke font rendering (macOS only)
|
||||
#
|
||||
# Thin strokes are suitable for retina displays, but for non-retina screens
|
||||
# it is recommended to set `use_thin_strokes` to `false`
|
||||
#
|
||||
# macOS >= 10.14.x:
|
||||
#
|
||||
# If the font quality on non-retina display looks bad then set
|
||||
# `use_thin_strokes` to `true` and enable font smoothing by running the
|
||||
# following command:
|
||||
# `defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO`
|
||||
#
|
||||
# This is a global setting and will require a log out or restart to take
|
||||
# effect.
|
||||
use_thin_strokes: true
|
||||
|
||||
# If `true`, bold text is drawn using the bright color variants.
|
||||
draw_bold_text_with_bright_colors: true
|
||||
|
||||
# Visual Bell
|
||||
#
|
||||
# Any time the BEL code is received, Alacritty "rings" the visual bell. Once
|
||||
# rung, the terminal background will be set to white and transition back to the
|
||||
# default background color. You can control the rate of this transition by
|
||||
# setting the `duration` property (represented in milliseconds). You can also
|
||||
# configure the transition function by setting the `animation` property.
|
||||
#
|
||||
# Values for `animation`:
|
||||
# - Ease
|
||||
# - EaseOut
|
||||
# - EaseOutSine
|
||||
# - EaseOutQuad
|
||||
# - EaseOutCubic
|
||||
# - EaseOutQuart
|
||||
# - EaseOutQuint
|
||||
# - EaseOutExpo
|
||||
# - EaseOutCirc
|
||||
# - Linear
|
||||
#
|
||||
# Specifying a `duration` of `0` will disable the visual bell.
|
||||
bell:
|
||||
animation: EaseOutExpo
|
||||
duration: 0
|
||||
color: '0xffffff'
|
||||
|
||||
# Background opacity
|
||||
#
|
||||
# Window opacity as a floating point number from `0.0` to `1.0`.
|
||||
# The value `0.0` is completely transparent and `1.0` is opaque.
|
||||
background_opacity: 1
|
||||
|
||||
# Mouse bindings
|
||||
#
|
||||
# Available fields:
|
||||
# - mouse
|
||||
# - action
|
||||
# - mods (optional)
|
||||
#
|
||||
# Values for `mouse`:
|
||||
# - Middle
|
||||
# - Left
|
||||
# - Right
|
||||
# - Numeric identifier such as `5`
|
||||
#
|
||||
# All available `mods` and `action` values are documented in the key binding
|
||||
# section.
|
||||
mouse_bindings:
|
||||
- { mouse: Middle, action: PasteSelection }
|
||||
|
||||
mouse:
|
||||
# Click settings
|
||||
#
|
||||
# The `double_click` and `triple_click` settings control the time
|
||||
# alacritty should wait for accepting multiple clicks as one double
|
||||
# or triple click.
|
||||
double_click: { threshold: 300 }
|
||||
triple_click: { threshold: 300 }
|
||||
|
||||
# If this is `true`, the cursor is temporarily hidden when typing.
|
||||
hide_when_typing: false
|
||||
|
||||
url:
|
||||
modifiers: None
|
||||
|
||||
|
||||
|
||||
selection:
|
||||
semantic_escape_chars: ",│`|:\"' ()[]{}<>"
|
||||
|
||||
# When set to `true`, selected text will be copied to the primary clipboard.
|
||||
save_to_clipboard: false
|
||||
|
||||
|
||||
cursor:
|
||||
# Cursor style
|
||||
#
|
||||
# Values for `style`:
|
||||
# - ▇ Block
|
||||
# - _ Underline
|
||||
# - | Beam
|
||||
style: Block
|
||||
|
||||
# If this is `true`, the cursor will be rendered as a hollow box when the
|
||||
# window is not focused.
|
||||
unfocused_hollow: true
|
||||
|
||||
|
||||
# Live config reload (changes require restart)
|
||||
live_config_reload: true
|
||||
|
||||
|
||||
# Windows 10 ConPTY backend (Windows only)
|
||||
#
|
||||
# This will enable better color support and may resolve other issues,
|
||||
# however this API and its implementation is still young and so is
|
||||
# disabled by default, as stability may not be as good as the winpty
|
||||
# backend.
|
||||
#
|
||||
# Alacritty will fall back to the WinPTY automatically if the ConPTY
|
||||
# backend cannot be initialized.
|
||||
enable_experimental_conpty_backend: false
|
||||
|
||||
|
||||
# Send ESC (\x1b) before characters when alt is pressed.
|
||||
alt_send_esc: true
|
||||
|
||||
|
||||
debug:
|
||||
# Display the time it takes to redraw each frame.
|
||||
render_timer: false
|
||||
|
||||
# Keep the log file after quitting Alacritty.
|
||||
persistent_logging: false
|
||||
|
||||
# Log level
|
||||
#
|
||||
# Values for `log_level`:
|
||||
# - None
|
||||
# - Error
|
||||
# - Warn
|
||||
# - Info
|
||||
# - Debug
|
||||
# - Trace
|
||||
log_level: Warn
|
||||
|
||||
# Print all received window events.
|
||||
print_events: false
|
||||
|
||||
# Record all characters and escape sequences as test data.
|
||||
ref_test: false
|
||||
|
||||
|
||||
# Key bindings
|
||||
#
|
||||
# Key bindings are specified as a list of objects. Each binding will specify a
|
||||
# key and modifiers required to trigger it, terminal modes where the binding is
|
||||
# applicable, and what should be done when the key binding fires. It can either
|
||||
# send a byte sequence to the running application (`chars`), execute a
|
||||
# predefined action (`action`) or fork and execute a specified command plus
|
||||
# arguments (`command`).
|
||||
#
|
||||
# Bindings are always filled by default, but will be replaced when a new binding
|
||||
# with the same triggers is defined. To unset a default binding, it can be
|
||||
# mapped to the `None` action.
|
||||
#
|
||||
# Example:
|
||||
# `- { key: V, mods: Control|Shift, action: Paste }`
|
||||
#
|
||||
# Available fields:
|
||||
# - key
|
||||
# - mods (optional)
|
||||
# - chars | action | command (exactly one required)
|
||||
# - mode (optional)
|
||||
#
|
||||
# Values for `key`:
|
||||
# - `A` -> `Z`
|
||||
# - `F1` -> `F12`
|
||||
# - `Key1` -> `Key0`
|
||||
#
|
||||
# A full list with available key codes can be found here:
|
||||
# https://docs.rs/glutin/*/glutin/enum.VirtualKeyCode.html#variants
|
||||
#
|
||||
# Instead of using the name of the keys, the `key` field also supports using
|
||||
# the scancode of the desired key. Scancodes have to be specified as a
|
||||
# decimal number.
|
||||
# This command will allow you to display the hex scancodes for certain keys:
|
||||
# `showkey --scancodes`
|
||||
#
|
||||
# Values for `mods`:
|
||||
# - Command
|
||||
# - Control
|
||||
# - Option
|
||||
# - Super
|
||||
# - Shift
|
||||
# - Alt
|
||||
#
|
||||
# Multiple `mods` can be combined using `|` like this: `mods: Control|Shift`.
|
||||
# Whitespace and capitalization is relevant and must match the example.
|
||||
#
|
||||
# Values for `chars`:
|
||||
# The `chars` field writes the specified string to the terminal. This makes
|
||||
# it possible to pass escape sequences.
|
||||
# To find escape codes for bindings like `PageUp` ("\x1b[5~"), you can run
|
||||
# the command `showkey -a` outside of tmux.
|
||||
# Note that applications use terminfo to map escape sequences back to
|
||||
# keys. It is therefore required to update the terminfo when
|
||||
# changing an escape sequence.
|
||||
#
|
||||
# Values for `action`:
|
||||
# - Paste
|
||||
# - PasteSelection
|
||||
# - Copy
|
||||
# - IncreaseFontSize
|
||||
# - DecreaseFontSize
|
||||
# - ResetFontSize
|
||||
# - ScrollPageUp
|
||||
# - ScrollPageDown
|
||||
# - ScrollLineUp
|
||||
# - ScrollLineDown
|
||||
# - ScrollToTop
|
||||
# - ScrollToBottom
|
||||
# - ClearHistory
|
||||
# - Hide
|
||||
# - Quit
|
||||
# - ClearLogNotice
|
||||
# - SpawnNewInstance
|
||||
# - ToggleFullscreen
|
||||
# - None
|
||||
#
|
||||
# Values for `action` (macOS only):
|
||||
# - ToggleSimpleFullscreen: Enters fullscreen without occupying another space
|
||||
#
|
||||
# Values for `command`:
|
||||
# The `command` field must be a map containing a `program` string and
|
||||
# an `args` array of command line parameter strings.
|
||||
#
|
||||
# Example:
|
||||
# `command: { program: "alacritty", args: ["-e", "vttest"] }`
|
||||
#
|
||||
# Values for `mode`:
|
||||
# - ~AppCursor
|
||||
# - AppCursor
|
||||
# - ~AppKeypad
|
||||
# - AppKeypad
|
||||
key_bindings:
|
||||
- { key: Paste, action: Paste }
|
||||
- { key: Copy, action: Copy }
|
||||
- { key: L, mods: Control, action: ClearLogNotice }
|
||||
- { key: L, mods: Control, chars: "\x0c" }
|
||||
- { key: Home, mods: Alt, chars: "\x1b[1;3H" }
|
||||
- { key: Home, chars: "\x1bOH", mode: AppCursor }
|
||||
- { key: Home, chars: "\x1b[H", mode: ~AppCursor }
|
||||
- { key: End, mods: Alt, chars: "\x1b[1;3F" }
|
||||
- { key: End, chars: "\x1bOF", mode: AppCursor }
|
||||
- { key: End, chars: "\x1b[F", mode: ~AppCursor }
|
||||
- { key: PageUp, mods: Shift, action: ScrollPageUp, mode: ~Alt }
|
||||
- { key: PageUp, mods: Shift, chars: "\x1b[5;2~", mode: Alt }
|
||||
- { key: PageUp, mods: Control, chars: "\x1b[5;5~" }
|
||||
- { key: PageUp, mods: Alt, chars: "\x1b[5;3~" }
|
||||
- { key: PageUp, chars: "\x1b[5~" }
|
||||
- { key: PageDown, mods: Shift, action: ScrollPageDown, mode: ~Alt }
|
||||
- { key: PageDown, mods: Shift, chars: "\x1b[6;2~", mode: Alt }
|
||||
- { key: PageDown, mods: Control, chars: "\x1b[6;5~" }
|
||||
- { key: PageDown, mods: Alt, chars: "\x1b[6;3~" }
|
||||
- { key: PageDown, chars: "\x1b[6~" }
|
||||
- { key: Tab, mods: Shift, chars: "\x1b[Z" }
|
||||
- { key: Back, chars: "\x7f" }
|
||||
- { key: Back, mods: Alt, chars: "\x1b\x7f" }
|
||||
- { key: Insert, chars: "\x1b[2~" }
|
||||
- { key: Delete, chars: "\x1b[3~" }
|
||||
- { key: Left, mods: Shift, chars: "\x1b[1;2D" }
|
||||
- { key: Left, mods: Control, chars: "\x1b[1;5D" }
|
||||
- { key: Left, mods: Alt, chars: "\x1b[1;3D" }
|
||||
- { key: Left, chars: "\x1b[D", mode: ~AppCursor }
|
||||
- { key: Left, chars: "\x1bOD", mode: AppCursor }
|
||||
- { key: Right, mods: Shift, chars: "\x1b[1;2C" }
|
||||
- { key: Right, mods: Control, chars: "\x1b[1;5C" }
|
||||
- { key: Right, mods: Alt, chars: "\x1b[1;3C" }
|
||||
- { key: Right, chars: "\x1b[C", mode: ~AppCursor }
|
||||
- { key: Right, chars: "\x1bOC", mode: AppCursor }
|
||||
- { key: Up, mods: Shift, chars: "\x1b[1;2A" }
|
||||
- { key: Up, mods: Control, chars: "\x1b[1;5A" }
|
||||
- { key: Up, mods: Alt, chars: "\x1b[1;3A" }
|
||||
- { key: Up, chars: "\x1b[A", mode: ~AppCursor }
|
||||
- { key: Up, chars: "\x1bOA", mode: AppCursor }
|
||||
- { key: Down, mods: Shift, chars: "\x1b[1;2B" }
|
||||
- { key: Down, mods: Control, chars: "\x1b[1;5B" }
|
||||
- { key: Down, mods: Alt, chars: "\x1b[1;3B" }
|
||||
- { key: Down, chars: "\x1b[B", mode: ~AppCursor }
|
||||
- { key: Down, chars: "\x1bOB", mode: AppCursor }
|
||||
- { key: F1, chars: "\x1bOP" }
|
||||
- { key: F2, chars: "\x1bOQ" }
|
||||
- { key: F3, chars: "\x1bOR" }
|
||||
- { key: F4, chars: "\x1bOS" }
|
||||
- { key: F5, chars: "\x1b[15~" }
|
||||
- { key: F6, chars: "\x1b[17~" }
|
||||
- { key: F7, chars: "\x1b[18~" }
|
||||
- { key: F8, chars: "\x1b[19~" }
|
||||
- { key: F9, chars: "\x1b[20~" }
|
||||
- { key: F10, chars: "\x1b[21~" }
|
||||
- { key: F11, chars: "\x1b[23~" }
|
||||
- { key: F12, chars: "\x1b[24~" }
|
||||
- { key: F1, mods: Shift, chars: "\x1b[1;2P" }
|
||||
- { key: F2, mods: Shift, chars: "\x1b[1;2Q" }
|
||||
- { key: F3, mods: Shift, chars: "\x1b[1;2R" }
|
||||
- { key: F4, mods: Shift, chars: "\x1b[1;2S" }
|
||||
- { key: F5, mods: Shift, chars: "\x1b[15;2~" }
|
||||
- { key: F6, mods: Shift, chars: "\x1b[17;2~" }
|
||||
- { key: F7, mods: Shift, chars: "\x1b[18;2~" }
|
||||
- { key: F8, mods: Shift, chars: "\x1b[19;2~" }
|
||||
- { key: F9, mods: Shift, chars: "\x1b[20;2~" }
|
||||
- { key: F10, mods: Shift, chars: "\x1b[21;2~" }
|
||||
- { key: F11, mods: Shift, chars: "\x1b[23;2~" }
|
||||
- { key: F12, mods: Shift, chars: "\x1b[24;2~" }
|
||||
- { key: F1, mods: Control, chars: "\x1b[1;5P" }
|
||||
- { key: F2, mods: Control, chars: "\x1b[1;5Q" }
|
||||
- { key: F3, mods: Control, chars: "\x1b[1;5R" }
|
||||
- { key: F4, mods: Control, chars: "\x1b[1;5S" }
|
||||
- { key: F5, mods: Control, chars: "\x1b[15;5~" }
|
||||
- { key: F6, mods: Control, chars: "\x1b[17;5~" }
|
||||
- { key: F7, mods: Control, chars: "\x1b[18;5~" }
|
||||
- { key: F8, mods: Control, chars: "\x1b[19;5~" }
|
||||
- { key: F9, mods: Control, chars: "\x1b[20;5~" }
|
||||
- { key: F10, mods: Control, chars: "\x1b[21;5~" }
|
||||
- { key: F11, mods: Control, chars: "\x1b[23;5~" }
|
||||
- { key: F12, mods: Control, chars: "\x1b[24;5~" }
|
||||
- { key: F1, mods: Alt, chars: "\x1b[1;6P" }
|
||||
- { key: F2, mods: Alt, chars: "\x1b[1;6Q" }
|
||||
- { key: F3, mods: Alt, chars: "\x1b[1;6R" }
|
||||
- { key: F4, mods: Alt, chars: "\x1b[1;6S" }
|
||||
- { key: F5, mods: Alt, chars: "\x1b[15;6~" }
|
||||
- { key: F6, mods: Alt, chars: "\x1b[17;6~" }
|
||||
- { key: F7, mods: Alt, chars: "\x1b[18;6~" }
|
||||
- { key: F8, mods: Alt, chars: "\x1b[19;6~" }
|
||||
- { key: F9, mods: Alt, chars: "\x1b[20;6~" }
|
||||
- { key: F10, mods: Alt, chars: "\x1b[21;6~" }
|
||||
- { key: F11, mods: Alt, chars: "\x1b[23;6~" }
|
||||
- { key: F12, mods: Alt, chars: "\x1b[24;6~" }
|
||||
- { key: F1, mods: Super, chars: "\x1b[1;3P" }
|
||||
- { key: F2, mods: Super, chars: "\x1b[1;3Q" }
|
||||
- { key: F3, mods: Super, chars: "\x1b[1;3R" }
|
||||
- { key: F4, mods: Super, chars: "\x1b[1;3S" }
|
||||
- { key: F5, mods: Super, chars: "\x1b[15;3~" }
|
||||
- { key: F6, mods: Super, chars: "\x1b[17;3~" }
|
||||
- { key: F7, mods: Super, chars: "\x1b[18;3~" }
|
||||
- { key: F8, mods: Super, chars: "\x1b[19;3~" }
|
||||
- { key: F9, mods: Super, chars: "\x1b[20;3~" }
|
||||
- { key: F10, mods: Super, chars: "\x1b[21;3~" }
|
||||
- { key: F11, mods: Super, chars: "\x1b[23;3~" }
|
||||
- { key: F12, mods: Super, chars: "\x1b[24;3~" }
|
||||
- { key: NumpadEnter, chars: "\n" }
|
@ -0,0 +1,28 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Open all of the programs needed.
|
||||
pkill polybar || polybar "fds-bar" &
|
||||
pkill feh || feh --bg-fill $HOME/.background-image
|
||||
|
||||
# Removing all rules at startup to prevent duplicating rules.
|
||||
bspc rule -r "*"
|
||||
|
||||
# Set up the desktops (workspaces) for the monitor
|
||||
bspc monitor -d I II III IV V
|
||||
|
||||
bspc config border_width 2
|
||||
bspc config window_gap 9
|
||||
|
||||
bspc config split_ratio 0.50
|
||||
bspc config borderless_monocle true
|
||||
bspc config gapless_monocle true
|
||||
bspc config focused_border_color "{{ cookiecutter.colors.color6 }}"
|
||||
bspc config focus_follows_pointer true
|
||||
|
||||
# Set the default cursor to pointer
|
||||
xsetroot -cursor_name left_ptr
|
||||
|
||||
# Rules
|
||||
bspc rule -a code-oss desktop=^2
|
||||
bspc rule -a firefox desktop=^1
|
||||
|
@ -0,0 +1,432 @@
|
||||
[global]
|
||||
### Display ###
|
||||
|
||||
# Which monitor should the notifications be displayed on.
|
||||
monitor = 0
|
||||
|
||||
# Display notification on focused monitor. Possible modes are:
|
||||
# mouse: follow mouse pointer
|
||||
# keyboard: follow window with keyboard focus
|
||||
# none: don't follow anything
|
||||
#
|
||||
# "keyboard" needs a window manager that exports the
|
||||
# _NET_ACTIVE_WINDOW property.
|
||||
# This should be the case for almost all modern window managers.
|
||||
#
|
||||
# If this option is set to mouse or keyboard, the monitor option
|
||||
# will be ignored.
|
||||
follow = mouse
|
||||
|
||||
# The geometry of the window:
|
||||
# [{width}]x{height}[+/-{x}+/-{y}]
|
||||
# The geometry of the message window.
|
||||
# The height is measured in number of notifications everything else
|
||||
# in pixels. If the width is omitted but the height is given
|
||||
# ("-geometry x2"), the message window expands over the whole screen
|
||||
# (dmenu-like). If width is 0, the window expands to the longest
|
||||
# message displayed. A positive x is measured from the left, a
|
||||
# negative from the right side of the screen. Y is measured from
|
||||
# the top and down respectively.
|
||||
# The width can be negative. In this case the actual width is the
|
||||
# screen width minus the width defined in within the geometry option.
|
||||
geometry = "350x50-10+50"
|
||||
|
||||
# Show how many messages are currently hidden (because of geometry).
|
||||
indicate_hidden = yes
|
||||
|
||||
# Shrink window if it's smaller than the width. Will be ignored if
|
||||
# width is 0.
|
||||
shrink = no
|
||||
|
||||
# The transparency of the window. Range: [0; 100].
|
||||
# This option will only work if a compositing window manager is
|
||||
# present (e.g. xcompmgr, compiz, etc.).
|
||||
transparency = 10
|
||||
|
||||
# The height of the entire notification. If the height is smaller
|
||||
# than the font height and padding combined, it will be raised
|
||||
# to the font height and padding.
|
||||
notification_height = 0
|
||||
|
||||
# Draw a line of "separator_height" pixel height between two
|
||||
# notifications.
|
||||
# Set to 0 to disable.
|
||||
separator_height = 2
|
||||
|
||||
# Padding between text and separator.
|
||||
padding = 8
|
||||
|
||||
# Horizontal padding.
|
||||
horizontal_padding = 8
|
||||
|
||||
# Defines width in pixels of frame around the notification window.
|
||||
# Set to 0 to disable.
|
||||
frame_width = 2
|
||||
|
||||
# Defines color of the frame around the notification window.
|
||||
frame_color = "{{ cookiecutter.special.foreground }}"
|
||||
|
||||
# Define a color for the separator.
|
||||
# possible values are:
|
||||
# * auto: dunst tries to find a color fitting to the background;
|
||||
# * foreground: use the same color as the foreground;
|
||||
# * frame: use the same color as the frame;
|
||||
# * anything else will be interpreted as a X color.
|
||||
separator_color = frame
|
||||
|
||||
# Sort messages by urgency.
|
||||
sort = yes
|
||||
|
||||
# Don't remove messages, if the user is idle (no mouse or keyboard input)
|
||||
# for longer than idle_threshold seconds.
|
||||
# Set to 0 to disable.
|
||||
# A client can set the 'transient' hint to bypass this. See the rules
|
||||
# section for how to disable this if necessary
|
||||
idle_threshold = 120
|
||||
|
||||
|
||||
|
||||
### Text ###
|
||||
font = {{ cookiecutter.font.mono.name }} {{ cookiecutter.font.mono.baseSize }}
|
||||
|
||||
# The spacing between lines. If the height is smaller than the
|
||||
# font height, it will get raised to the font height.
|
||||
line_height = 0
|
||||
|
||||
# Possible values are:
|
||||
# full: Allow a small subset of html markup in notifications:
|
||||
# <b>bold</b>
|
||||
# <i>italic</i>
|
||||
# <s>strikethrough</s>
|
||||
# <u>underline</u>
|
||||
#
|
||||
# For a complete reference see
|
||||
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
|
||||
#
|
||||
# strip: This setting is provided for compatibility with some broken
|
||||
# clients that send markup even though it's not enabled on the
|
||||
# server. Dunst will try to strip the markup but the parsing is
|
||||
# simplistic so using this option outside of matching rules for
|
||||
# specific applications *IS GREATLY DISCOURAGED*.
|
||||
#
|
||||
# no: Disable markup parsing, incoming notifications will be treated as
|
||||
# plain text. Dunst will not advertise that it has the body-markup
|
||||
# capability if this is set as a global setting.
|
||||
#
|
||||
# It's important to note that markup inside the format option will be parsed
|
||||
# regardless of what this is set to.
|
||||
markup = full
|
||||
|
||||
# The format of the message. Possible variables are:
|
||||
# %a appname
|
||||
# %s summary
|
||||
# %b body
|
||||
# %i iconname (including its path)
|
||||
# %I iconname (without its path)
|
||||
# %p progress value if set ([ 0%] to [100%]) or nothing
|
||||
# %n progress value if set without any extra characters
|
||||
# %% Literal %
|
||||
# Markup is allowed
|
||||
format = "<b>%s</b>\n%b"
|
||||
|
||||
# Alignment of message text.
|
||||
# Possible values are "left", "center" and "right".
|
||||
alignment = left
|
||||
|
||||
# Show age of message if message is older than show_age_threshold
|
||||
# seconds.
|
||||
# Set to -1 to disable.
|
||||
show_age_threshold = 60
|
||||
|
||||
# Split notifications into multiple lines if they don't fit into
|
||||
# geometry.
|
||||
word_wrap = yes
|
||||
|
||||
# When word_wrap is set to no, specify where to make an ellipsis in long lines.
|
||||
# Possible values are "start", "middle" and "end".
|
||||
ellipsize = middle
|
||||
|
||||
# Ignore newlines '\n' in notifications.
|
||||
ignore_newline = no
|
||||
|
||||
# Stack together notifications with the same content
|
||||
stack_duplicates = true
|
||||
|
||||
# Hide the count of stacked notifications with the same content
|
||||
hide_duplicate_count = false
|
||||
|
||||
# Display indicators for URLs (U) and actions (A).
|
||||
show_indicators = yes
|
||||
|
||||
|
||||
|
||||
### Icons ###
|
||||
# Align icons left/right/off
|
||||
icon_position = left
|
||||
|
||||
# Scale larger icons down to this size, set to 0 to disable
|
||||
max_icon_size = 32
|
||||
|
||||
# Paths to default icons.
|
||||
icon_path = /usr/share/icons/Adwaita/16x16/status/:/usr/share/icons/Adwaita/16x16/devices/
|
||||
|
||||
|
||||
|
||||
### History ###
|
||||
|
||||
# Should a notification popped up from history be sticky or timeout
|
||||
# as if it would normally do.
|
||||
sticky_history = yes
|
||||
|
||||
# Maximum amount of notifications kept in history
|
||||
history_length = 20
|
||||
|
||||
### Misc/Advanced ###
|
||||
|
||||
# dmenu path.
|
||||
dmenu = /usr/bin/dmenu -p dunst:
|
||||
|
||||
# Browser for opening urls in context menu.
|
||||
browser = /usr/bin/firefox -new-tab
|
||||
|
||||
# Always run rule-defined scripts, even if the notification is suppressed
|
||||
always_run_script = true
|
||||
|
||||
# Define the title of the windows spawned by dunst
|
||||
title = Dunst
|
||||
|
||||
# Define the class of the windows spawned by dunst
|
||||
class = Dunst
|
||||
|
||||
# Print a notification on startup.
|
||||
# This is mainly for error detection, since dbus (re-)starts dunst
|
||||
# automatically after a crash.
|
||||
startup_notification = false
|
||||
|
||||
# Manage dunst's desire for talking
|
||||
# Can be one of the following values:
|
||||
# crit: Critical features. Dunst aborts
|
||||
# warn: Only non-fatal warnings
|
||||
# mesg: Important Messages
|
||||
# info: all unimportant stuff
|
||||
# debug: all less than unimportant stuff
|
||||
verbosity = mesg
|
||||
|
||||
# Define the corner radius of the notification window
|
||||
# in pixel size. If the radius is 0, you have no rounded
|
||||
# corners.
|
||||
# The radius will be automatically lowered if it exceeds half of the
|
||||
# notification height to avoid clipping text and/or icons.
|
||||
corner_radius = 0
|
||||
|
||||
|
||||
|
||||
### Legacy
|
||||
|
||||
# Use the Xinerama extension instead of RandR for multi-monitor support.
|
||||
# This setting is provided for compatibility with older nVidia drivers that
|
||||
# do not support RandR and using it on systems that support RandR is highly
|
||||
# discouraged.
|
||||
#
|
||||
# By enabling this setting dunst will not be able to detect when a monitor
|
||||
# is connected or disconnected which might break follow mode if the screen
|
||||
# layout changes.
|
||||
force_xinerama = false
|
||||
|
||||
### mouse
|
||||
|
||||
# Defines action of mouse event
|
||||
# Possible values are:
|
||||
# * none: Don't do anything.
|
||||
# * do_action: If the notification has exactly one action, or one is marked as default,
|
||||
# invoke it. If there are multiple and no default, open the context menu.
|
||||
# * close_current: Close current notification.
|
||||
# * close_all: Close all notifications.
|
||||
mouse_left_click = close_current
|
||||
mouse_middle_click = do_action
|
||||
mouse_right_click = close_all
|
||||
|
||||
|
||||
|
||||
# Experimental features that may or may not work correctly. Do not expect them
|
||||
# to have a consistent behaviour across releases.
|
||||
[experimental]
|
||||
# Calculate the dpi to use on a per-monitor basis.
|
||||
# If this setting is enabled the Xft.dpi value will be ignored and instead
|
||||
# dunst will attempt to calculate an appropriate dpi value for each monitor
|
||||
# using the resolution and physical size. This might be useful in setups
|
||||
# where there are multiple screens with very different dpi values.
|
||||
per_monitor_dpi = false
|
||||
|
||||
|
||||
|
||||
[shortcuts]
|
||||
# Shortcuts are specified as [modifier+][modifier+]...key
|
||||
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
|
||||
# "mod3" and "mod4" (windows-key).
|
||||
# Xev might be helpful to find names for keys.
|
||||
|
||||
# Close notification.
|
||||
close = ctrl+space
|
||||
|
||||
# Close all notifications.
|
||||
close_all = ctrl+shift+space
|
||||
|
||||
# Redisplay last message(s).
|
||||
# On the US keyboard layout "grave" is normally above TAB and left
|
||||
# of "1". Make sure this key actually exists on your keyboard layout,
|
||||
# e.g. check output of 'xmodmap -pke'
|
||||
history = ctrl+grave
|
||||
|
||||
# Context menu.
|
||||
context = ctrl+shift+period
|
||||
|
||||
|
||||
|
||||
[urgency_low]
|
||||
# IMPORTANT: colors have to be defined in quotation marks.
|
||||
# Otherwise the "#" and following would be interpreted as a comment.
|
||||
background = "{{ cookiecutter.special.background }}"
|
||||
foreground = "{{ cookiecutter.colors.color15 }}"
|
||||
timeout = 10
|
||||
# Icon for notifications with low urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
|
||||
|
||||
[urgency_normal]
|
||||
background = "{{ cookiecutter.special.background }}"
|
||||
foreground = "{{ cookiecutter.special.foreground }}"
|
||||
timeout = 10
|
||||
# Icon for notifications with normal urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
|
||||
|
||||
[urgency_critical]
|
||||
background = "{{ cookiecutter.special.background }}"
|
||||
foreground = "{{ cookiecutter.colors.color2 }}"
|
||||
frame_color = "{{ cookiecutter.colors.color2 }}"
|
||||
timeout = 0
|
||||
# Icon for notifications with critical urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
|
||||
|
||||
# Every section that isn't one of the above is interpreted as a rules to
|
||||
# override settings for certain messages.
|
||||
#
|
||||
# Messages can be matched by
|
||||
# appname (discouraged, see desktop_entry)
|
||||
# body
|
||||
# category
|
||||
# desktop_entry
|
||||
# icon
|
||||
# match_transient
|
||||
# msg_urgency
|
||||
# stack_tag
|
||||
# summary
|
||||
#
|
||||
# and you can override the
|
||||
# background
|
||||
# foreground
|
||||
# format
|
||||
# frame_color
|
||||
# fullscreen
|
||||
# new_icon
|
||||
# set_stack_tag
|
||||
# set_transient
|
||||
# timeout
|
||||
# urgency
|
||||
#
|
||||
# Shell-like globbing will get expanded.
|
||||
#
|
||||
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
|
||||
# GLib based applications export their desktop-entry name. In comparison to the appname,
|
||||
# the desktop-entry won't get localized.
|
||||
#
|
||||
# SCRIPTING
|
||||
# You can specify a script that gets run when the rule matches by
|
||||
# setting the "script" option.
|
||||
# The script will be called as follows:
|
||||
# script appname summary body icon urgency
|
||||
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
|
||||
#
|
||||
# NOTE: if you don't want a notification to be displayed, set the format
|
||||
# to "".
|
||||
# NOTE: It might be helpful to run dunst -print in a terminal in order
|
||||
# to find fitting options for rules.
|
||||
|
||||
# Disable the transient hint so that idle_threshold cannot be bypassed from the
|
||||
# client
|
||||
#[transient_disable]
|
||||
# match_transient = yes
|
||||
# set_transient = no
|
||||
#
|
||||
# Make the handling of transient notifications more strict by making them not
|
||||
# be placed in history.
|
||||
#[transient_history_ignore]
|
||||
# match_transient = yes
|
||||
# history_ignore = yes
|
||||
|
||||
# fullscreen values
|
||||
# show: show the notifications, regardless if there is a fullscreen window opened
|
||||
# delay: displays the new notification, if there is no fullscreen window active
|
||||
# If the notification is already drawn, it won't get undrawn.
|
||||
# pushback: same as delay, but when switching into fullscreen, the notification will get
|
||||
# withdrawn from screen again and will get delayed like a new notification
|
||||
#[fullscreen_delay_everything]
|
||||
# fullscreen = delay
|
||||
#[fullscreen_show_critical]
|
||||
# msg_urgency = critical
|
||||
# fullscreen = show
|
||||
|
||||
#[espeak]
|
||||
# summary = "*"
|
||||
# script = dunst_espeak.sh
|
||||
|
||||
#[script-test]
|
||||
# summary = "*script*"
|
||||
# script = dunst_test.sh
|
||||
|
||||
#[ignore]
|
||||
# # This notification will not be displayed
|
||||
# summary = "foobar"
|
||||
# format = ""
|
||||
|
||||
#[history-ignore]
|
||||
# # This notification will not be saved in history
|
||||
# summary = "foobar"
|
||||
# history_ignore = yes
|
||||
|
||||
#[skip-display]
|
||||
# # This notification will not be displayed, but will be included in the history
|
||||
# summary = "foobar"
|
||||
# skip_display = yes
|
||||
|
||||
#[signed_on]
|
||||
# appname = Pidgin
|
||||
# summary = "*signed on*"
|
||||
# urgency = low
|
||||
#
|
||||
#[signed_off]
|
||||
# appname = Pidgin
|
||||
# summary = *signed off*
|
||||
# urgency = low
|
||||
#
|
||||
#[says]
|
||||
# appname = Pidgin
|
||||
# summary = *says*
|
||||
# urgency = critical
|
||||
#
|
||||
#[twitter]
|
||||
# appname = Pidgin
|
||||
# summary = *twitter.com*
|
||||
# urgency = normal
|
||||
#
|
||||
#[stack-volumes]
|
||||
# appname = "some_volume_notifiers"
|
||||
# set_stack_tag = "volume"
|
||||
#
|
||||
|
||||
# vim: ft=cfg
|
@ -0,0 +1,188 @@
|
||||
; Main color format is in ARGB.
|
||||
; However, formats in RGB is fine.
|
||||
; This is where all of the colors should be placed for those who are lazy to scroll down (like me).
|
||||
[colors]
|
||||
background = "{{ cookiecutter.special.background }}"
|
||||
background-light = "{{ cookiecutter.colors.color8 }}"
|
||||
foreground = "{{ cookiecutter.special.foreground }}"
|
||||
foreground-light = "{{ cookiecutter.colors.color15 }}"
|
||||
accent = "{{ cookiecutter.colors.color6 }}"
|
||||
|
||||
|
||||
; The common style between bars.
|
||||
[bar-common-style]
|
||||
width = 100%
|
||||
height = 32
|
||||
wm-restack = bspwm
|
||||
fixed-center = false
|
||||
|
||||
line-size = 3
|
||||
line-color = #f00
|
||||
|
||||
padding = 1
|
||||
|
||||
module-margin = 1
|
||||
module-padding = 1
|
||||
|
||||
font-0 = "Iosevka;2"
|
||||
font-1 = "Fira Code;2"
|
||||
|
||||
; Our fallback fonts are mostly used as icon fonts.
|
||||
; For future references, the version of Font Awesome used here is at v5.13.0.
|
||||
; I also installed the font myself that I downloaded from the official website (https://fontawesome.com/).
|
||||
font-2 = "Font Awesome 5 Free,Font Awesome 5 Free Solid:style=Solid;2"
|
||||
|
||||
; This creates the illusion as if the modules are in the center.
|
||||
__border-size = 5
|
||||
border-top-size = ${self.__border-size}
|
||||
border-top-color = ${colors.background}
|
||||
border-bottom-size = ${self.__border-size}
|
||||
border-bottom-color = ${colors.background}
|
||||
|
||||
tray-position = right
|
||||
tray-padding = 1
|
||||
cursor-click = pointer
|
||||
|
||||
|
||||
; Common style between modules.
|
||||
[module-common-style]
|
||||
label-padding = 1
|
||||
|
||||
|
||||
; The main bar.
|
||||
[bar/fds-bar]
|
||||
background = ${colors.background}
|
||||
foreground = ${colors.foreground}
|
||||
|
||||
inherit = bar-common-style
|
||||
enable-ipc = true
|
||||
|
||||
modules-left = bspwm
|
||||
modules-center = date
|
||||
modules-right = pulseaudio eth memory home-fs root-fs
|
||||
|
||||
|
||||
[module/home-fs]
|
||||
type = internal/fs
|
||||
mount-0 = /home
|
||||
format-margin = 0
|
||||
format-padding = 0
|
||||
label-margin = 0
|
||||
label-padding = 0
|
||||
|
||||
format-mounted-prefix = ""
|
||||
format-mounted-prefix-margin-right = 1
|
||||
format-unmounted-prefix = ""
|
||||
format-unmounted-prefix-margin-right = 1
|
||||
label-mounted = %free%
|
||||
label-unmounted = N/A
|
||||
|
||||
|
||||
[module/root-fs]
|
||||
type = internal/fs
|
||||
mount-0 = /
|
||||
format-mounted-prefix = ""
|
||||
format-mounted-prefix-margin-right = 1
|
||||
format-unmounted-prefix = ""
|
||||
format-unmounted-prefix-margin-right = 1
|
||||
label-mounted = %free%
|
||||
label-unmounted = N/A
|
||||
|
||||
|
||||
[module/bspwm]
|
||||
type = internal/bspwm
|
||||
wrapping-scroll = false
|
||||
pin-workspaces = true
|
||||
label-focused = %index%
|
||||
label-focused-background = ${colors.accent}
|
||||
label-focused-foreground = ${colors.background}
|
||||
label-focused-padding = 1
|
||||
|
||||
label-occupied = %index%
|
||||
label-occupied-padding = 1
|
||||
|
||||
label-urgent = %index%!
|
||||
label-urgent-background = ${colors.foreground}
|
||||
label-urgent-padding = 1
|
||||
|
||||
label-empty = %index%
|
||||
label-empty-foreground = ${colors.foreground-light}
|
||||
label-empty-padding = 1
|
||||
|
||||
|
||||
[module/memory]
|
||||
inherit = module-common-style
|
||||
type = internal/memory
|
||||
interval = 2
|
||||
format-prefix = ""
|
||||
label = %gb_used%
|
||||
|
||||
|
||||
[module/wlan]
|
||||
inherit = module-common-style
|
||||
type = internal/network
|
||||
interface = wlp0s18f2u4
|
||||
interval = 3.0
|
||||
|
||||
format-connected = <label-connected>
|
||||
format-connected-underline = #9f78e1
|
||||
format-prefix = "NET"
|
||||
label-connected = %essid%
|
||||
|
||||
format-disconnected = <label-disconnected>
|
||||
label-disconnected = disconnected
|
||||
|
||||
|
||||
[module/eth]
|
||||
type = internal/network
|
||||
interface = enp4s0
|
||||
interval = 3
|
||||
|
||||
format-connected-prefix = ""
|
||||
label-connected = "OK"
|
||||
label-connected-padding = 1
|
||||
|
||||
format-disconnected-prefix = ""
|
||||
label-disconnected-padding = 1
|
||||
label-disconnected = "N/A"
|
||||
|
||||
|
||||
[module/date]
|
||||
inherit = module-common-style
|
||||
type = internal/date
|
||||
interval = 5
|
||||
|
||||
; We've formatted the time string to alter between the time and the date instead.
|
||||
; Although, I feel it's a hacky workaround, it still is functional as a date module.
|
||||
date = "%A, %F"
|
||||
date-alt = "%B %d, %Y"
|
||||
time = %T
|
||||
time-alt = %F
|
||||
|
||||
format-prefix = ""
|
||||
label = %date% %time%
|
||||
|
||||
|
||||
[module/pulseaudio]
|
||||
inherit = module-common-style
|
||||
type = internal/pulseaudio
|
||||
|
||||
format-volume-prefix = ""
|
||||
format-volume = <label-volume>
|
||||
label-volume = %percentage%%
|
||||
label-volume-padding = 1
|
||||
|
||||
format-muted-prefix = ""
|
||||
label-muted = muted
|
||||
label-muted-padding = 1
|
||||
|
||||
|
||||
[settings]
|
||||
screenchange-reload = true
|
||||
|
||||
|
||||
[global/wm]
|
||||
margin = 1
|
||||
padding = 1
|
||||
|
||||
; vim:ft=dosini
|
@ -0,0 +1,9 @@
|
||||
configuration {
|
||||
display-drun: "Application";
|
||||
display-run: "Execute";
|
||||
display-window: "Window";
|
||||
display-ssh: "SSH";
|
||||
font: "{{ cookiecutter.font.mono.name }} {{ cookiecutter.font.mono.baseSize }}";
|
||||
show-icons: true;
|
||||
theme: "themes/fds-mini-sidebar";
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
/**
|
||||
* ROFI Color theme
|
||||
* User: Qball
|
||||
* Copyright: Dave Davenport
|
||||
* Modified by: Gabriel Arazas (foo-dogsquared)
|
||||
*/
|
||||
|
||||
* {
|
||||
/* The color swatch */
|
||||
/* Useful for quick editing of the colors */
|
||||
background: {{ cookiecutter.special.background }};
|
||||
foreground: {{ cookiecutter.special.foreground }};
|
||||
color0: {{ cookiecutter.colors.color0 }};
|
||||
color1: {{ cookiecutter.colors.color1 }};
|
||||
color2: {{ cookiecutter.colors.color2 }};
|
||||
color3: {{ cookiecutter.colors.color3 }};
|
||||
color4: {{ cookiecutter.colors.color4 }};
|
||||
color5: {{ cookiecutter.colors.color5 }};
|
||||
color6: {{ cookiecutter.colors.color6 }};
|
||||
color7: {{ cookiecutter.colors.color7 }};
|
||||
color8: {{ cookiecutter.colors.color8 }};
|
||||
color9: {{ cookiecutter.colors.color9 }};
|
||||
color10: {{ cookiecutter.colors.color10 }};
|
||||
color11: {{ cookiecutter.colors.color11 }};
|
||||
color12: {{ cookiecutter.colors.color12 }};
|
||||
color13: {{ cookiecutter.colors.color13 }};
|
||||
color14: {{ cookiecutter.colors.color14 }};
|
||||
color15: {{ cookiecutter.colors.color15 }};
|
||||
|
||||
background-color: @background;
|
||||
border-color: @foreground;
|
||||
text-color: @foreground;
|
||||
font: "{{ cookiecutter.font.mono.name }} {{ cookiecutter.font.mono.baseSize }}";
|
||||
}
|
||||
|
||||
window {
|
||||
anchor: north;
|
||||
location: north;
|
||||
width: 100%;
|
||||
padding: 7px;
|
||||
children: [ horibox ];
|
||||
}
|
||||
|
||||
horibox {
|
||||
orientation: horizontal;
|
||||
children: [ prompt, entry, listview ];
|
||||
}
|
||||
|
||||
listview {
|
||||
layout: horizontal;
|
||||
spacing: 5px;
|
||||
lines: 100;
|
||||
}
|
||||
|
||||
entry {
|
||||
expand: false;
|
||||
width: 10em;
|
||||
}
|
||||
|
||||
element {
|
||||
padding: 0px 2px;
|
||||
}
|
||||
|
||||
element.selected {
|
||||
background-color: @color6;
|
||||
}
|
@ -0,0 +1,93 @@
|
||||
* {
|
||||
/* The color configuration */
|
||||
/* Useful for quick editing in case for compiled templates */
|
||||
background: {{ cookiecutter.special.background }};
|
||||
foreground: {{ cookiecutter.special.foreground }};
|
||||
color0: {{ cookiecutter.colors.color0 }};
|
||||
color1: {{ cookiecutter.colors.color1 }};
|
||||
color2: {{ cookiecutter.colors.color2 }};
|
||||
color3: {{ cookiecutter.colors.color3 }};
|
||||
color4: {{ cookiecutter.colors.color4 }};
|
||||
color5: {{ cookiecutter.colors.color5 }};
|
||||
color6: {{ cookiecutter.colors.color6 }};
|
||||
color7: {{ cookiecutter.colors.color7 }};
|
||||
color8: {{ cookiecutter.colors.color8 }};
|
||||
color9: {{ cookiecutter.colors.color9 }};
|
||||
color10: {{ cookiecutter.colors.color10 }};
|
||||
color11: {{ cookiecutter.colors.color11 }};
|
||||
color12: {{ cookiecutter.colors.color12 }};
|
||||
color13: {{ cookiecutter.colors.color13 }};
|
||||
color14: {{ cookiecutter.colors.color14 }};
|
||||
color15: {{ cookiecutter.colors.color15 }};
|
||||
|
||||
/* Theme settings */
|
||||
highlight: bold italic;
|
||||
scrollbar: true;
|
||||
|
||||
/* Style */
|
||||
text-color: @foreground;
|
||||
background-color: @background;
|
||||
font: "Font Awesome 5 Free,Font Awesome 5 Free Solid:style=Solid 14";
|
||||
font: "{{ cookiecutter.font.mono.name }} {{ cookiecutter.font.mono.baseSize }}";
|
||||
}
|
||||
|
||||
window {
|
||||
background-color: transparent;
|
||||
|
||||
height: 65%;
|
||||
width: 45%;
|
||||
position: center;
|
||||
location: center;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
border: 2;
|
||||
border-color: @color6;
|
||||
children: [ inputbar, listview, mode-switcher ];
|
||||
}
|
||||
|
||||
inputbar,
|
||||
listview {
|
||||
background: @background;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
orientation: vertical;
|
||||
children: [ prompt, entry ];
|
||||
background-color: @color0;
|
||||
}
|
||||
|
||||
entry,
|
||||
prompt {
|
||||
background-color: @color0;
|
||||
}
|
||||
|
||||
listview {
|
||||
cyclic: true;
|
||||
}
|
||||
|
||||
element selected.normal {
|
||||
background-color: @color6;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
scrollbar {
|
||||
background-color: @color0;
|
||||
handle-color: @color6;
|
||||
handle-width: 10px;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
button,
|
||||
case-indicator,
|
||||
inputbar,
|
||||
element {
|
||||
padding: 5;
|
||||
}
|
||||
|
||||
button.selected {
|
||||
background-color: @color6;
|
||||
text-color: @background;
|
||||
}
|
@ -0,0 +1,122 @@
|
||||
* {
|
||||
/* The color configuration */
|
||||
/* Useful for quick editing in case for compiled templates */
|
||||
background: {{ cookiecutter.special.background }};
|
||||
foreground: {{ cookiecutter.special.foreground }};
|
||||
color0: {{ cookiecutter.colors.color0 }};
|
||||
color1: {{ cookiecutter.colors.color1 }};
|
||||
color2: {{ cookiecutter.colors.color2 }};
|
||||
color3: {{ cookiecutter.colors.color3 }};
|
||||
color4: {{ cookiecutter.colors.color4 }};
|
||||
color5: {{ cookiecutter.colors.color5 }};
|
||||
color6: {{ cookiecutter.colors.color6 }};
|
||||
color7: {{ cookiecutter.colors.color7 }};
|
||||
color8: {{ cookiecutter.colors.color8 }};
|
||||
color9: {{ cookiecutter.colors.color9 }};
|
||||
color10: {{ cookiecutter.colors.color10 }};
|
||||
color11: {{ cookiecutter.colors.color11 }};
|
||||
color12: {{ cookiecutter.colors.color12 }};
|
||||
color13: {{ cookiecutter.colors.color13 }};
|
||||
color14: {{ cookiecutter.colors.color14 }};
|
||||
color15: {{ cookiecutter.colors.color15 }};
|
||||
|
||||
/* General theme settings */
|
||||
highlight: bold italic;
|
||||
scrollbar: true;
|
||||
|
||||
/* Font settings */
|
||||
text-color: @foreground;
|
||||
background-color: @background;
|
||||
font: "Font Awesome 5 Free,Font Awesome 5 Free Solid:style=Solid 14";
|
||||
font: "{{ cookiecutter.font.mono.name }} {{ cookiecutter.font.mono.baseSize }}";
|
||||
|
||||
}
|
||||
|
||||
window {
|
||||
background-color: transparent;
|
||||
|
||||
height: 65%;
|
||||
width: 35%;
|
||||
position: southwest;
|
||||
location: southwest;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
border: 2;
|
||||
border-color: @color6;
|
||||
children: [ inputbar, listview, mode-switcher ];
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
inputbar,
|
||||
listview {
|
||||
background: @background;
|
||||
margin: 0 0 0.5em 0;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
orientation: vertical;
|
||||
children: [ prompt, entry ];
|
||||
}
|
||||
|
||||
prompt {
|
||||
text-style: underline;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
entry {
|
||||
background-color: @color0;
|
||||
margin: 0 1em 0 0;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @color0;
|
||||
padding: 5;
|
||||
}
|
||||
|
||||
element selected.normal {
|
||||
background-color: @color6;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
scrollbar {
|
||||
background-color: @color0;
|
||||
border-radius: 30%;
|
||||
handle-color: @color6;
|
||||
handle-width: 15px;
|
||||
height: 100%;
|
||||
text-color: @background;
|
||||
width: 10px;
|
||||
}
|
||||
|
||||
listview {
|
||||
cyclic: true;
|
||||
spacing: 0.6em;
|
||||
}
|
||||
|
||||
element, button {
|
||||
border-radius: 30%;
|
||||
}
|
||||
|
||||
button,
|
||||
case-indicator,
|
||||
entry,
|
||||
inputbar {
|
||||
padding: 5;
|
||||
}
|
||||
|
||||
sidebar {
|
||||
padding: 5;
|
||||
margin: 5;
|
||||
}
|
||||
|
||||
button {
|
||||
margin: 0.25em;
|
||||
}
|
||||
|
||||
button.selected {
|
||||
background-color: @color6;
|
||||
text-color: @background;
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 300 KiB |
114
templates/themes/fair-and-square/{{ cookiecutter.name | slugify }}/default.nix
Executable file
114
templates/themes/fair-and-square/{{ cookiecutter.name | slugify }}/default.nix
Executable file
@ -0,0 +1,114 @@
|
||||
{ config, options, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
{
|
||||
options.modules.themes."{{ cookiecutter.name | slugify }}" = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf config.modules.themes."{{ cookiecutter.name | slugify }}".enable {
|
||||
# Pass the metadata of the theme.
|
||||
modules.theme = {
|
||||
name = "{{ cookiecutter.name }}";
|
||||
version = "{{ cookiecutter.version }}";
|
||||
path = ./.;
|
||||
};
|
||||
|
||||
# Enable picom compositor.
|
||||
services = {
|
||||
picom = {
|
||||
enable = true;
|
||||
fade = false;
|
||||
shadow = false;
|
||||
};
|
||||
|
||||
xserver = {
|
||||
displayManager = {
|
||||
lightdm.enable = true;
|
||||
lightdm.greeters.mini.enable = true;
|
||||
lightdm.greeters.mini.user = config.my.username;
|
||||
defaultSession = "none+bspwm";
|
||||
};
|
||||
enable = true;
|
||||
libinput.enable = true;
|
||||
windowManager.bspwm.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
my.env.TERMINAL = "alacritty";
|
||||
|
||||
my.home = {
|
||||
# Enable GTK configuration.
|
||||
gtk.enable = true;
|
||||
|
||||
# Enable QT configuration.
|
||||
qt.enable = true;
|
||||
qt.platformTheme = "gtk";
|
||||
|
||||
# Install all of the configurations in the XDG config home.
|
||||
xdg.configFile = mkMerge [
|
||||
(let recursiveXdgConfig = name: {
|
||||
source = ./config + "/${name}";
|
||||
recursive = true;
|
||||
}; in {
|
||||
"alacritty" = recursiveXdgConfig "alacritty";
|
||||
"bspwm" = recursiveXdgConfig "bspwm";
|
||||
"dunst" = recursiveXdgConfig "dunst";
|
||||
"polybar" = recursiveXdgConfig "polybar";
|
||||
"rofi" = recursiveXdgConfig "rofi";
|
||||
|
||||
"sxhkd" = {
|
||||
source = <config/sxhkd>;
|
||||
recursive = true;
|
||||
};
|
||||
})
|
||||
|
||||
(mkIf config.services.xserver.enable {
|
||||
"gtk-3.0/settings.ini".text = ''
|
||||
[Settings]
|
||||
gtk-theme-name=Arc
|
||||
gtk-icon-theme-name=Arc
|
||||
gtk-fallback-icon-theme=gnome
|
||||
gtk-application-prefer-dark-theme=true
|
||||
gtk-cursor-theme-name=Adwaita
|
||||
gtk-xft-hinting=1
|
||||
gtk-xft-hintstyle=hintfull
|
||||
gtk-xft-rgba=none
|
||||
'';
|
||||
|
||||
"gtk-2.0/gtkrc".text = ''
|
||||
gtk-theme-name="Arc"
|
||||
gtk-icon-theme-name="Arc"
|
||||
gtk-font-name="Sans 10"
|
||||
gtk-cursor-theme-name="Adwaita"
|
||||
'';
|
||||
})
|
||||
];
|
||||
};
|
||||
|
||||
my.packages = with pkgs; [
|
||||
alacritty # Muh GPU-accelerated terminal emulator.
|
||||
dunst # Add more annoying pop-ups on your screen!
|
||||
feh # Meh, it's a image viewer that can set desktop background, what gives?
|
||||
gnome3.adwaita-icon-theme
|
||||
libnotify # Library for yer notifications.
|
||||
(polybar.override {
|
||||
pulseSupport = true;
|
||||
nlSupport = true;
|
||||
}) # Add some bars to your magnum opus.
|
||||
rofi # A ricer's best friend (one of them at least).
|
||||
|
||||
# The Arc theme
|
||||
arc-icon-theme
|
||||
arc-theme
|
||||
];
|
||||
|
||||
fonts.fonts = with pkgs; [
|
||||
iosevka
|
||||
font-awesome-ttf
|
||||
];
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue
Block a user