Compare commits
8 commits
2c4a6951ff
...
1b77f46457
| Author | SHA1 | Date | |
|---|---|---|---|
| 1b77f46457 | |||
| 9dccdfc4a7 | |||
| 6c3d5ac59f | |||
| 349685dfcf | |||
| e5d573118b | |||
| 00974f089d | |||
| 2878f31347 | |||
| a0fbe4bfac |
10 changed files with 452 additions and 26 deletions
|
|
@ -3,8 +3,10 @@
|
|||
{
|
||||
imports = [
|
||||
./cli.nix
|
||||
# ./programs/xmonad/default.nix
|
||||
./programs/rofi/default.nix
|
||||
./programs/rofi
|
||||
./services/polybar
|
||||
./services/dunst
|
||||
./services/udiskie
|
||||
];
|
||||
|
||||
home = {
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.rofi = {
|
||||
config.programs.rofi = {
|
||||
enable = true;
|
||||
plugins = with pkgs; [ rofi-calc rofi-emoji ];
|
||||
terminal = "${pkgs.alacritty}/bin/alacritty";
|
||||
theme = ./themes/gruvbox-dark-soft.rasi;
|
||||
pass = {
|
||||
enable = true;
|
||||
stores = [ config.programs.password-store.settings.PASSWORD_STORE_DIR ];
|
||||
|
|
@ -12,5 +13,5 @@
|
|||
};
|
||||
|
||||
# let rofi insert emojis directly
|
||||
home.packages = [ pkgs.xdotool ];
|
||||
config.home.packages = [ pkgs.xdotool ];
|
||||
}
|
||||
|
|
|
|||
191
home/alex/programs/rofi/themes/gruvbox-dark-soft.rasi
Normal file
191
home/alex/programs/rofi/themes/gruvbox-dark-soft.rasi
Normal file
|
|
@ -0,0 +1,191 @@
|
|||
/* ==========================================================================
|
||||
Rofi color theme
|
||||
|
||||
Based on the Gruvbox color scheme for Vim by morhetz
|
||||
https://github.com/morhetz/gruvbox
|
||||
|
||||
File: gruvbox-dark-soft.rasi
|
||||
Desc: Gruvbox dark (soft contrast) color theme for Rofi
|
||||
Author: bardisty <b@bah.im>
|
||||
Source: https://github.com/bardisty/gruvbox-rofi
|
||||
Modified: Mon Feb 12 2018 06:04:37 PST -0800
|
||||
========================================================================== */
|
||||
|
||||
* {
|
||||
/* Theme settings */
|
||||
highlight: bold italic;
|
||||
scrollbar: true;
|
||||
|
||||
/* Gruvbox dark colors */
|
||||
gruvbox-dark-bg0-soft: #32302f;
|
||||
gruvbox-dark-bg1: #3c3836;
|
||||
gruvbox-dark-bg3: #665c54;
|
||||
gruvbox-dark-fg0: #fbf1c7;
|
||||
gruvbox-dark-fg1: #ebdbb2;
|
||||
gruvbox-dark-red-dark: #cc241d;
|
||||
gruvbox-dark-red-light: #fb4934;
|
||||
gruvbox-dark-yellow-dark: #d79921;
|
||||
gruvbox-dark-yellow-light: #fabd2f;
|
||||
gruvbox-dark-gray: #a89984;
|
||||
|
||||
/* Theme colors */
|
||||
background: @gruvbox-dark-bg0-soft;
|
||||
background-color: @background;
|
||||
foreground: @gruvbox-dark-fg1;
|
||||
border-color: @gruvbox-dark-gray;
|
||||
separatorcolor: @border-color;
|
||||
scrollbar-handle: @border-color;
|
||||
|
||||
normal-background: @background;
|
||||
normal-foreground: @foreground;
|
||||
alternate-normal-background: @gruvbox-dark-bg1;
|
||||
alternate-normal-foreground: @foreground;
|
||||
selected-normal-background: @gruvbox-dark-bg3;
|
||||
selected-normal-foreground: @gruvbox-dark-fg0;
|
||||
|
||||
active-background: @gruvbox-dark-yellow-dark;
|
||||
active-foreground: @background;
|
||||
alternate-active-background: @active-background;
|
||||
alternate-active-foreground: @active-foreground;
|
||||
selected-active-background: @gruvbox-dark-yellow-light;
|
||||
selected-active-foreground: @active-foreground;
|
||||
|
||||
urgent-background: @gruvbox-dark-red-dark;
|
||||
urgent-foreground: @background;
|
||||
alternate-urgent-background: @urgent-background;
|
||||
alternate-urgent-foreground: @urgent-foreground;
|
||||
selected-urgent-background: @gruvbox-dark-red-light;
|
||||
selected-urgent-foreground: @urgent-foreground;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
File: gruvbox-common.rasi
|
||||
Desc: Shared rules between all gruvbox themes
|
||||
Author: bardisty <b@bah.im>
|
||||
Source: https://github.com/bardisty/gruvbox-rofi
|
||||
Modified: Mon Feb 12 2018 06:06:47 PST -0800
|
||||
========================================================================== */
|
||||
|
||||
window {
|
||||
background-color: @background;
|
||||
border: 2;
|
||||
padding: 2;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
message {
|
||||
border: 2px 0 0;
|
||||
border-color: @separatorcolor;
|
||||
padding: 1px;
|
||||
}
|
||||
|
||||
textbox {
|
||||
highlight: @highlight;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
listview {
|
||||
border: 2px solid 0 0;
|
||||
padding: 2px 0 0;
|
||||
border-color: @separatorcolor;
|
||||
spacing: 2px;
|
||||
scrollbar: @scrollbar;
|
||||
}
|
||||
|
||||
element {
|
||||
border: 0;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
element.normal.normal {
|
||||
background-color: @normal-background;
|
||||
text-color: @normal-foreground;
|
||||
}
|
||||
|
||||
element.normal.urgent {
|
||||
background-color: @urgent-background;
|
||||
text-color: @urgent-foreground;
|
||||
}
|
||||
|
||||
element.normal.active {
|
||||
background-color: @active-background;
|
||||
text-color: @active-foreground;
|
||||
}
|
||||
|
||||
element.selected.normal {
|
||||
background-color: @selected-normal-background;
|
||||
text-color: @selected-normal-foreground;
|
||||
}
|
||||
|
||||
element.selected.urgent {
|
||||
background-color: @selected-urgent-background;
|
||||
text-color: @selected-urgent-foreground;
|
||||
}
|
||||
|
||||
element.selected.active {
|
||||
background-color: @selected-active-background;
|
||||
text-color: @selected-active-foreground;
|
||||
}
|
||||
|
||||
element.alternate.normal {
|
||||
background-color: @alternate-normal-background;
|
||||
text-color: @alternate-normal-foreground;
|
||||
}
|
||||
|
||||
element.alternate.urgent {
|
||||
background-color: @alternate-urgent-background;
|
||||
text-color: @alternate-urgent-foreground;
|
||||
}
|
||||
|
||||
element.alternate.active {
|
||||
background-color: @alternate-active-background;
|
||||
text-color: @alternate-active-foreground;
|
||||
}
|
||||
|
||||
scrollbar {
|
||||
width: 4px;
|
||||
border: 0;
|
||||
handle-color: @scrollbar-handle;
|
||||
handle-width: 8px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
mode-switcher {
|
||||
border: 2px 0 0;
|
||||
border-color: @separatorcolor;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
spacing: 0;
|
||||
text-color: @normal-foreground;
|
||||
padding: 2px;
|
||||
children: [ prompt, textbox-prompt-sep, entry, case-indicator ];
|
||||
}
|
||||
|
||||
case-indicator,
|
||||
entry,
|
||||
prompt,
|
||||
button {
|
||||
spacing: 0;
|
||||
text-color: @normal-foreground;
|
||||
}
|
||||
|
||||
button.selected {
|
||||
background-color: @selected-normal-background;
|
||||
text-color: @selected-normal-foreground;
|
||||
}
|
||||
|
||||
textbox-prompt-sep {
|
||||
expand: false;
|
||||
str: ":";
|
||||
text-color: @normal-foreground;
|
||||
margin: 0 0.3em 0 0;
|
||||
}
|
||||
element-text, element-icon {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
xsession = {
|
||||
windowManager.command = let
|
||||
xmonad = pkgs.xmonad-with-packages.override {
|
||||
packages = self: [ self.xmonad-contrib ];
|
||||
};
|
||||
in "${xmonad}/bin/xmonad";
|
||||
};
|
||||
}
|
||||
25
home/alex/services/dunst/default.nix
Normal file
25
home/alex/services/dunst/default.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config.services.dunst = {
|
||||
enable = true;
|
||||
iconTheme = {
|
||||
name = "Adwaita";
|
||||
package = pkgs.gnome3.adwaita-icon-theme;
|
||||
size = "16x16";
|
||||
};
|
||||
settings = {
|
||||
global = {
|
||||
monitor = 0;
|
||||
geometry = "600x50-50+65";
|
||||
shrink = "yes";
|
||||
transparency = 10;
|
||||
padding = 16;
|
||||
horizontal_padding = 16;
|
||||
font = "JetBrainsMono Nerd Font 10";
|
||||
line_height = 4;
|
||||
format = "<b>%s</b>\\n%b";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
179
home/alex/services/polybar/config.ini
Normal file
179
home/alex/services/polybar/config.ini
Normal file
|
|
@ -0,0 +1,179 @@
|
|||
;==========================================================
|
||||
;
|
||||
;
|
||||
; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗
|
||||
; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗
|
||||
; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝
|
||||
; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗
|
||||
; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║
|
||||
; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝
|
||||
;
|
||||
;
|
||||
; To learn more about how to configure Polybar
|
||||
; go to https://github.com/polybar/polybar
|
||||
;
|
||||
; The README contains a lot of information
|
||||
;
|
||||
;==========================================================
|
||||
|
||||
[colors]
|
||||
background = #282A2E
|
||||
background-alt = #373B41
|
||||
foreground = #C5C8C6
|
||||
primary = #F0C674
|
||||
secondary = #8ABEB7
|
||||
alert = #A54242
|
||||
disabled = #707880
|
||||
|
||||
[bar/main]
|
||||
width = 100%
|
||||
height = 24pt
|
||||
radius = 6
|
||||
|
||||
; dpi = 96
|
||||
|
||||
background = ${colors.background}
|
||||
foreground = ${colors.foreground}
|
||||
|
||||
line-size = 3pt
|
||||
|
||||
border-size = 4pt
|
||||
border-color = #00000000
|
||||
|
||||
padding-left = 0
|
||||
padding-right = 1
|
||||
|
||||
module-margin = 1
|
||||
|
||||
separator = |
|
||||
separator-foreground = ${colors.disabled}
|
||||
|
||||
font-0 = monospace;2
|
||||
|
||||
modules-left = xworkspaces xwindow
|
||||
modules-right = filesystem pulseaudio xkeyboard memory cpu wlan eth date
|
||||
|
||||
cursor-click = pointer
|
||||
cursor-scroll = ns-resize
|
||||
|
||||
enable-ipc = true
|
||||
|
||||
tray-position = center
|
||||
|
||||
; wm-restack = generic
|
||||
; wm-restack = bspwm
|
||||
; wm-restack = i3
|
||||
|
||||
; override-redirect = true
|
||||
|
||||
[module/systray]
|
||||
type = internal/tray
|
||||
|
||||
format-margin = 8pt
|
||||
tray-spacing = 16pt
|
||||
tray-position = center
|
||||
|
||||
[module/xworkspaces]
|
||||
type = internal/xworkspaces
|
||||
|
||||
label-active = %name%
|
||||
label-active-background = ${colors.background-alt}
|
||||
label-active-underline= ${colors.primary}
|
||||
label-active-padding = 1
|
||||
|
||||
label-occupied = %name%
|
||||
label-occupied-padding = 1
|
||||
|
||||
label-urgent = %name%
|
||||
label-urgent-background = ${colors.alert}
|
||||
label-urgent-padding = 1
|
||||
|
||||
label-empty = %name%
|
||||
label-empty-foreground = ${colors.disabled}
|
||||
label-empty-padding = 1
|
||||
|
||||
[module/xwindow]
|
||||
type = internal/xwindow
|
||||
label = %title:0:60:...%
|
||||
|
||||
[module/filesystem]
|
||||
type = internal/fs
|
||||
interval = 25
|
||||
|
||||
mount-0 = /
|
||||
|
||||
label-mounted = %{F#F0C674}%mountpoint%%{F-} %percentage_used%%
|
||||
|
||||
label-unmounted = %mountpoint% not mounted
|
||||
label-unmounted-foreground = ${colors.disabled}
|
||||
|
||||
[module/pulseaudio]
|
||||
type = internal/pulseaudio
|
||||
|
||||
format-volume-prefix = "VOL "
|
||||
format-volume-prefix-foreground = ${colors.primary}
|
||||
format-volume = <label-volume>
|
||||
|
||||
label-volume = %percentage%%
|
||||
|
||||
label-muted = muted
|
||||
label-muted-foreground = ${colors.disabled}
|
||||
|
||||
[module/xkeyboard]
|
||||
type = internal/xkeyboard
|
||||
blacklist-0 = num lock
|
||||
|
||||
label-layout = %layout%
|
||||
label-layout-foreground = ${colors.primary}
|
||||
|
||||
label-indicator-padding = 2
|
||||
label-indicator-margin = 1
|
||||
label-indicator-foreground = ${colors.background}
|
||||
label-indicator-background = ${colors.secondary}
|
||||
|
||||
[module/memory]
|
||||
type = internal/memory
|
||||
interval = 2
|
||||
format-prefix = "RAM "
|
||||
format-prefix-foreground = ${colors.primary}
|
||||
label = %percentage_used:2%%
|
||||
|
||||
[module/cpu]
|
||||
type = internal/cpu
|
||||
interval = 2
|
||||
format-prefix = "CPU "
|
||||
format-prefix-foreground = ${colors.primary}
|
||||
label = %percentage:2%%
|
||||
|
||||
[network-base]
|
||||
type = internal/network
|
||||
interval = 5
|
||||
format-connected = <label-connected>
|
||||
format-disconnected = <label-disconnected>
|
||||
label-disconnected = %{F#F0C674}%ifname%%{F#707880} disconnected
|
||||
|
||||
[module/wlan]
|
||||
inherit = network-base
|
||||
interface-type = wireless
|
||||
label-connected = %{F#F0C674}%ifname%%{F-} %essid% %local_ip%
|
||||
|
||||
[module/eth]
|
||||
inherit = network-base
|
||||
interface-type = wired
|
||||
label-connected = %{F#F0C674}%ifname%%{F-} %local_ip%
|
||||
|
||||
[module/date]
|
||||
type = internal/date
|
||||
interval = 1
|
||||
|
||||
date = %H:%M
|
||||
date-alt = %Y-%m-%d %H:%M:%S
|
||||
|
||||
label = %date%
|
||||
label-foreground = ${colors.primary}
|
||||
|
||||
[settings]
|
||||
screenchange-reload = true
|
||||
pseudo-transparency = true
|
||||
|
||||
; vim:ft=dosini
|
||||
19
home/alex/services/polybar/default.nix
Normal file
19
home/alex/services/polybar/default.nix
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
let
|
||||
mypolybar = pkgs.polybar.override {
|
||||
alsaSupport = true;
|
||||
mpdSupport = true;
|
||||
pulseSupport = true;
|
||||
};
|
||||
in {
|
||||
config.home.packages = with pkgs; [ font-awesome material-design-icons ];
|
||||
|
||||
config.services.polybar = {
|
||||
enable = true;
|
||||
package = mypolybar;
|
||||
config = ./config.ini;
|
||||
script = ''
|
||||
polybar & disown
|
||||
'';
|
||||
};
|
||||
}
|
||||
8
home/alex/services/udiskie/default.nix
Normal file
8
home/alex/services/udiskie/default.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config.services.udiskie = {
|
||||
enable = true;
|
||||
tray = "always";
|
||||
};
|
||||
}
|
||||
|
|
@ -1,6 +1,10 @@
|
|||
import XMonad
|
||||
import XMonad.Util.Ungrab (unGrab)
|
||||
import XMonad.Util.EZConfig (additionalKeys, additionalKeysP)
|
||||
import XMonad.Layout.ThreeColumns
|
||||
import XMonad.Layout.Magnifier (magnifiercz')
|
||||
import XMonad.Hooks.EwmhDesktops
|
||||
import qualified XMonad.Hooks.ManageDocks as Docks
|
||||
import qualified XMonad.Util.EZConfig as EZ
|
||||
import Control.Monad (when)
|
||||
import Text.Printf (printf)
|
||||
import System.Posix.Process (executeFile)
|
||||
|
|
@ -20,21 +24,28 @@ compileRestart resume = do
|
|||
executeFile (cacheDir dirs </> compiledConfig) False args Nothing
|
||||
)
|
||||
|
||||
myLayout = Docks.avoidStruts (tiled ||| Mirror tiled ||| Full ||| columns)
|
||||
where
|
||||
tiled = Tall nmaster delta ratio
|
||||
columns = magnifiercz' 1.3 $ ThreeColMid nmaster delta ratio
|
||||
nmaster = 1 -- default number of windows in the master pane
|
||||
ratio = 1/2 -- default proportion occupied by master pane
|
||||
delta = 3/100 -- percent of screen to increment when resizing
|
||||
|
||||
main :: IO ()
|
||||
main = getDirectories >>= launch myConfig
|
||||
|
||||
myConfig = defaultConfig
|
||||
myConfig = ewmhFullscreen $ ewmh $ Docks.docks $ def
|
||||
{ modMask = mod4Mask -- Use Super instead of Alt
|
||||
, terminal = "alacritty"
|
||||
, layoutHook = myLayout
|
||||
}
|
||||
`additionalKeys`
|
||||
[ ( (mod4Mask,xK_r), compileRestart True)
|
||||
, ( (mod4Mask,xK_q), restart "xmonad" True )
|
||||
]
|
||||
`additionalKeysP`
|
||||
`EZ.additionalKeysP`
|
||||
[ ("M-S-z", spawn "xscreensaver-command -lock")
|
||||
, ("M-C-s", unGrab *> spawn "scrot -s" )
|
||||
, ("M-f" , spawn "firefox" )
|
||||
, ("M-S-r", compileRestart True)
|
||||
, ("M-S-q", restart "xmonad" True)
|
||||
, ("M-C-s", unGrab *> spawn "scrot -s")
|
||||
, ("M-b", sendMessage Docks.ToggleStruts)
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
services = {
|
||||
config.services = {
|
||||
upower.enable = true;
|
||||
|
||||
xserver = {
|
||||
|
|
@ -9,9 +9,10 @@
|
|||
enable = true;
|
||||
enableContribAndExtras = true;
|
||||
config = ./config.hs;
|
||||
extraPackages = hp: [ hp.dbus hp.monad-logger hp.xmonad-contrib ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.upower.enable = true;
|
||||
config.systemd.services.upower.enable = true;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue