Major design of glimpse theme

- Add rofi scripts (replace rofi-pass with homebrewed passmenu)
- Replace wallpapers
- New soft blue + blur A E S T H E T I C
- Change from Arc Dark to Nordic
- Apply GTK theme to pinentry prompt
- New rofi theme
- Switch from lightdm gtk greeter to mini greeter
- Refactor zsh aliases
This commit is contained in:
Henrik Lissner 2019-12-04 00:00:32 -05:00
parent 2c6e83ab14
commit c897191831
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
20 changed files with 267 additions and 165 deletions

View file

@ -14,13 +14,15 @@ bspc config remove_unplugged_monitors true
# Rules # Rules
bspc rule -r '*' bspc rule -r '*'
bspc rule -a 'Emacs:org*' state=floating
bspc rule -a 'Emacs:scratch' state=floating
bspc rule -a mpv state=floating center=on bspc rule -a mpv state=floating center=on
bspc rule -a Pinentry state=floating center=on bspc rule -a Pinentry state=floating center=on
bspc rule -a Emacs split_ratio=0.32 state=fullscreen bspc rule -a Emacs split_ratio=0.32 state=fullscreen border=off
bspc rule -a xst-256color border=off
bspc rule -a Firefox split_ratio=0.32 bspc rule -a Firefox split_ratio=0.32
bspc rule -a feh state=fullscreen bspc rule -a feh state=fullscreen
bspc rule -a 'Emacs:org*' state=floating
bspc rule -a 'Emacs:scratch' state=floating
bspc rule -a st-scratch state=floating sticky=on center=on
# #

9
config/rofi/bin/appmenu Executable file
View file

@ -0,0 +1,9 @@
#!/usr/bin/env sh
rofi \
-monitor -4 \
-no-lazy-grab \
-show drun \
-modi drun,run \
-display-drun apps \
-show-icons \
-theme theme/appmenu.rasi

54
config/rofi/bin/passmenu Executable file
View file

@ -0,0 +1,54 @@
#!/usr/bin/env bash
# Prompts for a pass entry, then for a specific field. Similar to passmenu, but
# uses rofi, and can resume from a previous session.
#
# Example: passmenu [RESUME]
ROFI_CMD='rofi -dmenu -theme theme/passmenu.rasi'
set -e
shopt -s nullglob globstar
for prog in xclip notify-send pass; do
if ! command -v "$prog" >/dev/null; then
>&2 echo "$prog not installed, aborting"
exit 1
fi
done
if [[ $1 == -r ]]; then
resume=1; shift
fi
url=$@
LAST_ENTRY_FILE=/tmp/_upm
if [[ -n $resume && -f $LAST_ENTRY_FILE ]]; then
entry="$(<$LAST_ENTRY_FILE)"
else
prefix=${PASSWORD_STORE_DIR-~/.password-store}
password_files=( "$prefix"/**/*.gpg )
password_files=( "${password_files[@]#"$prefix"/}" )
password_files=( "${password_files[@]%.gpg}" )
entry=$(printf "%s\n" "${password_files[@]}" | $ROFI_CMD -p "pass > " -filter "$url")
fi
if [[ -z $entry ]]; then
notify-send --urgency=critical "Failed to select $entry"
exit 1
fi
echo "$entry" >/tmp/_upm
secrets="$(pass show "$entry")"
if [[ -n $secrets ]]; then
fields=$(awk -F': ' 'NR>1 && !/^otpauth:/ {print $1}' <<<"$secrets")
field=$(printf "password\n%s\notp\n" "${fields[@]}" | $ROFI_CMD -p "pass ($entry) > ")
case $field in
password) pass -c "$entry" ;;
otp) printf "%s" "$(pass otp -c "$entry")" ;;
*) printf "%s" "$(awk -v "key=$field:" '$1 == key {print $2}' <<<"$secrets")" | xclip -selection clipboard -in ;;
esac
notify-send --urgency=low "<b>$entry -> $field</b>" "Copied to clipboard for 45s"
else
notify-send --urgency=critical "Failed to retrieve $entry"
exit 2
fi

View file

@ -30,10 +30,10 @@ super + shift + grave
emacsclient -e '(open-scratch-frame)' emacsclient -e '(open-scratch-frame)'
super + space super + space
rofi -monitor -4 -show drun -show-icons ~/.config/rofi/bin/appmenu
super + backslash super + backslash
rofi-pass ~/.config/rofi/bin/passmenu
super + Escape super + Escape
pkill -USR1 -x sxhkd pkill -USR1 -x sxhkd

View file

@ -1,4 +1,12 @@
### ReDefs alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias -- -='cd -'
alias q=exit
alias clr=clear
alias sudo='sudo '
alias rm='rm -i' alias rm='rm -i'
alias cp='cp -i' alias cp='cp -i'
alias mv='mv -i' alias mv='mv -i'
@ -12,17 +20,6 @@ alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto' alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto' alias egrep='egrep --color=auto'
### convenience
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias -- -='cd -'
alias q=exit
alias clr=clear
alias sudo='sudo '
if command -v exa >/dev/null; then if command -v exa >/dev/null; then
alias exa='exa --group-directories-first' alias exa='exa --group-directories-first'
alias l='exa -1' alias l='exa -1'
@ -50,7 +47,6 @@ alias nc=nix-channel
alias ngc=nix-garbage-collect alias ngc=nix-garbage-collect
alias nre=nixos-rebuild alias nre=nixos-rebuild
### Tools
autoload -U zmv autoload -U zmv
take() { take() {

View file

@ -17,6 +17,7 @@
autoOptimiseStore = true; autoOptimiseStore = true;
trustedUsers = [ "root" "@wheel" ]; trustedUsers = [ "root" "@wheel" ];
}; };
# Forgive me Stallman senpai
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
# Nothing in /tmp should survive a reboot # Nothing in /tmp should survive a reboot
@ -41,7 +42,9 @@
ntfs3g ntfs3g
hfsprogs hfsprogs
]; ];
variables = { # These are the defaults, but some applications are buggy when these lack
# explicit values.
sessionVariables = {
XDG_CONFIG_HOME = "$HOME/.config"; XDG_CONFIG_HOME = "$HOME/.config";
XDG_CACHE_HOME = "$HOME/.cache"; XDG_CACHE_HOME = "$HOME/.cache";
XDG_DATA_HOME = "$HOME/.local/share"; XDG_DATA_HOME = "$HOME/.local/share";

View file

@ -46,16 +46,20 @@
services = { services = {
xserver = { xserver = {
desktopManager.xterm.enable = false; desktopManager.xterm.enable = false;
displayManager.lightdm.enable = true;
windowManager.bspwm.enable = true; windowManager.bspwm.enable = true;
displayManager.lightdm = {
enable = true;
greeters.mini = {
enable = true;
user = "hlissner";
};
};
}; };
compton = { compton = {
enable = true; enable = true;
backend = "glx"; backend = "glx";
vSync = true; vSync = true;
inactiveOpacity = "0.90";
opacityRules = ["100:class_g = 'Firefox'"];
}; };
}; };

View file

@ -7,7 +7,6 @@
exts.pass-otp exts.pass-otp
exts.pass-genphrase exts.pass-genphrase
])) ]))
(lib.mkIf (config.services.xserver.enable) rofi-pass)
]; ];
variables.PASSWORD_STORE_DIR = "$HOME/.secrets/password-store"; variables.PASSWORD_STORE_DIR = "$HOME/.secrets/password-store";

View file

@ -1,19 +1,19 @@
!! Colors !! Colors
#define blk #131519 #define blk #101216
#define bblk #969896 #define bblk #969896
#define red #cc6666 #define red #cc6666
#define bred #de935f #define bred #de935f
#define grn #b5bd68 #define grn #8BD49C
#define bgrn #757d28 #define bgrn #757d28
#define ylw #f0c674 #define ylw #f0c674
#define bylw #f9a03f #define bylw #f9a03f
#define blu #81a2be #define blu #5EC4FF
#define bblu #2a8fed #define bblu #2a8fed
#define mag #b294bb #define mag #E27E8D
#define bmag #bc77a8 #define bmag #bc77a8
#define cyn #8abeb7 #define cyn #8abeb7
#define bcyn #a3685a #define bcyn #a3685a
#define wht #c5c8c6 #define wht #bbc2cf
#define bwht #ffffff #define bwht #ffffff
#define bg blk #define bg blk
#define fg wht #define fg wht
@ -48,22 +48,8 @@
*.color240: #544c49 *.color240: #544c49
*.color241: #665c54 *.color241: #665c54
st.opacity: 245
!! xst
!! Fonts st.opacity: 200
rofi.font: Fira Code 15
st.font: Fira Code:pixelsize=12 st.font: Fira Code:pixelsize=12
st-scratch.font: Fira Code:pixelsize=15 st-scratch.font: Fira Code:pixelsize=15
!! Rofi
rofi.padding: 12
! bg fg bgalt hlbg hlfg
rofi.color-normal: argb:00131519, #bbc2cf, #131519, #191b1f, #f0c674
rofi.color-urgent: argb:00131519, #bbc2cf, #131519, #191b1f, #f0c674
rofi.color-active: argb:00131519, #bbc2cf, #131519, #191b1f, #f0c674
! bg border sep
rofi.color-window: argb:ee131519, argb:00bbc2cf, #292d35
! Separator style (none, dash, solid)
rofi.separator-style: solid

View file

@ -1,14 +1,14 @@
#!/bin/sh #!/usr/bin/env sh
bspc config borderless_monocle true bspc config borderless_monocle true
bspc config gapless_monocle true bspc config gapless_monocle true
bspc config border_width 2 bspc config border_width 1
bspc config window_gap 8 bspc config window_gap 12
bspc config normal_border_color "#131519" bspc config normal_border_color "#11141b"
bspc config active_border_color "#131519" bspc config active_border_color "#21242b"
bspc config focused_border_color "#f0c674" bspc config focused_border_color "#798cb3"
# Extra padding for polybar # Extra padding for polybar
bspc config -m $MONITOR window_gap 12 bspc config -m $MONITOR window_gap 12

View file

@ -3,25 +3,61 @@
{ {
imports = [ ../. ]; # Load framework for themes imports = [ ../. ]; # Load framework for themes
environment.systemPackages = with pkgs; [ arc-theme ]; environment.systemPackages = with pkgs; [
nordic
paper-icon-theme # for rofi
];
fonts.fonts = [ pkgs.nerdfonts ];
services.compton = {
activeOpacity = "0.96";
inactiveOpacity = "0.75";
opacityRules = [
"100:class_g = 'Firefox'"
"100:class_g = 'Gimp'"
"100:class_g = 'feh'"
"100:class_g = 'mpv'"
];
settings = {
blur-background = true;
blur-background-frame = true;
blur-background-fixed = true;
blur-kern = "7x7box";
blur-strength = 340;
blur-background-exclude = [
"window_type = 'dock'"
"window_type = 'desktop'"
];
};
};
services.xserver.displayManager.lightdm = {
background = "${./wallpaper.blurred.jpg}";
greeters.mini.extraConfig = ''
text-color = "#bbc2cf"
window-color = "#29323d"
border-color = "#29323d"
'';
};
services.xserver.displayManager.lightdm.background = "${./wallpaper.png}";
home-manager.users.hlissner = { home-manager.users.hlissner = {
home.file.".background-image".source = ./wallpaper.png; home.file.".background-image".source = ./wallpaper.jpg;
xdg.configFile = { xdg.configFile = {
"xtheme/90-theme".source = ./Xresources; "xtheme/90-theme".source = ./Xresources;
"dunst/dunstrc".source = ./dunstrc; "dunst/dunstrc".source = ./dunstrc;
"bspwm/rc.d/theme".source = ./bspwmrc; "bspwm/rc.d/theme".source = ./bspwmrc;
"bspwm/rc.d/polybar".source = ./polybar/run.sh; "bspwm/rc.d/polybar".source = ./polybar/run.sh;
"rofi/theme".source = ./rofi.theme;
"polybar" = { source = ./polybar; recursive = true; }; "polybar" = { source = ./polybar; recursive = true; };
"rofi/theme" = { source = ./rofi; recursive = true; };
"zsh/prompt.zsh".source = ./zsh/prompt.zsh;
# GTK # GTK
"gtk-3.0/settings.ini".text = '' "gtk-3.0/settings.ini".text = ''
[Settings] [Settings]
gtk-theme-name=Arc-Dark gtk-theme-name=Nordic-blue
gtk-icon-theme-name=Arc-Dark gtk-icon-theme-name=Paper
gtk-fallback-icon-theme=gnome gtk-fallback-icon-theme=gnome
gtk-application-prefer-dark-theme=true gtk-application-prefer-dark-theme=true
gtk-cursor-theme-name=Numix gtk-cursor-theme-name=Numix
@ -32,15 +68,15 @@
# GTK2 global theme (widget and icon theme) # GTK2 global theme (widget and icon theme)
"gtk-2.0/gtkrc".text = '' "gtk-2.0/gtkrc".text = ''
gtk-theme-name="Arc-Dark" gtk-theme-name="Nordic-blue"
gtk-icon-theme-name="adwaita" gtk-icon-theme-name="Paper-Mono-Dark"
gtk-font-name="Sans 10" gtk-font-name="Sans 10"
''; '';
# QT4/5 global theme # QT4/5 global theme
"Trolltech.conf".text = '' "Trolltech.conf".text = ''
[Qt] [Qt]
style=Arc-Dark style=Nordic-blue
''; '';
}; };
}; };

View file

@ -1,6 +1,6 @@
[colors] [colors]
bg = ${xrdb:background} bg = ${xrdb:background}
fg = ${xrdb:foreground} fg = ${xrdb:color4}
black = ${xrdb:color0} black = ${xrdb:color0}
bblack = ${xrdb:color8} bblack = ${xrdb:color8}
red = ${xrdb:color1} red = ${xrdb:color1}
@ -19,7 +19,7 @@ white = ${xrdb:color7}
bwhite = ${xrdb:color15} bwhite = ${xrdb:color15}
bg-alt = #0F1013 bg-alt = #0F1013
fg-alt = #25282a fg-alt = #25283a
icons = #555856 icons = #555856
alert = ${colors.red} alert = ${colors.red}
@ -86,8 +86,8 @@ format = <label-state> <label-mode>
label-padding = 1 label-padding = 1
label-focused = %icon% label-focused = %icon%
label-focused-background = #33000000 label-focused-background = #44000000
label-focused-foreground = ${colors.green} label-focused-foreground = ${colors.blue}
; label-focused-underline = ${colors.magenta} ; label-focused-underline = ${colors.magenta}
; label-focused-foreground = ${xrdb:color2} ; label-focused-foreground = ${xrdb:color2}
label-focused-padding = 1 label-focused-padding = 1

View file

@ -1,100 +0,0 @@
/*
* ROFI One Dark
*
* Based on OneDark.vim (https://github.com/joshdick/onedark.vim)
*
* Author: Benjamin Stauss
* User: me-benni
*
*/
* {
black: #000000;
red: #eb6e67;
green: #95ee8f;
yellow: #f8c456;
blue: #6eaafb;
mangenta: #d886f3;
cyan: #6cdcf7;
emphasis: #50536b;
text: #dfdfdf;
text-alt: #b2b2b2;
fg: #abb2bf;
bg: #282c34;
spacing: 0;
background-color: transparent;
font: "Knack Nerd Font 14";
text-color: @text;
}
window {
transparency: "real";
fullscreen: true;
background-color: #282c34dd;
}
mainbox {
padding: 30% 30%;
}
inputbar {
margin: 0px 0px 20px 0px;
children: [prompt, textbox-prompt-colon, entry, case-indicator];
}
prompt {
text-color: @blue;
}
textbox-prompt-colon {
expand: false;
str: ":";
text-color: @text-alt;
}
entry {
margin: 0px 10px;
}
listview {
spacing: 5px;
dynamic: true;
scrollbar: false;
}
element {
padding: 5px;
text-color: @text-alt;
highlight: bold #95ee8f; /* green */
border-radius: 3px;
}
element selected {
background-color: @emphasis;
text-color: @text;
}
element urgent, element selected urgent {
text-color: @red;
}
element active, element selected active {
text-color: @purple;
}
message {
padding: 5px;
border-radius: 3px;
background-color: @emphasis;
border: 1px;
border-color: @cyan;
}
button selected {
padding: 5px;
border-radius: 3px;
background-color: @emphasis;
}

View file

@ -0,0 +1,48 @@
/** -*- mode: css; -*-
* This theme is intended for a 8x2 items list menu with a headerbar.
*/
@import "config.rasi"
* {
background-color: @background;
text-color: @foreground-list;
font: @text-font;
}
#window {
padding: @list-8-window-padding;
}
inputbar,
prompt,
textbox-prompt-colon,
entry {
background-color: @background-light;
}
#inputbar {
children: [ prompt, textbox-prompt-colon, entry ];
margin: @inputbar-margin;
}
#prompt {
padding: @prompt-padding;
background-color: @accent;
text-color: @background;
}
#textbox-prompt-colon {
expand: false;
str: " : : ";
padding: @apps-textbox-prompt-colon-padding;
}
#entry {
text-color: @accent;
padding: @entry-padding;
}
#element {
padding: @list-element-padding;
margin: @list-element-margin;
border: @list-element-border;
background-color: @background-light;
border-color: @background-light;
}
#element.selected {
background-color: @background-focus;
text-color: @accent;
border-color: @accent;
}

View file

@ -0,0 +1,49 @@
/* -*- mode: css; -*- */
configuration {
icon-theme: "Paper";
cycle: true;
hide-scrollbar: true;
disable-history: false;
/*
modi: "drun";
display-drun: "apps";
*/
columns: 2;
}
* {
accent: #51afef;
background: #101216;
background-light: #1f1f1f;
background-focus: #282828;
foreground: #888888;
foreground-list: #bbbbbb;
on: #98be65;
off: #ff6c6b;
text-font: "Fira Sans 16";
text-font-mono: "Fira Mono 16";
icon-font: "Hurmit Nerd Font Mono 60";
icon-font-small: "Hurmit Nerd Font Mono 24";
/* General */
inputbar-margin: 4px 4px;
prompt-padding: 14px 18px;
entry-padding: 16px 14px 14px 0px;
/* list menus: appsmenu, networkmenu and nmvpnmenu */
list-element-padding: 20px;
list-element-margin: @inputbar-margin;
list-element-border: 0px 0px 0px 8px;
list-8-window-padding: 240px 18%;
/* appsmenu */
apps-textbox-prompt-colon-padding: 16px;
/* networkmenu */
network-textbox-prompt-colon-padding: 14px 10px 10px 10px;
/* nmvpnmenu */
nmvpn-textbox-prompt-colon-padding: @network-textbox-prompt-colon-padding;
}
#window {
width: 100%;
height: 100%;
}

View file

@ -0,0 +1,16 @@
/* -*- mode: css; -*- */
@import "appmenu.rasi"
#prompt {
background-color: #c678dd;
}
#entry {
text-color: #c678dd;
}
#element.selected {
text-color: #c678dd;
border-color: #c678dd;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 718 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 KiB

View file

@ -42,7 +42,7 @@ prompt_init() {
zle-keymap-select() { zle-keymap-select() {
case $KEYMAP in case $KEYMAP in
vicmd) PROMPT_SYMBOL="%F{magenta}« " ;; vicmd) PROMPT_SYMBOL="%F{magenta}« " ;;
main|viins) PROMPT_SYMBOL="%(?.%F{green}.%F{red})λ " ;; main|viins) PROMPT_SYMBOL="%(?.%F{blue}.%F{red})λ " ;;
esac esac
zle reset-prompt zle reset-prompt
zle -R zle -R
@ -65,7 +65,7 @@ prompt_init() {
fi fi
RPROMPT='%F{blue}%~%F{magenta}${vcs_info_msg_0_}$(prompt_git_dirty)%f' RPROMPT='%F{blue}%~%F{magenta}${vcs_info_msg_0_}$(prompt_git_dirty)%f'
PROMPT='%F{blue}${prompt_username}%f${PROMPT_SYMBOL:-$ }' PROMPT='%F{green}${prompt_username}%f${PROMPT_SYMBOL:-$ }'
} }
prompt_init "$@" prompt_init "$@"