Update
This commit is contained in:
parent
5d399c7700
commit
10f6634765
53
config/i3/alacritty/alacritty.yml
Normal file
53
config/i3/alacritty/alacritty.yml
Normal file
@ -0,0 +1,53 @@
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
##
|
||||
## Configuration for Alacritty, the GPU enhanced terminal emulator.
|
||||
## It's a very basic and simple config file, for full configuration...
|
||||
## See, /usr/share/doc/alacritty/example/alacritty.yml
|
||||
|
||||
## Import files (Colors, Fonts, Etc)
|
||||
import:
|
||||
- ~/.config/i3/alacritty/colors.yml
|
||||
- ~/.config/i3/alacritty/fonts.yml
|
||||
|
||||
## Set environment variables
|
||||
env:
|
||||
TERM: alacritty
|
||||
WINIT_X11_SCALE_FACTOR: '1.0'
|
||||
|
||||
## Terminal window settings
|
||||
window:
|
||||
dimensions:
|
||||
columns: 82
|
||||
lines: 24
|
||||
|
||||
padding:
|
||||
x: 10
|
||||
y: 10
|
||||
|
||||
decorations: full
|
||||
startup_mode: Windowed
|
||||
dynamic_title: true
|
||||
|
||||
## scrolling
|
||||
history: 10000
|
||||
multiplier: 3
|
||||
|
||||
## Background opacity
|
||||
opacity: 0.92
|
||||
|
||||
## Cursor
|
||||
cursor:
|
||||
style:
|
||||
shape: Block
|
||||
blinking: On
|
||||
|
||||
unfocused_hollow: false
|
||||
|
||||
## Live config reload
|
||||
live_config_reload: true
|
||||
|
||||
## Shell
|
||||
#shell:
|
||||
# program: /bin/zsh
|
||||
# args:
|
||||
# - --login
|
||||
29
config/i3/alacritty/colors.yml
Normal file
29
config/i3/alacritty/colors.yml
Normal file
@ -0,0 +1,29 @@
|
||||
## Colors configuration
|
||||
colors:
|
||||
# Default colors
|
||||
primary:
|
||||
# background: '#282828'
|
||||
background: '#000000'
|
||||
foreground: '#ebdbb2'
|
||||
|
||||
# Normal colors
|
||||
normal:
|
||||
black: '#3C3C3C'
|
||||
red: '#cc241d'
|
||||
green: '#98971a'
|
||||
yellow: '#d79921'
|
||||
blue: '#458588'
|
||||
magenta: '#b16286'
|
||||
cyan: '#689d6a'
|
||||
white: '#a89984'
|
||||
|
||||
# Bright colors
|
||||
bright:
|
||||
black: '#928374'
|
||||
red: '#fb4934'
|
||||
green: '#b8bb26'
|
||||
yellow: '#fabd2f'
|
||||
blue: '#83a598'
|
||||
magenta: '#d3869b'
|
||||
cyan: '#8ec07c'
|
||||
white: '#ebdbb2'
|
||||
37
config/i3/alacritty/fonts.yml
Normal file
37
config/i3/alacritty/fonts.yml
Normal file
@ -0,0 +1,37 @@
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
##
|
||||
## Font configuration
|
||||
|
||||
font:
|
||||
# Normal (roman) font face
|
||||
normal:
|
||||
family: "JetBrainsMono Nerd Font"
|
||||
#style: Regular
|
||||
|
||||
# Bold font face
|
||||
bold:
|
||||
family: "JetBrainsMono Nerd Font"
|
||||
#style: Bold
|
||||
|
||||
# Italic font face
|
||||
italic:
|
||||
family: "JetBrainsMono Nerd Font"
|
||||
#style: Italic
|
||||
|
||||
# Bold italic font face
|
||||
bold_italic:
|
||||
family: "JetBrainsMono Nerd Font"
|
||||
#style: Bold Italic
|
||||
|
||||
# Point size
|
||||
size: 16
|
||||
|
||||
# Offset
|
||||
#offset:
|
||||
# x: 0
|
||||
# y: 0
|
||||
|
||||
# Glyph offset
|
||||
#glyph_offset:
|
||||
# x: 0
|
||||
# y: 0
|
||||
552
config/i3/config
552
config/i3/config
@ -1,334 +1,326 @@
|
||||
# Start i3bar to display a workspace bar (plus the system information i3status
|
||||
# finds out, if available)
|
||||
#bar {
|
||||
#status_command i3status
|
||||
#}
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
##
|
||||
## i3wm configuration for Archcraft
|
||||
##
|
||||
## i3 config file (v4)
|
||||
|
||||
# This file has been auto-generated by i3-config-wizard(1).
|
||||
# It will not be overwritten, so edit it as you like.
|
||||
#
|
||||
# Should you change your keyboard layout some time, delete
|
||||
# this file and re-run i3-config-wizard(1).
|
||||
#
|
||||
##-- Include Config Files ----------------------
|
||||
|
||||
# i3 config file (v4)
|
||||
#
|
||||
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
|
||||
#
|
||||
## Tilde expands to the user’s home directory:
|
||||
#include ~/.config/i3/01_theme.conf
|
||||
|
||||
set $mod Mod4
|
||||
## Environment variables are expanded:
|
||||
#include $HOME/.config/i3/01_theme.conf
|
||||
|
||||
# Font for window titles. Will also be used by the bar unless a different font
|
||||
# is used in the bar {} block below.
|
||||
font pango:DejaVu Sans Mono 10
|
||||
## Wildcards are expanded:
|
||||
#include ~/.config/i3/config.d/*.conf
|
||||
|
||||
# This font is widely installed, provides lots of unicode glyphs, right-to-left
|
||||
# text rendering and scalability on retina/hidpi displays (thanks to pango).
|
||||
#font pango:DejaVu Sans Mono 8
|
||||
## Command substitution:
|
||||
#include ~/.config/i3/`hostname`.conf
|
||||
|
||||
# The combination of xss-lock, nm-applet and pactl is a popular choice, so
|
||||
# they are included here as an example. Modify as you see fit.
|
||||
## i3 changes the working directory while parsing a config file
|
||||
## so that relative paths are interpreted relative to the directory
|
||||
## of the config file that contains the path:
|
||||
#include 01_theme.conf
|
||||
|
||||
# xss-lock zen grabs a logind suspend inhibit lock and will use i3lock to lock the
|
||||
# screen before suspend.
|
||||
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
|
||||
## To list all loaded configuration files, run `i3 --moreversion`
|
||||
|
||||
# NetworkManager is the most popular way to manage wireless networks on Linux,
|
||||
# and nm-applet is a desktop environment-independent system tray GUI for it.
|
||||
exec --no-startup-id nm-applet
|
||||
#------
|
||||
|
||||
exec --no-startup-id telegram-desktop
|
||||
# exec --no-startup-id syncthing-gtk
|
||||
exec --no-startup-id keepass
|
||||
exec --no-startup-id onboard
|
||||
exec --no-startup-id touchegg
|
||||
exec --no-startup-id xscreensaver
|
||||
# exec --no-startup-id mailspring
|
||||
# exec --no-startup-id minetime
|
||||
## Load i3 config files
|
||||
include ~/.config/i3/config.d/*.conf
|
||||
|
||||
# No border :)
|
||||
default_border pixel 1
|
||||
default_floating_border none
|
||||
# Default colors
|
||||
# class border backgr. text indicator child_border
|
||||
client.focused #ffffff #888888 #000000 #ffffff #888888
|
||||
client.focused_inactive #333333 #5f676a #ffffff #484e50 #5f676a
|
||||
client.unfocused #a000ff #040404 #888888 #444444 #444444
|
||||
client.urgent #2f343a #600099 #ffffff #600099 #600099
|
||||
client.placeholder #000000 #0c0c0c #ffffff #000000 #0c0c0c
|
||||
## Enable/Disable i3 bar
|
||||
#include ~/.config/i3/i3status/statusbar.conf
|
||||
|
||||
client.background #000000
|
||||
##-- Mod Keys ----------------------------------
|
||||
set $MOD Mod4
|
||||
set $ALT Mod1
|
||||
|
||||
# Use pactl to adjust volume in PulseAudio.
|
||||
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +8%
|
||||
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -7%
|
||||
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle
|
||||
##-- General Settings --------------------------
|
||||
|
||||
# Brightness settings
|
||||
bindsym XF86MonBrightnessUp exec --no-startup-id xbacklight -inc 5
|
||||
bindsym XF86MonBrightnessDown exec --no-startup-id xbacklight -dec 5
|
||||
## Floating Modifier
|
||||
##
|
||||
## To move floating windows with your mouse, you can either grab their titlebar
|
||||
## or configure the so-called floating modifier which you can then press and click
|
||||
## anywhere in the window itself to move it.
|
||||
##
|
||||
## When holding the floating modifier, you can resize a floating window by pressing
|
||||
## the right mouse button on it and moving around while holding it.
|
||||
## If you hold the shift button as well, the resize will be proportional
|
||||
## (the aspect ratio will be preserved).
|
||||
floating_modifier $MOD
|
||||
|
||||
# Transparent lock
|
||||
bindsym $mod+i exec xtrlock
|
||||
#------
|
||||
|
||||
# Multiple display settings
|
||||
bindsym XF86Display exec --no-startup-id arandr
|
||||
## Orientation for new workspaces
|
||||
##
|
||||
## New workspaces get a reasonable default orientation: Wide-screen monitors
|
||||
## (anything wider than high) get horizontal orientation, rotated monitors
|
||||
## (anything higher than wide) get vertical orientation.
|
||||
##
|
||||
## Syntax: default_orientation horizontal|vertical|auto
|
||||
default_orientation auto
|
||||
|
||||
# Use Mouse+$mod to drag floating windows to their wanted position
|
||||
floating_modifier $mod
|
||||
#------
|
||||
|
||||
# start a terminal
|
||||
bindsym $mod+Return exec i3-sensible-terminal
|
||||
## Layout mode for new containers
|
||||
##
|
||||
## This option determines in which mode new containers on workspace level will start.
|
||||
##
|
||||
## Syntax: workspace_layout default|stacking|tabbed
|
||||
workspace_layout default
|
||||
|
||||
# kill focused window
|
||||
bindsym $mod+w kill
|
||||
#------
|
||||
|
||||
# start dmenu (a program launcher)
|
||||
#bindsym $mod+r exec dmenu_run
|
||||
bindsym $mod+r exec --no-startup-id ~/.config/rofi/bin/menu_powermenu
|
||||
#bindsym $mod+r exec --no-startup-id ~/rofi/files/powermenu/type-2/powermenu.sh
|
||||
# start rofi
|
||||
bindsym $mod+p exec "rofi -modes combi -show combi run,window"
|
||||
# switch rofi
|
||||
bindsym $mod+q exec rofi -show window
|
||||
# rofi fb
|
||||
bindsym $mod+g exec rofi -show file-browser-extended
|
||||
# ssh rofi
|
||||
#bindsym $mod+c exec rofi -show ssh
|
||||
bindsym $mod+c exec --no-startup-id ~/.config/rofi/bin/menu_time
|
||||
# lock screen
|
||||
bindsym $mod+o exec ~/lock.sh
|
||||
#bindsym $mod+o exec slimlock
|
||||
# ristretto
|
||||
bindsym $mod+e exec nemo
|
||||
## Window title alignment
|
||||
##
|
||||
## This option determines the window title’s text alignment. Default is left
|
||||
##
|
||||
## Syntax: title_align left|center|right
|
||||
title_align center
|
||||
|
||||
# There also is the (new) i3-dmenu-desktop which only displays applications
|
||||
# shipping a .desktop file. It is a wrapper around dmenu, so you need that
|
||||
# installed.
|
||||
# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
|
||||
## Print all window titles in format of 'class | title'
|
||||
for_window [class=".*"] title_format "%class | %title"
|
||||
|
||||
# change focus
|
||||
bindsym $mod+h focus left
|
||||
bindsym $mod+j focus down
|
||||
bindsym $mod+k focus up
|
||||
bindsym $mod+l focus right
|
||||
## Enable window icons for all windows
|
||||
for_window [all] title_window_icon off
|
||||
|
||||
# alternatively, you can use the cursor keys:
|
||||
bindsym $mod+Left focus left
|
||||
bindsym $mod+Down focus down
|
||||
bindsym $mod+Up focus up
|
||||
bindsym $mod+Right focus right
|
||||
## Enable window icons for all windows with extra horizontal padding
|
||||
#for_window [all] title_window_icon padding 5px
|
||||
|
||||
# move focused window
|
||||
bindsym $mod+Shift+h move left
|
||||
bindsym $mod+Shift+j move down
|
||||
bindsym $mod+Shift+k move up
|
||||
bindsym $mod+Shift+l move right
|
||||
#------
|
||||
|
||||
# alternatively, you can use the cursor 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
|
||||
## Default border style for new windows
|
||||
##
|
||||
## This option determines which border style new windows will have. The default is `normal`.
|
||||
## Note that `default_floating_border` applies only to windows which are starting out
|
||||
## as floating windows, e.g., dialog windows, but not windows that are floated later on.
|
||||
##
|
||||
## Setting border style to `pixel` eliminates title bars. The border style `normal`
|
||||
## allows you to adjust edge border width while keeping your title bar.
|
||||
##
|
||||
## Syntax:
|
||||
#default_border normal|none|pixel
|
||||
#default_border normal|pixel <px>
|
||||
#default_floating_border normal|none|pixel
|
||||
#default_floating_border normal|pixel <px>
|
||||
#default_border pixel 2
|
||||
#default_floating_border pixel 2
|
||||
|
||||
# Resizing windows
|
||||
bindsym $mod+Ctrl+Shift+Up resize shrink height 10 px or 10 ppt
|
||||
bindsym $mod+Ctrl+Shift+Down resize grow height 10 px or 10 ppt
|
||||
bindsym $mod+Ctrl+Shift+Right resize shrink width 10 px or 10 ppt
|
||||
bindsym $mod+Ctrl+Shift+Left resize grow width 10 px or 10 ppt
|
||||
#------
|
||||
|
||||
bindsym $mod+Ctrl+Shift+k resize shrink height 10 px or 10 ppt
|
||||
bindsym $mod+Ctrl+Shift+j resize grow height 10 px or 10 ppt
|
||||
bindsym $mod+Ctrl+Shift+l resize shrink width 10 px or 10 ppt
|
||||
bindsym $mod+Ctrl+Shift+h resize grow width 10 px or 10 ppt
|
||||
## Hiding borders adjacent to the screen edges
|
||||
##
|
||||
## You can hide container borders adjacent to the screen edges using `hide_edge_borders`
|
||||
## (the default is none). Hiding borders is useful if you are using scrollbars,
|
||||
## or do not want to waste even two pixels in displayspace.
|
||||
##
|
||||
## The `smart` setting hides borders on workspaces with only one window visible,
|
||||
## but keeps them on workspaces with multiple windows visible.
|
||||
##
|
||||
## The `smart_no_gaps` setting hides edge-specific borders of a container if the
|
||||
## container is the only container on its workspace and the gaps to the screen edge are 0.
|
||||
##
|
||||
## Syntax: hide_edge_borders none|vertical|horizontal|both|smart|smart_no_gaps
|
||||
hide_edge_borders none
|
||||
|
||||
# split in horizontal orientation
|
||||
bindsym $mod+b split h
|
||||
#------
|
||||
|
||||
# split in vertical orientation
|
||||
bindsym $mod+v split v
|
||||
## Smart borders
|
||||
##
|
||||
## Smart borders will draw borders on windows only if there is more than one window
|
||||
## in a workspace. This feature can also be enabled only if the gap size between
|
||||
## window and screen edge is 0.
|
||||
##
|
||||
## Syntax: smart_borders on|off|no_gaps
|
||||
#smart_borders on
|
||||
|
||||
# enter fullscreen mode for the focused container
|
||||
bindsym $mod+f fullscreen toggle
|
||||
#------
|
||||
|
||||
# change container layout (stacked, tabbed, toggle split)
|
||||
bindsym $mod+s layout stacking
|
||||
bindsym $mod+t layout tabbed
|
||||
bindsym $mod+a layout toggle split
|
||||
## Don’t focus window upon opening
|
||||
##
|
||||
## When a new window appears, it will be focused. The `no_focus` directive allows
|
||||
## preventing this from happening and must be used in combination with [command_criteria].
|
||||
##
|
||||
## Syntax: no_focus <criteria>
|
||||
#no_focus [window_role="pop-up"]
|
||||
|
||||
# toggle tiling / floating
|
||||
bindsym $mod+Shift+space floating toggle
|
||||
#------
|
||||
|
||||
# change focus between tiling / floating windows
|
||||
bindsym $mod+space focus mode_toggle
|
||||
## Automatically putting workspaces on specific screens
|
||||
##
|
||||
## If you assign clients to workspaces, it might be handy to put the workspaces on
|
||||
## specific screens. Also, the assignment of workspaces to screens will determine
|
||||
## which workspace i3 uses for a new screen when adding screens or when starting
|
||||
## (e.g., by default it will use 1 for the first screen, 2 for the second screen and so on).
|
||||
##
|
||||
## Syntax: workspace <workspace> output <output1> [output2]…
|
||||
##
|
||||
## The `output` is the name of the RandR output you attach your screen to.
|
||||
## On a laptop, you might have VGA1 and LVDS1 as output names.
|
||||
## You can see the available outputs by running `xrandr --current`
|
||||
#workspace 1 output LVDS1
|
||||
#workspace 2 output primary
|
||||
#workspace 5 output VGA1 LVDS1
|
||||
#workspace "2: vim" output VGA1
|
||||
|
||||
# focus the parent container
|
||||
# bindsym $mod+a focus parent
|
||||
#------
|
||||
|
||||
# focus the child container
|
||||
#bindsym $mod+d focus child
|
||||
## Interprocess communication
|
||||
##
|
||||
## i3 uses Unix sockets to provide an IPC interface. This allows third-party programs
|
||||
## to get information from i3, such as the current workspaces (to display a workspace bar), and to control i3.
|
||||
##
|
||||
## You can override the default path through the environment-variable `I3SOCK`
|
||||
## or by specifying the `ipc-socket` directive.This is discouraged, though,
|
||||
## since i3 does the right thing by default. If you decide to change it,
|
||||
## it is strongly recommended to set this to a location in your home directory
|
||||
## so that no other user can create that directory.
|
||||
#ipc-socket ~/.i3/i3-ipc.sock
|
||||
|
||||
# Define names for default workspaces for which we configure key bindings later on.
|
||||
# We use variables to avoid repeating the names in multiple places.
|
||||
set $ws1 "1"
|
||||
set $ws2 "2"
|
||||
set $ws3 "3"
|
||||
set $ws4 "4"
|
||||
set $ws5 "5"
|
||||
set $ws6 "6"
|
||||
set $ws7 "7"
|
||||
set $ws8 "8"
|
||||
set $ws9 "9"
|
||||
set $ws10 "10"
|
||||
set $ws11 "A"
|
||||
set $ws12 "B"
|
||||
set $ws13 "C"
|
||||
set $ws14 "D"
|
||||
set $ws15 "E"
|
||||
set $ws16 "F"
|
||||
set $ws17 "G"
|
||||
set $ws18 "H"
|
||||
set $ws19 "I"
|
||||
set $ws20 "J"
|
||||
#------
|
||||
|
||||
# switch to workspace
|
||||
bindsym $mod+1 workspace $ws1
|
||||
bindsym $mod+2 workspace $ws2
|
||||
bindsym $mod+3 workspace $ws3
|
||||
bindsym $mod+4 workspace $ws4
|
||||
bindsym $mod+5 workspace $ws5
|
||||
bindsym $mod+6 workspace $ws6
|
||||
bindsym $mod+7 workspace $ws7
|
||||
bindsym $mod+8 workspace $ws8
|
||||
bindsym $mod+9 workspace $ws9
|
||||
bindsym $mod+0 workspace $ws10
|
||||
bindsym $mod+F1 workspace $ws11
|
||||
bindsym $mod+F2 workspace $ws12
|
||||
bindsym $mod+F3 workspace $ws13
|
||||
bindsym $mod+F4 workspace $ws14
|
||||
bindsym $mod+F5 workspace $ws15
|
||||
bindsym $mod+F6 workspace $ws16
|
||||
bindsym $mod+F7 workspace $ws17
|
||||
bindsym $mod+F8 workspace $ws18
|
||||
bindsym $mod+F9 workspace $ws19
|
||||
bindsym $mod+F10 workspace $ws20
|
||||
## Focus follows mouse
|
||||
##
|
||||
## By default, window focus follows your mouse movements as the mouse crosses window borders.
|
||||
## However, if you have a setup where your mouse usually is in your way
|
||||
## (like a touchpad on your laptop which you do not want to disable completely),
|
||||
## you might want to disable `focus follows mouse` and control focus only by using your keyboard.
|
||||
## The mouse will still be useful inside the currently active window (for example to click on links in your browser window).
|
||||
##
|
||||
## Syntax: focus_follows_mouse yes|no
|
||||
focus_follows_mouse yes
|
||||
|
||||
# Scratchpad
|
||||
# Make the currently focused window a scratchpad
|
||||
bindsym $mod+Shift+minus move scratchpad
|
||||
# Show the first scratchpad window
|
||||
bindsym $mod+minus scratchpad show
|
||||
#------
|
||||
|
||||
# move focused container to workspace
|
||||
bindsym $mod+Shift+1 move container to workspace $ws1
|
||||
bindsym $mod+Shift+2 move container to workspace $ws2
|
||||
bindsym $mod+Shift+3 move container to workspace $ws3
|
||||
bindsym $mod+Shift+4 move container to workspace $ws4
|
||||
bindsym $mod+Shift+5 move container to workspace $ws5
|
||||
bindsym $mod+Shift+6 move container to workspace $ws6
|
||||
bindsym $mod+Shift+7 move container to workspace $ws7
|
||||
bindsym $mod+Shift+8 move container to workspace $ws8
|
||||
bindsym $mod+Shift+9 move container to workspace $ws9
|
||||
bindsym $mod+Shift+0 move container to workspace $ws10
|
||||
bindsym $mod+Shift+F1 move container to workspace $ws11
|
||||
bindsym $mod+Shift+F2 move container to workspace $ws12
|
||||
bindsym $mod+Shift+F3 move container to workspace $ws13
|
||||
bindsym $mod+Shift+F4 move container to workspace $ws14
|
||||
bindsym $mod+Shift+F5 move container to workspace $ws15
|
||||
bindsym $mod+Shift+F6 move container to workspace $ws16
|
||||
bindsym $mod+Shift+F7 move container to workspace $ws17
|
||||
bindsym $mod+Shift+F8 move container to workspace $ws18
|
||||
bindsym $mod+Shift+F9 move container to workspace $ws19
|
||||
bindsym $mod+Shift+F10 move container to workspace $ws20
|
||||
## Mouse warping
|
||||
##
|
||||
## By default, when switching focus to a window on a different output
|
||||
## (e.g. focusing a window on workspace 3 on output VGA-1, coming from workspace 2 on LVDS-1),
|
||||
## the mouse cursor is warped to the center of that window.
|
||||
##
|
||||
## With the `mouse_warping` option, you can control when the mouse cursor should be warped.
|
||||
## `none` disables warping entirely, whereas `output` is the default behavior described above.
|
||||
##
|
||||
## Syntax: mouse_warping output|none
|
||||
mouse_warping none
|
||||
|
||||
# reload the configuration file
|
||||
bindsym $mod+Shift+c reload
|
||||
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||
bindsym $mod+Shift+r restart
|
||||
# exit i3 (logs you out of your X session)
|
||||
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
|
||||
#
|
||||
#resize window (you can also use the mouse for that)
|
||||
mode "resize" {
|
||||
# These bindings trigger as soon as you enter the resize mode
|
||||
#------
|
||||
|
||||
# Pressing left will shrink the window’s width.
|
||||
# Pressing right will grow the window’s width.
|
||||
# Pressing up will shrink the window’s height.
|
||||
# Pressing down will grow the window’s height.
|
||||
bindsym j resize shrink width 10 px or 10 ppt
|
||||
bindsym k resize grow height 10 px or 10 ppt
|
||||
bindsym l resize shrink height 10 px or 10 ppt
|
||||
bindsym semicolon resize grow width 10 px or 10 ppt
|
||||
## Popups during fullscreen mode
|
||||
##
|
||||
## When you are in fullscreen mode, some applications still open popup windows (take Xpdf for example).
|
||||
## This is because these applications might not be aware that they are in fullscreen mode
|
||||
## (they do not check the corresponding hint).
|
||||
## There are three things which are possible to do in this situation.
|
||||
##
|
||||
## Syntax: popup_during_fullscreen smart|ignore|leave_fullscreen
|
||||
popup_during_fullscreen smart
|
||||
|
||||
# same bindings, but for the arrow keys
|
||||
bindsym Left resize shrink width 10 px or 10 ppt
|
||||
bindsym Down resize grow height 10 px or 10 ppt
|
||||
bindsym Up resize shrink height 10 px or 10 ppt
|
||||
bindsym Right resize grow width 10 px or 10 ppt
|
||||
#------
|
||||
|
||||
# back to normal: Enter or Escape or $mod+r
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym $mod+r mode "default"
|
||||
}
|
||||
#
|
||||
# Supposed to kill with center button
|
||||
bindsym --release button2 killa
|
||||
## Focus wrapping
|
||||
##
|
||||
## By default, when in a container with several windows or child containers,
|
||||
## the opposite window will be focused when trying to move the focus over the edge of
|
||||
## a container (and there are no other containers in that direction) — the focus wraps.
|
||||
##
|
||||
## Syntax: focus_wrapping yes|no|force|workspace
|
||||
# Disable focus wrapping
|
||||
#focus_wrapping no
|
||||
# Force focus wrapping
|
||||
#focus_wrapping force
|
||||
|
||||
# Custom config window
|
||||
for_window [class="vlc"] floating enable
|
||||
for_window [class="feh"] floating enable
|
||||
#------
|
||||
|
||||
# Assign to desktop
|
||||
assign [class="Firefox"] 1
|
||||
assign [class="KeePass"] 3
|
||||
assign [class="Clementine"] 8
|
||||
assign [class="Telegram"] 9
|
||||
assign [class="Mailspring"] 7
|
||||
assign [class="MineTime"] 7
|
||||
## Forcing Xinerama
|
||||
##
|
||||
## As explained in-depth in https://i3wm.org/docs/multi-monitor.html, some X11 video
|
||||
## drivers (especially the nVidia binary driver) only provide support for Xinerama
|
||||
## instead of RandR. In such a situation, i3 must be told to use the inferior Xinerama
|
||||
## API explicitly and therefore don’t provide support for reconfiguring your screens
|
||||
## on the fly (they are read only once on startup and that’s it).
|
||||
##
|
||||
## Syntax: force_xinerama yes|no
|
||||
#force_xinerama yes
|
||||
|
||||
#bindsym $mod+Return mode "resize"
|
||||
#------
|
||||
|
||||
# Workspace config
|
||||
#workspace 1 output DisplayPort-2
|
||||
## Automatic back-and-forth when switching to the current workspace
|
||||
##
|
||||
## This configuration directive enables automatic `workspace back_and_forth`
|
||||
## when switching to the workspace that is currently focused.
|
||||
##
|
||||
## Syntax: workspace_auto_back_and_forth yes|no
|
||||
workspace_auto_back_and_forth yes
|
||||
|
||||
# i3 bar configuration
|
||||
# ----------------------------------------------------------------------------
|
||||
#------
|
||||
|
||||
# Start i3bar to display a workspace bar (plus the system information i3status
|
||||
# finds out, if available)
|
||||
bar {
|
||||
# status_command i3status --
|
||||
status_command py3status
|
||||
## Delaying urgency hint reset on workspace change
|
||||
##
|
||||
## If an application on another workspace sets an urgency hint, switching to this
|
||||
## workspace might lead to immediate focus of the application, which also means the
|
||||
## window decoration color would be immediately reset to `client.focused`.
|
||||
## This might make it unnecessarily hard to tell which window originally raised the event.
|
||||
##
|
||||
## In order to prevent this, you can tell i3 to delay resetting the urgency state by
|
||||
## a certain time using the `force_display_urgency_hint` directive.
|
||||
## Setting the value to 0 disables this feature. The default is 500ms.
|
||||
##
|
||||
## Syntax: force_display_urgency_hint <timeout> ms
|
||||
force_display_urgency_hint 500 ms
|
||||
|
||||
position top
|
||||
tray_output DisplayPort-2
|
||||
#------
|
||||
|
||||
colors {
|
||||
background #000000
|
||||
statusline #a000ff
|
||||
separator #aaaaaa
|
||||
## Focus on window activation
|
||||
##
|
||||
## If a window is activated, e.g., via `google-chrome www.google.com`, it may request to take focus.
|
||||
## Since this might not be preferable, different reactions can be configured.
|
||||
##
|
||||
## Note that this might not affect windows that are being opened.
|
||||
## To prevent new windows from being focused.
|
||||
##
|
||||
## Syntax: focus_on_window_activation smart|urgent|focus|none
|
||||
focus_on_window_activation smart
|
||||
|
||||
# Default conf
|
||||
# focused_workspace #4c7899 #285577 #ffffff
|
||||
focused_workspace #ffffff #888888 #000000
|
||||
active_workspace #888888 #444444 #ffffff
|
||||
inactive_workspace #888888 #000000 #a000ff
|
||||
urgent_workspace #2f343a #600099 #ffffff
|
||||
binding_mode #2f343a #600099 #ffffff
|
||||
}
|
||||
#------
|
||||
|
||||
separator_symbol "ʃ"
|
||||
#separator_symbol "❰"
|
||||
#separator_symbol "❱"
|
||||
#separator_symbol " ▷ "
|
||||
#separator_symbol " ∠ "
|
||||
#separator_symbol "|"
|
||||
#separator_symbol "ǁ"
|
||||
## Drawing marks on window decoration
|
||||
##
|
||||
## If activated, marks on windows are drawn in their window decoration.
|
||||
## However, any mark starting with an underscore in its name (_) will not be drawn
|
||||
## even if this option is activated.
|
||||
##
|
||||
## The default for this option is yes.
|
||||
##
|
||||
## Syntax: show_marks yes|no
|
||||
show_marks yes
|
||||
|
||||
strip_workspace_name no
|
||||
strip_workspace_numbers yes
|
||||
#------
|
||||
|
||||
binding_mode_indicator no
|
||||
}
|
||||
## Tiling drag
|
||||
##
|
||||
## You can configure how to initiate the tiling drag feature.
|
||||
##
|
||||
## Syntax:
|
||||
#tiling_drag off
|
||||
#tiling_drag modifier|titlebar [modifier|titlebar]
|
||||
tiling_drag modifier titlebar
|
||||
|
||||
##-- Autostart ---------------------------------
|
||||
|
||||
## Automatically starting applications on i3 startup
|
||||
##
|
||||
## By using the `exec` keyword outside a keybinding, you can configure which commands
|
||||
## will be performed by i3 on initial startup. `exec` commands will not run when
|
||||
## restarting i3, if you need a command to run also when restarting i3 you should
|
||||
## use the `exec_always` keyword. These commands will be run in order.
|
||||
##
|
||||
## Syntax:
|
||||
#exec [--no-startup-id] <command>
|
||||
#exec_always [--no-startup-id] <command>
|
||||
exec_always --no-startup-id ~/.config/i3/scripts/i3_autostart
|
||||
|
||||
## The --no-startup-id parameter disables startup-notification support for this particular exec command.
|
||||
## With startup-notification, i3 can make sure that a window appears on the workspace on which you used the exec command.
|
||||
|
||||
91
config/i3/config.d/01_theme.conf
Normal file
91
config/i3/config.d/01_theme.conf
Normal file
@ -0,0 +1,91 @@
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
##
|
||||
## Theme
|
||||
|
||||
##-- Theme Variables ---------------------
|
||||
|
||||
#~ Fonts
|
||||
set $i3_fonts JetBrainsMono Nerd Font 8
|
||||
|
||||
#~ Border
|
||||
set $i3_border_size 1
|
||||
set $i3_border_style pixel
|
||||
|
||||
#~ Gaps
|
||||
set $i3_gaps_inner 15
|
||||
set $i3_gaps_outer 0
|
||||
set $i3_gaps_smart off
|
||||
|
||||
#~ Colors
|
||||
set $i3_cl_col_bg #282828
|
||||
set $i3_cl_col_fg #ebdbb2
|
||||
set $i3_cl_col_in #98971a
|
||||
set $i3_cl_col_afoc #ffc86a
|
||||
set $i3_cl_col_ifoc #458588
|
||||
set $i3_cl_col_ufoc #353535
|
||||
set $i3_cl_col_urgt #b16286
|
||||
set $i3_cl_col_phol #282828
|
||||
|
||||
##-- Fonts (Global) ----------------------
|
||||
|
||||
## i3 has support for both X core fonts and FreeType fonts (through Pango) to render window titles.
|
||||
## To generate an X core font description, you can use `xfontsel`
|
||||
#font <X core font description>
|
||||
#font pango:<family list> [<style options>] <size>
|
||||
|
||||
## Examples
|
||||
#font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
|
||||
#font pango:DejaVu Sans Mono 10
|
||||
#font pango:DejaVu Sans Mono, Terminus Bold Semi-Condensed 11
|
||||
#font pango:Terminus 11px
|
||||
|
||||
font pango:$i3_fonts
|
||||
|
||||
##-- Border ------------------------------
|
||||
|
||||
## Default border style for new/existing windows
|
||||
for_window [class=".*"] border $i3_border_style $i3_border_size
|
||||
|
||||
##-- Gaps --------------------------------
|
||||
|
||||
## Gaps
|
||||
##
|
||||
## Since i3 4.22, you can configure window gaps. “Gaps” are added spacing between
|
||||
## windows (or split containers) and to the screen edges.
|
||||
##
|
||||
## Syntax:
|
||||
##
|
||||
## Inner gaps for all windows: space between two adjacent windows.
|
||||
#gaps inner <gap_size>[px]
|
||||
|
||||
## Outer gaps for all windows: space along the screen edges.
|
||||
#gaps outer|horizontal|vertical|top|left|bottom|right <gap_size>[px]
|
||||
|
||||
## Inner and outer gaps for all windows on a specific workspace.
|
||||
## <ws> can be a workspace number or name.
|
||||
#workspace <ws> gaps inner <gap_size>[px]
|
||||
#workspace <ws> gaps outer|horizontal|vertical|top|left|bottom|right <gap_size>[px]
|
||||
|
||||
## Enabling “Smart Gaps” means no gaps will be shown when there is
|
||||
## precisely one window or split container on the workspace.
|
||||
##
|
||||
## inverse_outer only enables outer gaps when there is exactly one
|
||||
## window or split container on the workspace.
|
||||
#smart_gaps on|off|inverse_outer
|
||||
|
||||
gaps inner $i3_gaps_inner
|
||||
gaps outer $i3_gaps_outer
|
||||
smart_gaps $i3_gaps_smart
|
||||
|
||||
##-- Colors ------------------------------
|
||||
|
||||
## You can change all colors which i3 uses to draw the window decorations.
|
||||
## Syntax: <colorclass> <border> <background> <text> <indicator> <child_border>
|
||||
|
||||
# class border backgr. text indicator child_border
|
||||
client.focused $i3_cl_col_afoc $i3_cl_col_afoc $i3_cl_col_bg $i3_cl_col_in $i3_cl_col_afoc
|
||||
client.focused_inactive $i3_cl_col_ifoc $i3_cl_col_ifoc $i3_cl_col_bg $i3_cl_col_in $i3_cl_col_ifoc
|
||||
client.unfocused $i3_cl_col_ufoc $i3_cl_col_ufoc $i3_cl_col_fg $i3_cl_col_in $i3_cl_col_ufoc
|
||||
client.urgent $i3_cl_col_urgt $i3_cl_col_urgt $i3_cl_col_fg $i3_cl_col_in $i3_cl_col_urgt
|
||||
client.placeholder $i3_cl_col_phol $i3_cl_col_phol $i3_cl_col_fg $i3_cl_col_in $i3_cl_col_phol
|
||||
client.background $i3_cl_col_bg
|
||||
249
config/i3/config.d/02_keybindings.conf
Normal file
249
config/i3/config.d/02_keybindings.conf
Normal file
@ -0,0 +1,249 @@
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
##
|
||||
## Keybindings
|
||||
|
||||
##-- Key Bindings ------------------------
|
||||
|
||||
## A keysym (key symbol) is a description for a specific symbol, like "a" or "b",
|
||||
## but also more strange ones like "underscore" instead of "_".
|
||||
## These are the ones you use in Xmodmap to remap your keys.
|
||||
## To get the current mapping of your keys, use `xmodmap -pke`.
|
||||
## To interactively enter a key and see what keysym it is configured to, use `xev`.
|
||||
##
|
||||
## Keycodes do not need to have a symbol assigned (handy for custom vendor hotkeys on some notebooks)
|
||||
## and they will not change their meaning as you switch to a different keyboard layout (when using `xmodmap`).
|
||||
##
|
||||
## If you often switch keyboard layouts but you want to keep your bindings in the
|
||||
## same physical location on the keyboard, use keycodes.
|
||||
## If you don’t switch layouts, and want a clean and simple config file, use keysyms.
|
||||
##
|
||||
## Available Modifiers: Mod1-Mod5, Shift, Control
|
||||
##
|
||||
## Syntax:
|
||||
# bindsym [--release] [<Group>+][<Modifiers>+]<keysym> command
|
||||
# bindcode [--release] [<Group>+][<Modifiers>+]<keycode> command
|
||||
|
||||
##-- Variables ---------------------------
|
||||
set $terminal ~/.config/i3/scripts/i3_term
|
||||
set $music_player ~/.config/i3/scripts/i3_music
|
||||
set $color_picker ~/.config/i3/scripts/i3_colorpicker
|
||||
set $brightness ~/.config/i3/scripts/i3_brightness
|
||||
set $volume ~/.config/i3/scripts/i3_volume
|
||||
set $screenshot ~/.config/i3/scripts/i3_screenshot
|
||||
set $alacritty alacritty --config-file ~/.config/i3/alacritty/alacritty.yml
|
||||
set $rofi_applets ~/.config/i3/scripts
|
||||
set $file_manager nemo
|
||||
set $text_editor nvim
|
||||
set $web_browser firefox
|
||||
|
||||
## -- Terminal --
|
||||
bindsym $MOD+Return exec --no-startup-id $terminal
|
||||
bindsym $MOD+Shift+Return exec --no-startup-id $terminal --float
|
||||
bindsym $MOD+$ALT+Return exec --no-startup-id $terminal --full
|
||||
|
||||
## -- GUI Apps --
|
||||
bindsym $MOD+Shift+f exec --no-startup-id $file_manager
|
||||
bindsym $MOD+Shift+e exec --no-startup-id $text_editor
|
||||
bindsym $MOD+Shift+w exec --no-startup-id $web_browser
|
||||
|
||||
## -- CLI Apps --
|
||||
bindsym $ALT+Control+v exec --no-startup-id "$alacritty -e vim"
|
||||
bindsym $ALT+Control+r exec --no-startup-id "$alacritty -e ranger"
|
||||
bindsym $ALT+Control+h exec --no-startup-id "$alacritty -e htop"
|
||||
bindsym $ALT+Control+m exec --no-startup-id $music_player
|
||||
|
||||
## -- Rofi Applets --
|
||||
bindsym $MOD+p exec --no-startup-id $rofi_applets/rofi_launcher -dpi 1
|
||||
bindsym $MOD+n exec --no-startup-id $rofi_applets/network_menu -dpi 1
|
||||
bindsym $MOD+r exec --no-startup-id $rofi_applets/rofi_powermenu -dpi 1
|
||||
bindsym $MOD+q exec --no-startup-id $rofi_applets/rofi_windows -dpi 1
|
||||
bindsym $MOD+m exec --no-startup-id $rofi_applets/rofi_music -dpi 1
|
||||
# bindsym $MOD+r exec --no-startup-id $rofi_applets/rofi_asroot
|
||||
# bindsym $MOD+s exec --no-startup-id $rofi_applets/rofi_screenshot
|
||||
bindsym $MOD+t exec --no-startup-id $rofi_applets/rofi_themes -dpi 1
|
||||
|
||||
## -- Function keys --
|
||||
bindsym XF86MonBrightnessUp exec --no-startup-id "$brightness --inc"
|
||||
bindsym XF86MonBrightnessDown exec --no-startup-id "$brightness --dec"
|
||||
bindsym XF86AudioRaiseVolume exec --no-startup-id "$volume --inc"
|
||||
bindsym XF86AudioLowerVolume exec --no-startup-id "$volume --dec"
|
||||
bindsym XF86AudioMute exec --no-startup-id "$volume --toggle"
|
||||
bindsym XF86AudioMicMute exec --no-startup-id "$volume --toggle-mic"
|
||||
bindsym XF86AudioNext exec --no-startup-id "mpc next"
|
||||
bindsym XF86AudioPrev exec --no-startup-id "mpc prev"
|
||||
bindsym XF86AudioPlay exec --no-startup-id "mpc toggle"
|
||||
bindsym XF86AudioStop exec --no-startup-id "mpc stop"
|
||||
|
||||
## -- Screenshots --
|
||||
bindsym Print exec --no-startup-id "$screenshot --now"
|
||||
bindsym Control+Print exec --no-startup-id "$screenshot --in5"
|
||||
# bindsym Shift+Print exec --no-startup-id "$screenshot --in10"
|
||||
bindsym Shift+Print exec --no-startup-id $rofi_applets/rofi_screenshot
|
||||
bindsym Control+Shift+Print exec --no-startup-id "$screenshot --win"
|
||||
bindsym $MOD+Print exec --no-startup-id "$screenshot --area"
|
||||
|
||||
## -- Misc --
|
||||
# bindsym --release $MOD+p exec --no-startup-id $color_picker
|
||||
bindsym $ALT+Control+l exec --no-startup-id "betterlockscreen --lock"
|
||||
|
||||
##-- WM Specific -------------------------
|
||||
|
||||
## Kill focused window
|
||||
##
|
||||
bindsym $MOD+w kill
|
||||
bindsym $MOD+c kill
|
||||
|
||||
#------
|
||||
|
||||
## Send Notification
|
||||
##
|
||||
set $send-notify exec --no-startup-id dunstify -u low -h string:x-dunst-stack-tag:i3config
|
||||
|
||||
## Splitting containers
|
||||
##
|
||||
## split in horizontal orientation
|
||||
bindsym $MOD+h split horizontal, $send-notify 'Split Horizontally'
|
||||
## split in vertical orientation
|
||||
bindsym $MOD+v split vertical, $send-notify 'Split Vertically'
|
||||
## toggle split
|
||||
#bindsym $MOD+g split toggle, $send-notify 'Split Mode'
|
||||
|
||||
#------
|
||||
|
||||
## Manipulating layout
|
||||
##
|
||||
## change container layout (stacked, tabbed, toggle split)
|
||||
## Set stacking layout
|
||||
bindsym $MOD+Shift+s layout stacking, $send-notify 'Layout - Stacking'
|
||||
## Set tabbed layout
|
||||
bindsym $MOD+Shift+t layout tabbed, $send-notify 'Layout - Tabbed'
|
||||
## Set default layout
|
||||
bindsym $MOD+Shift+d layout default, $send-notify 'Layout - Default'
|
||||
## Toggle between stacking/tabbed/split:
|
||||
bindsym $MOD+Shift+l layout toggle, $send-notify 'Cycling Layouts'
|
||||
## Toggle between horizontal/vertical:
|
||||
bindsym $MOD+Shift+v layout toggle split, $send-notify 'Layout - Hor/Vert'
|
||||
## Toggle fullscreen
|
||||
bindsym $MOD+f fullscreen toggle, $send-notify 'Toggled Fullscreen'
|
||||
## Toggle floating/tiling
|
||||
bindsym $MOD+space floating toggle, $send-notify 'Toggled Floating Mode'
|
||||
|
||||
#------
|
||||
|
||||
## Focusing containers
|
||||
##
|
||||
## Sets focus to the nearest container in the given direction.
|
||||
bindsym $MOD+Left focus left
|
||||
bindsym $MOD+Down focus down
|
||||
bindsym $MOD+Up focus up
|
||||
bindsym $MOD+Right focus right
|
||||
## Sets focus to the parent container of the current container.
|
||||
bindsym $MOD+a focus parent
|
||||
## The opposite of `focus parent`, sets the focus to the last focused child container.
|
||||
bindsym $MOD+d focus child
|
||||
## Automatically sets focus to the adjacent container.
|
||||
bindsym $MOD+Tab focus next
|
||||
## Toggles focus between floating/tiling containers.
|
||||
bindsym $MOD+Shift+space focus mode_toggle
|
||||
|
||||
#------
|
||||
|
||||
## Moving containers
|
||||
##
|
||||
## move focused window in the given direction.
|
||||
bindsym $MOD+Shift+Left move left
|
||||
bindsym $MOD+Shift+Down move down
|
||||
bindsym $MOD+Shift+Up move up
|
||||
bindsym $MOD+Shift+Right move right
|
||||
## Move floating container to the center of all outputs (floating only)
|
||||
bindsym $MOD+$ALT+c move absolute position center
|
||||
## Move container to the current position of the cursor (floating only)
|
||||
bindsym $MOD+$ALT+p move position mouse
|
||||
|
||||
#------
|
||||
|
||||
## Resizing containers/windows
|
||||
##
|
||||
bindsym $MOD+$ALT+Left resize shrink width 10 px or 10 ppt
|
||||
bindsym $MOD+$ALT+Down resize grow height 10 px or 10 ppt
|
||||
bindsym $MOD+$ALT+Up resize shrink height 10 px or 10 ppt
|
||||
bindsym $MOD+$ALT+Right resize grow width 10 px or 10 ppt
|
||||
|
||||
#------
|
||||
|
||||
## Sticky floating windows (floating only)
|
||||
##
|
||||
bindsym $MOD+Shift+o sticky toggle, $send-notify 'Toggled Sticky'
|
||||
|
||||
#------
|
||||
|
||||
## Changing border style
|
||||
##
|
||||
bindsym $MOD+y border toggle, $send-notify 'Toggled Borders'
|
||||
|
||||
#------
|
||||
|
||||
## Scratchpad
|
||||
##
|
||||
## Make the currently focused window a scratchpad
|
||||
bindsym $MOD+Shift+minus move scratchpad, $send-notify 'Scratchpad'
|
||||
## Show the first scratchpad window
|
||||
bindsym $MOD+minus scratchpad show
|
||||
|
||||
#------
|
||||
|
||||
## restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||
bindsym Ctrl+Shift+r restart, $send-notify 'i3wm Restarted!'
|
||||
## reload the configuration file
|
||||
bindsym $MOD+Shift+c reload, $send-notify 'Configuration Reloaded!'
|
||||
## quit i3 session
|
||||
bindsym $MOD+Shift+q exit
|
||||
|
||||
#------
|
||||
|
||||
## Changing (named) workspaces/moving to workspaces
|
||||
##
|
||||
## Define names for default workspaces for which we configure key bindings later on.
|
||||
## We use variables to avoid repeating the names in multiple places.
|
||||
set $ws1 "1"
|
||||
set $ws2 "2"
|
||||
set $ws3 "3"
|
||||
set $ws4 "4"
|
||||
set $ws5 "5"
|
||||
set $ws6 "6"
|
||||
set $ws7 "7"
|
||||
set $ws8 "8"
|
||||
set $ws9 "9"
|
||||
set $ws10 "10"
|
||||
|
||||
## switch to workspace
|
||||
bindsym $MOD+1 workspace number $ws1
|
||||
bindsym $MOD+2 workspace number $ws2
|
||||
bindsym $MOD+3 workspace number $ws3
|
||||
bindsym $MOD+4 workspace number $ws4
|
||||
bindsym $MOD+5 workspace number $ws5
|
||||
bindsym $MOD+6 workspace number $ws6
|
||||
bindsym $MOD+7 workspace number $ws7
|
||||
bindsym $MOD+8 workspace number $ws8
|
||||
bindsym $MOD+9 workspace number $ws9
|
||||
bindsym $MOD+0 workspace number $ws10
|
||||
|
||||
## move focused container to workspace
|
||||
bindsym $MOD+Shift+1 move container to workspace number $ws1
|
||||
bindsym $MOD+Shift+2 move container to workspace number $ws2
|
||||
bindsym $MOD+Shift+3 move container to workspace number $ws3
|
||||
bindsym $MOD+Shift+4 move container to workspace number $ws4
|
||||
bindsym $MOD+Shift+5 move container to workspace number $ws5
|
||||
bindsym $MOD+Shift+6 move container to workspace number $ws6
|
||||
bindsym $MOD+Shift+7 move container to workspace number $ws7
|
||||
bindsym $MOD+Shift+8 move container to workspace number $ws8
|
||||
bindsym $MOD+Shift+9 move container to workspace number $ws9
|
||||
bindsym $MOD+Shift+0 move container to workspace number $ws10
|
||||
|
||||
## move a container to the next/previous workspace
|
||||
bindsym $MOD+Control+Right "move container to workspace next, workspace next"
|
||||
bindsym $MOD+Control+Left "move container to workspace prev, workspace prev"
|
||||
|
||||
## switch between the current and the previously focused one
|
||||
bindsym $MOD+b workspace back_and_forth
|
||||
bindsym $MOD+Shift+b "move container to workspace back_and_forth, workspace back_and_forth"
|
||||
25
config/i3/config.d/03_mousebindings.conf
Normal file
25
config/i3/config.d/03_mousebindings.conf
Normal file
@ -0,0 +1,25 @@
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
##
|
||||
## Mousebindings
|
||||
|
||||
##-- Mouse Bindings ------------------------
|
||||
|
||||
## A mouse binding makes i3 execute a command upon pressing a specific mouse button
|
||||
## in the scope of the clicked container.
|
||||
## You can configure mouse bindings in a similar way to key bindings.
|
||||
##
|
||||
## Syntax:
|
||||
# bindsym [--release] [--border] [--whole-window] [--exclude-titlebar] [<Modifiers>+]button<n> command
|
||||
|
||||
## By default, the binding will only run when you click on the titlebar of the window.
|
||||
## If the `--release` flag is given, it will run when the mouse button is released.
|
||||
## If the `--whole-window` flag is given, the binding will also run when any part of
|
||||
## the window is clicked, with the exception of the border.
|
||||
## To have a bind run when the border is clicked, specify the `--border` flag.
|
||||
## If the `--exclude-titlebar` flag is given, the titlebar will not be considered for the keybinding.
|
||||
|
||||
## Kill the container with middle button click on titlebar
|
||||
bindsym --release button2 kill
|
||||
|
||||
## Kill the container with Super+middle button click on anywhere in a window
|
||||
bindsym --whole-window $MOD+button2 kill
|
||||
79
config/i3/config.d/04_modes.conf
Normal file
79
config/i3/config.d/04_modes.conf
Normal file
@ -0,0 +1,79 @@
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
##
|
||||
## Modes
|
||||
|
||||
## Resize container (you can also use the mouse for that)
|
||||
mode "Resize" {
|
||||
# These bindings trigger as soon as you enter the 'Resize' mode
|
||||
bindsym Left resize shrink width 10 px or 10 ppt
|
||||
bindsym Down resize grow height 10 px or 10 ppt
|
||||
bindsym Up resize shrink height 10 px or 10 ppt
|
||||
bindsym Right resize grow width 10 px or 10 ppt
|
||||
|
||||
# back to normal: Enter or Escape or $MOD+r
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym $MOD+Shift+r mode "default"
|
||||
}
|
||||
bindsym $MOD+Shift+r mode "Resize"
|
||||
|
||||
#------
|
||||
|
||||
## Move container (you can also use the mouse for that)
|
||||
mode "Move" {
|
||||
# These bindings trigger as soon as you enter the 'Move' mode
|
||||
bindsym Left move left 20px
|
||||
bindsym Down move down 20px
|
||||
bindsym Up move up 20px
|
||||
bindsym Right move right 20px
|
||||
|
||||
# back to normal: Enter or Escape or $MOD+m
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym $MOD+Shift+m mode "default"
|
||||
}
|
||||
bindsym $MOD+Shift+m mode "Move"
|
||||
|
||||
#------
|
||||
|
||||
## Gaps
|
||||
set $mode_gaps Gaps: (o)uter, (i)nner
|
||||
set $mode_gaps_outer Outer Gaps: +|-|0 (local), Shift + +|-|0 (global)
|
||||
set $mode_gaps_inner Inner Gaps: +|-|0 (local), Shift + +|-|0 (global)
|
||||
|
||||
## Outer Gaps
|
||||
mode "$mode_gaps_outer" {
|
||||
bindsym plus gaps outer current plus 5
|
||||
bindsym minus gaps outer current minus 5
|
||||
bindsym 0 gaps outer current set 0
|
||||
|
||||
bindsym Shift+plus gaps outer all plus 5
|
||||
bindsym Shift+minus gaps outer all minus 5
|
||||
bindsym Shift+0 gaps outer all set 0
|
||||
|
||||
bindsym Return mode "$mode_gaps"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
|
||||
## Inner Gaps
|
||||
mode "$mode_gaps_inner" {
|
||||
bindsym plus gaps inner current plus 5
|
||||
bindsym minus gaps inner current minus 5
|
||||
bindsym 0 gaps inner current set 0
|
||||
|
||||
bindsym Shift+plus gaps inner all plus 5
|
||||
bindsym Shift+minus gaps inner all minus 5
|
||||
bindsym Shift+0 gaps inner all set 0
|
||||
|
||||
bindsym Return mode "$mode_gaps"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
|
||||
mode "$mode_gaps" {
|
||||
bindsym o mode "$mode_gaps_outer"
|
||||
bindsym i mode "$mode_gaps_inner"
|
||||
bindsym Return mode "$mode_gaps"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
|
||||
bindsym $MOD+Shift+g mode "$mode_gaps"
|
||||
66
config/i3/config.d/05_rules.conf
Normal file
66
config/i3/config.d/05_rules.conf
Normal file
@ -0,0 +1,66 @@
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
##
|
||||
## Rules
|
||||
|
||||
##-- Workspace Rules ------------------------
|
||||
|
||||
## Automatically putting clients on specific workspaces
|
||||
##
|
||||
## To automatically make a specific window show up on a specific workspace,
|
||||
## you can use an 'assignment'. You can match windows by using any criteria.
|
||||
## The difference between assign and `for_window <criteria> move to workspace` is that
|
||||
## the former will only be executed when the application maps the window
|
||||
## (mapping means actually displaying it on the screen) but the latter will be executed
|
||||
## whenever a window changes its properties to something that matches the specified criteria.
|
||||
##
|
||||
## Thus, it is recommended that you match on window classes (and instances, when appropriate)
|
||||
## instead of window titles whenever possible because some applications first create
|
||||
## their window, and then worry about setting the correct title. Firefox with Vimperator
|
||||
## comes to mind. The window starts up being named Firefox, and only when Vimperator is
|
||||
## loaded does the title change. As i3 will get the title as soon as the application
|
||||
## maps the window, you’d need to have to match on Firefox in this case. Another known
|
||||
## issue is with Spotify, which doesn’t set the class hints when mapping the window,
|
||||
## meaning you’ll have to use a for_window rule to assign Spotify to a specific workspace.
|
||||
## Finally, using assign [tiling] and assign [floating] is not supported.
|
||||
##
|
||||
## You can also assign a window to show up on a specific output. You can use RandR
|
||||
## names such as 'VGA1' or names relative to the output with the currently focused
|
||||
## workspace such as 'left' and 'down'.
|
||||
##
|
||||
## Assignments are processed by i3 in the order in which they appear in the config file.
|
||||
## The first one which matches the window wins and later assignments are not considered.
|
||||
##
|
||||
## Syntax:
|
||||
#assign <criteria> [→] [workspace] [number] <workspace>
|
||||
#assign <criteria> [→] output left|right|up|down|primary|nonprimary|<output>
|
||||
|
||||
## Also, the arrow is not required, it just looks good :-). If you decide to use it,
|
||||
## it has to be a UTF-8 encoded arrow, not -> or something like that.
|
||||
##
|
||||
## To get the class and instance, you can use `xprop`. After clicking on the window,
|
||||
## you will see the following output: WM_CLASS(STRING) = "irssi", "URxvt"
|
||||
## The first part of the WM_CLASS is the instance ("irssi" in this example),
|
||||
## the second part is the class ("URxvt" in this example).
|
||||
##
|
||||
assign [class="Lxappearance|Nitrogen"] 6
|
||||
assign [class="Pavucontrol|Xfce4-power-manager-settings"] 6
|
||||
|
||||
##-- Window Rules ---------------------------
|
||||
|
||||
## Arbitrary commands for specific windows (for_window)
|
||||
##
|
||||
## With the `for_window` directive, you can let i3 execute any command when it encounters
|
||||
## a specific window. This can be used to set windows to floating or to change their
|
||||
## border style, for example.
|
||||
##
|
||||
## Syntax: for_window <criteria> <command>
|
||||
##
|
||||
for_window [window_role="pop-up"] floating enable
|
||||
for_window [window_role="task_dialog"] floating enable
|
||||
for_window [class="alacritty-float|Music"] floating enable
|
||||
for_window [class="Pcmanfm|Onboard|Yad"] floating enable
|
||||
for_window [class="Lxappearance|Nitrogen"] floating enable
|
||||
for_window [class="Pavucontrol|Xfce4-power-manager-settings|Nm-connection-editor"] floating enable
|
||||
for_window [class="feh|Viewnior|Gpicview|Gimp|MPlayer"] floating enable
|
||||
for_window [class="Kvantum Manager|qt5ct"] floating enable
|
||||
for_window [class="VirtualBox Manager|qemu|Qemu-system-x86_64"] floating enable
|
||||
71
config/i3/dunstrc
Normal file
71
config/i3/dunstrc
Normal file
@ -0,0 +1,71 @@
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
|
||||
[global]
|
||||
monitor = 0
|
||||
follow = mouse
|
||||
width = 300
|
||||
height = 80
|
||||
origin = top-right
|
||||
offset = 15x53
|
||||
corner_radius = 0
|
||||
scale = 0
|
||||
notification_limit = 0
|
||||
progress_bar = true
|
||||
progress_bar_height = 80
|
||||
progress_bar_frame_width = 2
|
||||
progress_bar_min_width = 300
|
||||
progress_bar_max_width = 300
|
||||
indicate_hidden = yes
|
||||
transparency = 0
|
||||
separator_height = 2
|
||||
padding = 15
|
||||
horizontal_padding = 15
|
||||
text_icon_padding = 0
|
||||
frame_width = 2
|
||||
gap_size = 0
|
||||
separator_color = frame
|
||||
sort = yes
|
||||
idle_threshold = 120
|
||||
font = JetBrains Mono 10
|
||||
line_height = 2
|
||||
markup = full
|
||||
format = %s\n%b
|
||||
alignment = left
|
||||
vertical_alignment = center
|
||||
show_age_threshold = 60
|
||||
ellipsize = middle
|
||||
ignore_newline = no
|
||||
stack_duplicates = true
|
||||
hide_duplicate_count = false
|
||||
show_indicators = yes
|
||||
enable_recursive_icon_lookup = true
|
||||
icon_position = left
|
||||
min_icon_size = 24
|
||||
max_icon_size = 48
|
||||
sticky_history = yes
|
||||
history_length = 20
|
||||
browser = /usr/bin/xdg-open
|
||||
always_run_script = true
|
||||
mouse_left_click = close_current
|
||||
mouse_middle_click = do_action, close_current
|
||||
mouse_right_click = close_all
|
||||
title = Dunst
|
||||
class = Dunst
|
||||
|
||||
[urgency_low]
|
||||
timeout = 2
|
||||
background = "#282828"
|
||||
foreground = "#ebdbb2"
|
||||
frame_color = "#353535"
|
||||
|
||||
[urgency_normal]
|
||||
timeout = 5
|
||||
background = "#282828"
|
||||
foreground = "#ebdbb2"
|
||||
frame_color = "#353535"
|
||||
|
||||
[urgency_critical]
|
||||
timeout = 0
|
||||
background = "#282828"
|
||||
foreground = "#cc241d"
|
||||
frame_color = "#cc241d"
|
||||
@ -1,94 +0,0 @@
|
||||
#order += nvidia_smi
|
||||
order += bluetooth
|
||||
order += keyboard_layout
|
||||
order += arch_updates
|
||||
order += "whatismyip"
|
||||
order += spotify
|
||||
# order += "ipv6"
|
||||
order += "wireless _first_"
|
||||
order += "ethernet _first_"
|
||||
order += net_rate
|
||||
# order += net_iplist
|
||||
# order += "battery all"
|
||||
order += "disk /"
|
||||
order += "disk /home"
|
||||
order += sysdata
|
||||
# order += lm_sensors
|
||||
# order += "load"
|
||||
# order += "memory"
|
||||
order += "tztime local"
|
||||
|
||||
spotify {
|
||||
button_next = 4
|
||||
button_play_pause = 3
|
||||
button_previous = 5
|
||||
format_down = ""
|
||||
}
|
||||
|
||||
whatismyip {
|
||||
# format = " {isp}\|{city}\|{countryCode} ({ip}) "
|
||||
format = "{countryCode} ({ip}) "
|
||||
hide_when_offline = True
|
||||
url_geo = "http://ip-api.com/json"
|
||||
}
|
||||
|
||||
battery all {
|
||||
format = "%status %percentage %consumption"
|
||||
low_threshold = 30
|
||||
threshold_type = percentage
|
||||
last_full_capacity = true
|
||||
}
|
||||
|
||||
wireless _first_ {
|
||||
format_up = " %ip (%essid)"
|
||||
format_down = ""
|
||||
}
|
||||
|
||||
ethernet _first_ {
|
||||
format_up = " %ip (%speed)"
|
||||
format_down = ""
|
||||
on_click 1 = "exec sh /home/legrems/.screenlayout/swide.sh"
|
||||
}
|
||||
|
||||
net_iplist {
|
||||
cache_timeout = 30
|
||||
format_iface = "[{ip4}]"
|
||||
format = "{format_iface}"
|
||||
}
|
||||
|
||||
net_rate {
|
||||
cache_timeout = 10
|
||||
format = "{total}"
|
||||
}
|
||||
|
||||
disk "/" {
|
||||
# format = "%percentage_used (%used / %free / %total)"
|
||||
format = "/ %percentage_used %free"
|
||||
on_click 1 = "exec nemo /"
|
||||
}
|
||||
|
||||
disk "/home" {
|
||||
# format = "%percentage_used (%used / %free / %total)"
|
||||
format = "/home %percentage_used %free"
|
||||
on_click 1 = "exec nemo /home/legrems/Documents"
|
||||
}
|
||||
|
||||
tztime local {
|
||||
format = "%Y-%m-%d %H:%M:%S"
|
||||
timezone = "Europe/Zurich"
|
||||
}
|
||||
|
||||
arch_updates {
|
||||
format = "P:{pacman}/A:{aur}"
|
||||
hide_if_zero = True
|
||||
}
|
||||
|
||||
keyboard_layout {
|
||||
layouts = ['us intl', 'us']
|
||||
color_us_intl = "#ffff00"
|
||||
color_us = "#ff00ff"
|
||||
}
|
||||
|
||||
sysdata {
|
||||
cache_timeout = 2
|
||||
}
|
||||
168
config/i3/i3status/config
Normal file
168
config/i3/i3status/config
Normal file
@ -0,0 +1,168 @@
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
##
|
||||
## i3status configuration for Archcraft
|
||||
|
||||
##-- General ---------------------------
|
||||
general {
|
||||
output_format = "i3bar"
|
||||
interval = 5
|
||||
markup = "pango"
|
||||
separator = " "
|
||||
colors = true
|
||||
color_good = "#98971a"
|
||||
color_degraded = "#d79921"
|
||||
color_bad = "#cc241d"
|
||||
color_separator = "#353535"
|
||||
}
|
||||
|
||||
##-- Modules Order ---------------------
|
||||
order += "volume master"
|
||||
order += "battery all"
|
||||
order += "wireless _first_"
|
||||
order += "cpu_usage"
|
||||
order += "memory"
|
||||
order += "disk /"
|
||||
order += "time"
|
||||
#order += "load"
|
||||
#order += "ipv6"
|
||||
#order += "run_watch DHCP"
|
||||
#order += "run_watch VPNC"
|
||||
#order += "path_exists VPN"
|
||||
#order += "ethernet _first_"
|
||||
#order += "cpu_temperature 0"
|
||||
#order += "tztime kolkata"
|
||||
#order += "read_file UPTIME"
|
||||
|
||||
##-- Modules ---------------------------
|
||||
|
||||
## Module :: ipv6
|
||||
ipv6 {
|
||||
format_up = "%ip"
|
||||
format_down = "No IPv6"
|
||||
}
|
||||
|
||||
## Module :: disk
|
||||
disk "/" {
|
||||
# %free | %avail | %total | %percentage_used/free/avail
|
||||
format = " %free"
|
||||
format_not_mounted = " Not Mounted"
|
||||
prefix_type = custom
|
||||
low_threshold = 2
|
||||
format_below_threshold = " Warning: %free Free Space"
|
||||
threshold_type = gbytes_free
|
||||
}
|
||||
|
||||
## Module :: run_watch
|
||||
run_watch DHCP {
|
||||
format = "%title: %status"
|
||||
format_down = ""
|
||||
}
|
||||
|
||||
## Module :: run_watch
|
||||
run_watch VPNC {
|
||||
format = "%title: %status"
|
||||
format_down = ""
|
||||
}
|
||||
|
||||
## Module :: path_exists
|
||||
path_exists VPN {
|
||||
format = "%title: %status"
|
||||
format_down = ""
|
||||
}
|
||||
|
||||
## Module :: wireless
|
||||
wireless _first_ {
|
||||
# %quality | %essid | %bitrate | %frequency | %ip
|
||||
format_up = " %essid"
|
||||
format_down = " Disconnected"
|
||||
format_bitrate = "%g %cb/s"
|
||||
format_noise = "%03d%s"
|
||||
format_quality = "%03d%s"
|
||||
format_signal = "%03d%s"
|
||||
}
|
||||
|
||||
## Module :: ethernet
|
||||
ethernet _first_ {
|
||||
format_up = "%ip (%speed)"
|
||||
format_down = "Disconnected"
|
||||
}
|
||||
|
||||
## Module :: battery
|
||||
battery all {
|
||||
# %percentage | %status | %remaining | %emptytime | %consumption
|
||||
format = "%status %percentage (%remaining)"
|
||||
format_down = "No Battery"
|
||||
format_percentage = "%.00f%s"
|
||||
integer_battery_capacity = true
|
||||
last_full_capacity = true
|
||||
hide_seconds = true
|
||||
low_threshold = 20
|
||||
threshold_type = percentage
|
||||
status_chr = ""
|
||||
status_bat = ""
|
||||
status_unk = ""
|
||||
status_full = ""
|
||||
}
|
||||
|
||||
## Module :: cpu_temperature
|
||||
cpu_temperature 0 {
|
||||
path = "/sys/devices/platform/coretemp.0/temp1_input"
|
||||
format = "%degrees °C"
|
||||
max_threshold = 60
|
||||
format_above_threshold = " Warning: %degrees °C"
|
||||
}
|
||||
|
||||
## Module :: cpu_usage
|
||||
cpu_usage {
|
||||
format = " %usage"
|
||||
degraded_threshold = 25
|
||||
format_above_degraded_threshold = " %usage"
|
||||
max_threshold = 75
|
||||
format_above_threshold = " Warning: %usage"
|
||||
}
|
||||
|
||||
## Module :: memory
|
||||
memory {
|
||||
# %total | %free | %used | %available | %shared
|
||||
format = " %free"
|
||||
unit = auto
|
||||
decimals = 1
|
||||
threshold_degraded = 1G
|
||||
threshold_critical = 1G
|
||||
format_degraded = " Low Memory: %free"
|
||||
}
|
||||
|
||||
## Module :: load
|
||||
load {
|
||||
format = " %1min %5min %15min"
|
||||
max_threshold = "5"
|
||||
format_above_threshold = " Warning: %1min %5min %15min"
|
||||
}
|
||||
|
||||
## Module :: time
|
||||
time {
|
||||
format = " %I:%M %p"
|
||||
}
|
||||
|
||||
## Module :: tztime
|
||||
tztime kolkata {
|
||||
format = " %I:%M %p"
|
||||
timezone = "Asia/Kolkata"
|
||||
locale = "en_US.UTF-8"
|
||||
hide_if_equals_localtime = false
|
||||
}
|
||||
|
||||
## Module :: volume
|
||||
volume master {
|
||||
device = "pulse"
|
||||
format = " %volume"
|
||||
format_muted = " Muted"
|
||||
}
|
||||
|
||||
## Module :: read_file
|
||||
read_file UPTIME {
|
||||
format = "%title: %content"
|
||||
format_bad = "%title - %errno: %error"
|
||||
path = "/proc/uptime"
|
||||
Max_characters = 255
|
||||
}
|
||||
48
config/i3/i3status/statusbar.conf
Normal file
48
config/i3/i3status/statusbar.conf
Normal file
@ -0,0 +1,48 @@
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
##
|
||||
## Status Bar
|
||||
|
||||
##-- Colors ---------------------------
|
||||
set $i3_bar_bg #282828
|
||||
set $i3_bar_fg #ebdbb2
|
||||
set $i3_bar_sep #353535
|
||||
set $i3_bar_foc #ffc86a
|
||||
set $i3_bar_act #458588
|
||||
set $i3_bar_ina #353535
|
||||
set $i3_bar_urg #b16286
|
||||
set $i3_bar_mod #98971a
|
||||
|
||||
set $i3_bar_fonts JetBrainsMono Nerd Font 20
|
||||
|
||||
##-- Bar ------------------------------
|
||||
bar {
|
||||
status_command i3status -c ~/.config/i3/i3status/config
|
||||
id main-bar
|
||||
position bottom
|
||||
output primary
|
||||
mode dock
|
||||
hidden_state show
|
||||
modifier Mod1
|
||||
bindsym button2 workspace back_and_forth
|
||||
bindsym --release button3 layout toggle
|
||||
tray_output primary
|
||||
tray_padding 6
|
||||
separator_symbol "|"
|
||||
workspace_buttons yes
|
||||
workspace_min_width 34
|
||||
strip_workspace_numbers yes
|
||||
binding_mode_indicator yes
|
||||
padding 6 10 6 0
|
||||
font pango:$i3_bar_fonts
|
||||
colors {
|
||||
background $i3_bar_bg
|
||||
statusline $i3_bar_fg
|
||||
separator $i3_bar_sep
|
||||
|
||||
focused_workspace $i3_bar_foc $i3_bar_foc $i3_bar_bg
|
||||
active_workspace $i3_bar_act $i3_bar_act $i3_bar_bg
|
||||
inactive_workspace $i3_bar_ina $i3_bar_ina $i3_bar_fg
|
||||
urgent_workspace $i3_bar_urg $i3_bar_urg $i3_bar_bg
|
||||
binding_mode $i3_bar_mod $i3_bar_mod $i3_bar_bg
|
||||
}
|
||||
}
|
||||
419
config/i3/picom.conf
Normal file
419
config/i3/picom.conf
Normal file
@ -0,0 +1,419 @@
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
|
||||
#========================= Corners =========================#
|
||||
|
||||
corner-radius = 0;
|
||||
rounded-corners-exclude = [
|
||||
"window_type = 'normal'",
|
||||
"class_g ?= 'rofi'",
|
||||
"class_g ?= 'polybar'",
|
||||
"class_g ?= 'tint2'"
|
||||
];
|
||||
|
||||
round-borders = 0;
|
||||
round-borders-exclude = [
|
||||
"class_g = 'TelegramDesktop'"
|
||||
];
|
||||
|
||||
# Specify a list of border width rules, in the format `PIXELS:PATTERN`,
|
||||
# Note we don't make any guarantee about possible conflicts with the
|
||||
# border_width set by the window manager.
|
||||
#
|
||||
# example:
|
||||
# round-borders-rule = [ "2:class_g = 'URxvt'" ];
|
||||
#
|
||||
round-borders-rule = [
|
||||
"2:class_g ?= 'URxvt'",
|
||||
"2:class_g ?= 'Alacritty'",
|
||||
"0:class_g ?= 'firefox'"
|
||||
];
|
||||
|
||||
#========================= Shadows =========================#
|
||||
|
||||
# Enabled client-side shadows on windows. Note desktop windows
|
||||
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
|
||||
# unless explicitly requested using the wintypes option.
|
||||
#
|
||||
shadow = true;
|
||||
|
||||
# The blur radius for shadows, in pixels. (defaults to 12)
|
||||
shadow-radius = 14;
|
||||
|
||||
# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
|
||||
shadow-opacity = 0.30;
|
||||
|
||||
# The left offset for shadows, in pixels. (defaults to -15)
|
||||
shadow-offset-x = -12;
|
||||
|
||||
# The top offset for shadows, in pixels. (defaults to -15)
|
||||
shadow-offset-y = -12;
|
||||
|
||||
# Red color value of shadow (0.0 - 1.0, defaults to 0).
|
||||
# shadow-red = 0
|
||||
|
||||
# Green color value of shadow (0.0 - 1.0, defaults to 0).
|
||||
# shadow-green = 0
|
||||
|
||||
# Blue color value of shadow (0.0 - 1.0, defaults to 0).
|
||||
# shadow-blue = 0
|
||||
|
||||
# Hex string color value of shadow (#000000 - #FFFFFF, defaults to #000000). This option will override options set shadow-(red/green/blue)
|
||||
# shadow-color = "#000000"
|
||||
|
||||
# Specify a list of conditions of windows that should have no shadow.
|
||||
#
|
||||
# examples:
|
||||
# shadow-exclude = "n:e:Notification";
|
||||
#
|
||||
# shadow-exclude = []
|
||||
shadow-exclude = [
|
||||
"class_g = 'Cairo-clock'",
|
||||
"class_g = 'CoverGloobus'",
|
||||
"class_g = 'Tilda'",
|
||||
"name ?= 'gnome-pie'",
|
||||
# "class_g = 'Dmenu'",
|
||||
# "class_g ?= 'rofi'",
|
||||
# "class_g ?= 'polybar'",
|
||||
"class_g ?= 'Plank'",
|
||||
"name *= 'recordmydesktop'",
|
||||
"name = 'Notification'",
|
||||
"name = 'Docky'",
|
||||
"name = 'Kupfer'",
|
||||
"name = 'xfce4-notifyd'",
|
||||
"name *= 'VLC'",
|
||||
"name *= 'Chromium'",
|
||||
"name *= 'Chrome'",
|
||||
"class_g = 'Conky'",
|
||||
"class_g = 'Kupfer'",
|
||||
"class_g = 'Synapse'",
|
||||
"class_g ?= 'Notify-osd'",
|
||||
"class_g ?= 'Cairo-dock'",
|
||||
"class_g ?= 'Xfce4-notifyd'",
|
||||
"class_g ?= 'Xfce4-power-manager'",
|
||||
"_GTK_FRAME_EXTENTS@:c",
|
||||
"_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
|
||||
];
|
||||
|
||||
# Specify a X geometry that describes the region in which shadow should not
|
||||
# be painted in, such as a dock window region. Use
|
||||
# shadow-exclude-reg = "x10+0+0"
|
||||
# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
|
||||
#
|
||||
# shadow-exclude-reg = ""
|
||||
|
||||
# Crop shadow of a window fully on a particular Xinerama screen to the screen.
|
||||
# xinerama-shadow-crop = false
|
||||
|
||||
#========================= Fading =========================#
|
||||
|
||||
# Fade windows in/out when opening/closing and when opacity changes,
|
||||
# unless no-fading-openclose is used.
|
||||
fading = true;
|
||||
|
||||
# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
|
||||
fade-in-step = 0.03;
|
||||
|
||||
# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
|
||||
fade-out-step = 0.03;
|
||||
|
||||
# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
|
||||
fade-delta = 5;
|
||||
|
||||
# Specify a list of conditions of windows that should not be faded.
|
||||
# don't need this, we disable fading for all normal windows with wintypes: {}
|
||||
fade-exclude = [
|
||||
"class_g = 'slop'" # maim
|
||||
]
|
||||
|
||||
# Do not fade on window open/close.
|
||||
no-fading-openclose = false
|
||||
|
||||
# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
|
||||
no-fading-destroyed-argb = true
|
||||
|
||||
#========================= Opacity =========================#
|
||||
|
||||
# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
|
||||
# inactive-opacity = 1
|
||||
inactive-opacity = 1;
|
||||
|
||||
# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
|
||||
# frame-opacity = 1.0
|
||||
frame-opacity = 1.0;
|
||||
|
||||
# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows.
|
||||
# inactive-opacity-override = true
|
||||
inactive-opacity-override = false;
|
||||
|
||||
# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
|
||||
active-opacity = 1.0;
|
||||
|
||||
# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
|
||||
#inactive-dim = 0.5
|
||||
|
||||
# Specify a list of conditions of windows that should always be considered focused.
|
||||
# focus-exclude = []
|
||||
focus-exclude = [
|
||||
"class_g = 'Cairo-clock'",
|
||||
"class_g = 'Bar'", # lemonbar
|
||||
"class_g = 'slop'" # maim
|
||||
];
|
||||
|
||||
# Use fixed inactive dim value, instead of adjusting according to window opacity.
|
||||
# inactive-dim-fixed = 1.0
|
||||
|
||||
# Specify a list of opacity rules, in the format `PERCENT:PATTERN`,
|
||||
# like `50:name *= "Firefox"`. picom-trans is recommended over this.
|
||||
# Note we don't make any guarantee about possible conflicts with other
|
||||
# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
|
||||
# example:
|
||||
# opacity-rule = [ "80:class_g = 'URxvt'" ];
|
||||
#
|
||||
# opacity-rule = []
|
||||
opacity-rule = [
|
||||
"100:class_g = 'Bar'", # lemonbar
|
||||
"100:class_g = 'slop'", # maim
|
||||
"100:class_g = 'XTerm'",
|
||||
"100:class_g = 'URxvt'",
|
||||
"100:class_g = 'kitty'",
|
||||
"100:class_g = 'Alacritty'",
|
||||
"100:class_g = 'Polybar'",
|
||||
"100:class_g = 'code-oss'",
|
||||
"100:class_g = 'Meld'",
|
||||
"100:class_g = 'TelegramDesktop'",
|
||||
"100:class_g = 'Joplin'",
|
||||
"100:class_g = 'firefox'",
|
||||
"100:class_g = 'Thunderbird'"
|
||||
];
|
||||
|
||||
#========================= Blurring =========================#
|
||||
|
||||
blur: {
|
||||
method = "none";
|
||||
strength = 0;
|
||||
background = false;
|
||||
background-frame = false;
|
||||
background-fixed = false;
|
||||
kern = "3x3box";
|
||||
}
|
||||
|
||||
# Exclude conditions for background blur.
|
||||
blur-background-exclude = [
|
||||
"window_type = 'dock'",
|
||||
"window_type = 'desktop'",
|
||||
"class_g = 'Plank'",
|
||||
"class_g = 'slop'",
|
||||
"_GTK_FRAME_EXTENTS@:c"
|
||||
];
|
||||
|
||||
#========================= General Settings =========================#
|
||||
|
||||
# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
|
||||
# daemon = false
|
||||
|
||||
# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
|
||||
# `xrender` is the default one.
|
||||
#
|
||||
#experimental-backends = true;
|
||||
backend = "glx";
|
||||
|
||||
# Enable/disable VSync.
|
||||
# vsync = false
|
||||
vsync = true;
|
||||
|
||||
# Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
|
||||
# dbus = false
|
||||
|
||||
# Try to detect WM windows (a non-override-redirect window with no
|
||||
# child that has 'WM_STATE') and mark them as active.
|
||||
#
|
||||
# mark-wmwin-focused = false
|
||||
mark-wmwin-focused = true;
|
||||
|
||||
# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
|
||||
# mark-ovredir-focused = false
|
||||
mark-ovredir-focused = true;
|
||||
|
||||
# Try to detect windows with rounded corners and don't consider them
|
||||
# shaped windows. The accuracy is not very high, unfortunately.
|
||||
#
|
||||
# detect-rounded-corners = false
|
||||
detect-rounded-corners = true;
|
||||
|
||||
# Detect '_NET_WM_OPACITY' on client windows, useful for window managers
|
||||
# not passing '_NET_WM_OPACITY' of client windows to frame windows.
|
||||
#
|
||||
# detect-client-opacity = false
|
||||
detect-client-opacity = true;
|
||||
|
||||
# Specify refresh rate of the screen. If not specified or 0, picom will
|
||||
# try detecting this with X RandR extension.
|
||||
#
|
||||
# refresh-rate = 60
|
||||
refresh-rate = 0;
|
||||
|
||||
# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
|
||||
# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
|
||||
# provided that the WM supports it.
|
||||
#
|
||||
# use-ewmh-active-win = false
|
||||
|
||||
# Unredirect all windows if a full-screen opaque window is detected,
|
||||
# to maximize performance for full-screen windows. Known to cause flickering
|
||||
# when redirecting/unredirecting windows.
|
||||
#
|
||||
# unredir-if-possible = false
|
||||
|
||||
# Delay before unredirecting the window, in milliseconds. Defaults to 0.
|
||||
# unredir-if-possible-delay = 0
|
||||
|
||||
# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
|
||||
# unredir-if-possible-exclude = []
|
||||
|
||||
# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
|
||||
# in the same group focused at the same time.
|
||||
#
|
||||
# detect-transient = false
|
||||
detect-transient = true;
|
||||
|
||||
# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same
|
||||
# group focused at the same time. 'WM_TRANSIENT_FOR' has higher priority if
|
||||
# detect-transient is enabled, too.
|
||||
#
|
||||
# detect-client-leader = false
|
||||
detect-client-leader = true;
|
||||
|
||||
# Resize damaged region by a specific number of pixels.
|
||||
# A positive value enlarges it while a negative one shrinks it.
|
||||
# If the value is positive, those additional pixels will not be actually painted
|
||||
# to screen, only used in blur calculation, and such. (Due to technical limitations,
|
||||
# with use-damage, those pixels will still be incorrectly painted to screen.)
|
||||
# Primarily used to fix the line corruption issues of blur,
|
||||
# in which case you should use the blur radius value here
|
||||
# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`,
|
||||
# with a 5x5 one you use `--resize-damage 2`, and so on).
|
||||
# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
|
||||
#
|
||||
# resize-damage = 1
|
||||
|
||||
# Specify a list of conditions of windows that should be painted with inverted color.
|
||||
# Resource-hogging, and is not well tested.
|
||||
#
|
||||
# invert-color-include = []
|
||||
|
||||
# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer.
|
||||
# Might cause incorrect opacity when rendering transparent content (but never
|
||||
# practically happened) and may not work with blur-background.
|
||||
# My tests show a 15% performance boost. Recommended.
|
||||
#
|
||||
glx-no-stencil = true;
|
||||
|
||||
# GLX backend: Avoid rebinding pixmap on window damage.
|
||||
# Probably could improve performance on rapid window content changes,
|
||||
# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.).
|
||||
# Recommended if it works.
|
||||
#
|
||||
# glx-no-rebind-pixmap = false
|
||||
|
||||
# Disable the use of damage information.
|
||||
# This cause the whole screen to be redrawn everytime, instead of the part of the screen
|
||||
# has actually changed. Potentially degrades the performance, but might fix some artifacts.
|
||||
# The opposing option is use-damage
|
||||
#
|
||||
# no-use-damage = false
|
||||
use-damage = true;
|
||||
|
||||
# Use X Sync fence to sync clients' draw calls, to make sure all draw
|
||||
# calls are finished before picom starts drawing. Needed on nvidia-drivers
|
||||
# with GLX backend for some users.
|
||||
#
|
||||
# xrender-sync-fence = false
|
||||
|
||||
# GLX backend: Use specified GLSL fragment shader for rendering window contents.
|
||||
# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl`
|
||||
# in the source tree for examples.
|
||||
#
|
||||
# glx-fshader-win = ""
|
||||
|
||||
# Force all windows to be painted with blending. Useful if you
|
||||
# have a glx-fshader-win that could turn opaque pixels transparent.
|
||||
#
|
||||
# force-win-blend = false
|
||||
|
||||
# Do not use EWMH to detect fullscreen windows.
|
||||
# Reverts to checking if a window is fullscreen based only on its size and coordinates.
|
||||
#
|
||||
# no-ewmh-fullscreen = false
|
||||
|
||||
# Dimming bright windows so their brightness doesn't exceed this set value.
|
||||
# Brightness of a window is estimated by averaging all pixels in the window,
|
||||
# so this could comes with a performance hit.
|
||||
# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
|
||||
#
|
||||
# max-brightness = 1.0
|
||||
|
||||
# Make transparent windows clip other windows like non-transparent windows do,
|
||||
# instead of blending on top of them.
|
||||
#
|
||||
# transparent-clipping = false
|
||||
|
||||
# Set the log level. Possible values are:
|
||||
# "trace", "debug", "info", "warn", "error"
|
||||
# in increasing level of importance. Case doesn't matter.
|
||||
# If using the "TRACE" log level, it's better to log into a file
|
||||
# using *--log-file*, since it can generate a huge stream of logs.
|
||||
#
|
||||
# log-level = "debug"
|
||||
log-level = "info";
|
||||
|
||||
# Set the log file.
|
||||
# If *--log-file* is never specified, logs will be written to stderr.
|
||||
# Otherwise, logs will to written to the given file, though some of the early
|
||||
# logs might still be written to the stderr.
|
||||
# When setting this option from the config file, it is recommended to use an absolute path.
|
||||
#
|
||||
# log-file = "/path/to/your/log/file"
|
||||
|
||||
# Show all X errors (for debugging)
|
||||
# show-all-xerrors = false
|
||||
|
||||
# Write process ID to a file.
|
||||
# write-pid-path = "/path/to/your/log/file"
|
||||
|
||||
# Window type settings
|
||||
#
|
||||
# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard:
|
||||
# "unknown", "desktop", "dock", "toolbar", "menu", "utility",
|
||||
# "splash", "dialog", "normal", "dropdown_menu", "popup_menu",
|
||||
# "tooltip", "notification", "combo", and "dnd".
|
||||
#
|
||||
# Following per window-type options are available: ::
|
||||
#
|
||||
# fade, shadow:::
|
||||
# Controls window-type-specific shadow and fade settings.
|
||||
#
|
||||
# opacity:::
|
||||
# Controls default opacity of the window type.
|
||||
#
|
||||
# focus:::
|
||||
# Controls whether the window of this type is to be always considered focused.
|
||||
# (By default, all window types except "normal" and "dialog" has this on.)
|
||||
#
|
||||
# full-shadow:::
|
||||
# Controls whether shadow is drawn under the parts of the window that you
|
||||
# normally won't be able to see. Useful when the window has parts of it
|
||||
# transparent, and you want shadows in those areas.
|
||||
#
|
||||
# redir-ignore:::
|
||||
# Controls whether this type of windows should cause screen to become
|
||||
# redirected again after been unredirected. If you have unredir-if-possible
|
||||
# set, and doesn't want certain window to cause unnecessary screen redirection,
|
||||
# you can set this to `true`.
|
||||
#
|
||||
wintypes:
|
||||
{
|
||||
tooltip = { fade=true; shadow=true; opacity=0.95; focus=true; full-shadow=false; };
|
||||
popup_menu = { opacity=1.0; }
|
||||
dropdown_menu = { opacity=1.0; }
|
||||
utility = { shadow=false; opacity=1.0; }
|
||||
};
|
||||
12
config/i3/scripts/i3_asroot
Executable file
12
config/i3/scripts/i3_asroot
Executable file
@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
|
||||
# i3 directory
|
||||
DIR="$HOME/.config/i3"
|
||||
|
||||
# rofi sudo askpass helper
|
||||
export SUDO_ASKPASS="$DIR"/scripts/rofi_askpass
|
||||
|
||||
# execute the application
|
||||
sudo -A $1
|
||||
49
config/i3/scripts/i3_autostart
Executable file
49
config/i3/scripts/i3_autostart
Executable file
@ -0,0 +1,49 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
##
|
||||
## Autostart Programs
|
||||
|
||||
# i3 dir
|
||||
idir="$HOME/.config/i3"
|
||||
|
||||
# Kill already running process
|
||||
_ps=(xsettingsd ksuperkey)
|
||||
for _prs in "${_ps[@]}"; do
|
||||
if [[ `pidof ${_prs}` ]]; then
|
||||
killall -9 ${_prs}
|
||||
fi
|
||||
done
|
||||
|
||||
# Lauch xsettingsd daemon
|
||||
xsettingsd --config="$idir"/xsettingsd &
|
||||
|
||||
# polkit agent
|
||||
if [[ ! `pidof xfce-polkit` ]]; then
|
||||
/usr/lib/xfce-polkit/xfce-polkit &
|
||||
fi
|
||||
|
||||
# Enable power management
|
||||
xfce4-power-manager &
|
||||
|
||||
# Enable Super Keys For Menu
|
||||
ksuperkey -e 'Super_L=Alt_L|F1' &
|
||||
ksuperkey -e 'Super_R=Alt_L|F1' &
|
||||
|
||||
# Fix cursor
|
||||
xsetroot -cursor_name left_ptr
|
||||
|
||||
# Restore wallpaper
|
||||
"$idir"/themes/wallpaper.sh
|
||||
|
||||
# Lauch notification daemon
|
||||
"$idir"/scripts/i3_dunst
|
||||
|
||||
# Lauch polybar
|
||||
"$idir"/scripts/i3_bar
|
||||
|
||||
# Lauch compositor
|
||||
"$idir"/scripts/i3_comp
|
||||
|
||||
# Start mpd
|
||||
exec mpd &
|
||||
9
config/i3/scripts/i3_bar
Executable file
9
config/i3/scripts/i3_bar
Executable file
@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
|
||||
# i3 directory
|
||||
DIR="$HOME/.config/i3"
|
||||
|
||||
# launch polybar
|
||||
bash "$DIR"/themes/polybar.sh
|
||||
73
config/i3/scripts/i3_brightness
Executable file
73
config/i3/scripts/i3_brightness
Executable file
@ -0,0 +1,73 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
##
|
||||
## Script to manage brightness on Archcraft.
|
||||
|
||||
# Icons
|
||||
iDIR='/usr/share/archcraft/icons/dunst'
|
||||
|
||||
# Graphics card
|
||||
CARD=`ls /sys/class/backlight | head -n 1`
|
||||
|
||||
# Get brightness
|
||||
get_backlight() {
|
||||
if [[ "$CARD" == *"intel_"* ]]; then
|
||||
BNESS=`xbacklight -get`
|
||||
LIGHT=${BNESS%.*}
|
||||
else
|
||||
LIGHT=$(printf "%.0f\n" `light -G`)
|
||||
fi
|
||||
echo "${LIGHT}%"
|
||||
}
|
||||
|
||||
# Get icons
|
||||
get_icon() {
|
||||
backlight="$(get_backlight)"
|
||||
current="${backlight%%%}"
|
||||
if [[ ("$current" -ge "0") && ("$current" -le "20") ]]; then
|
||||
icon="$iDIR"/brightness-20.png
|
||||
elif [[ ("$current" -ge "20") && ("$current" -le "40") ]]; then
|
||||
icon="$iDIR"/brightness-40.png
|
||||
elif [[ ("$current" -ge "40") && ("$current" -le "60") ]]; then
|
||||
icon="$iDIR"/brightness-60.png
|
||||
elif [[ ("$current" -ge "60") && ("$current" -le "80") ]]; then
|
||||
icon="$iDIR"/brightness-80.png
|
||||
elif [[ ("$current" -ge "80") && ("$current" -le "100") ]]; then
|
||||
icon="$iDIR"/brightness-100.png
|
||||
fi
|
||||
}
|
||||
|
||||
# Notify
|
||||
notify_bl() {
|
||||
get_icon && dunstify -u low -h string:x-dunst-stack-tag:obbacklight -i "$icon" "Brightness : $(get_backlight)"
|
||||
}
|
||||
|
||||
# Increase brightness
|
||||
inc_backlight() {
|
||||
if [[ "$CARD" == *"intel_"* ]]; then
|
||||
xbacklight -inc 10 && notify_bl
|
||||
else
|
||||
light -A 5 && notify_bl
|
||||
fi
|
||||
}
|
||||
|
||||
# Decrease brightness
|
||||
dec_backlight() {
|
||||
if [[ "$CARD" == *"intel_"* ]]; then
|
||||
xbacklight -dec 10 && notify_bl
|
||||
else
|
||||
light -U 5 && notify_bl
|
||||
fi
|
||||
}
|
||||
|
||||
# Execute accordingly
|
||||
if [[ "$1" == "--get" ]]; then
|
||||
get_backlight
|
||||
elif [[ "$1" == "--inc" ]]; then
|
||||
inc_backlight
|
||||
elif [[ "$1" == "--dec" ]]; then
|
||||
dec_backlight
|
||||
else
|
||||
get_backlight
|
||||
fi
|
||||
22
config/i3/scripts/i3_colorpicker
Executable file
22
config/i3/scripts/i3_colorpicker
Executable file
@ -0,0 +1,22 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
##
|
||||
## Simple script to pick color quickly.
|
||||
|
||||
color=$(xcolor --format hex --preview-size 255 --scale 10)
|
||||
image=/tmp/${color}.png
|
||||
|
||||
main() {
|
||||
if [[ "$color" ]]; then
|
||||
# copy color code to clipboard
|
||||
echo $color | tr -d "\n" | xclip -selection clipboard
|
||||
# generate preview
|
||||
convert -size 48x48 xc:"$color" ${image}
|
||||
# notify about it
|
||||
dunstify -u low -h string:x-dunst-stack-tag:obcolorpicker -i ${image} "$color, copied to clipboard."
|
||||
fi
|
||||
}
|
||||
|
||||
# run the script
|
||||
main
|
||||
15
config/i3/scripts/i3_comp
Executable file
15
config/i3/scripts/i3_comp
Executable file
@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
|
||||
# i3 directory
|
||||
DIR="$HOME/.config/i3"
|
||||
|
||||
# Terminate if picom is already running
|
||||
killall -q picom
|
||||
|
||||
# Wait until the processes have been shut down
|
||||
while pgrep -u $UID -x picom >/dev/null; do sleep 1; done
|
||||
|
||||
# Launch picom
|
||||
picom --config "$DIR"/picom.conf &
|
||||
13
config/i3/scripts/i3_dunst
Executable file
13
config/i3/scripts/i3_dunst
Executable file
@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
|
||||
# i3 directory
|
||||
DIR="$HOME/.config/i3"
|
||||
|
||||
# Launch dunst daemon
|
||||
if [[ `pidof dunst` ]]; then
|
||||
pkill dunst
|
||||
fi
|
||||
|
||||
dunst -config "$DIR"/dunstrc &
|
||||
15
config/i3/scripts/i3_music
Executable file
15
config/i3/scripts/i3_music
Executable file
@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
##
|
||||
## Run ncmpcpp with alternate config
|
||||
|
||||
# i3 directory
|
||||
DIR="$HOME/.config/i3"
|
||||
|
||||
CONFIG="$DIR/alacritty/alacritty.yml"
|
||||
|
||||
alacritty --class 'Music,Music' --config-file "$CONFIG" \
|
||||
-o window.dimensions.columns=109 window.dimensions.lines=22 \
|
||||
-e ~/.ncmpcpp/scripts/ncmpcpp-art
|
||||
|
||||
87
config/i3/scripts/i3_screenshot
Executable file
87
config/i3/scripts/i3_screenshot
Executable file
@ -0,0 +1,87 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
##
|
||||
## Script to take screenshots on Archcraft.
|
||||
|
||||
# file
|
||||
time=`date +%Y-%m-%d-%H-%M-%S`
|
||||
geometry=`xrandr | grep 'current' | head -n1 | cut -d',' -f2 | tr -d '[:blank:],current'`
|
||||
dir="`xdg-user-dir PICTURES`/Screenshots"
|
||||
file="Screenshot_${time}_${geometry}.png"
|
||||
|
||||
# directory
|
||||
if [[ ! -d "$dir" ]]; then
|
||||
mkdir -p "$dir"
|
||||
fi
|
||||
|
||||
# notify and view screenshot
|
||||
notify_view () {
|
||||
notify_cmd_shot='dunstify -u low -h string:x-dunst-stack-tag:obscreenshot -i /usr/share/archcraft/icons/dunst/picture.png'
|
||||
${notify_cmd_shot} "Copied to clipboard."
|
||||
paplay /usr/share/sounds/freedesktop/stereo/screen-capture.oga &>/dev/null &
|
||||
viewnior ${dir}/"$file"
|
||||
if [[ -e "$dir/$file" ]]; then
|
||||
${notify_cmd_shot} "Screenshot Saved."
|
||||
else
|
||||
${notify_cmd_shot} "Screenshot Deleted."
|
||||
fi
|
||||
}
|
||||
|
||||
# copy screenshot to clipboard
|
||||
copy_shot () {
|
||||
tee "$file" | xclip -selection clipboard -t image/png
|
||||
}
|
||||
|
||||
# countdown
|
||||
countdown () {
|
||||
for sec in `seq $1 -1 1`; do
|
||||
dunstify -t 1000 -h string:x-dunst-stack-tag:screenshottimer -i /usr/share/archcraft/icons/dunst/timer.png "Taking shot in : $sec"
|
||||
sleep 1
|
||||
done
|
||||
}
|
||||
|
||||
# take shots
|
||||
shotnow () {
|
||||
cd ${dir} && maim -u -f png | copy_shot
|
||||
notify_view
|
||||
}
|
||||
|
||||
shot5 () {
|
||||
countdown '5'
|
||||
sleep 1 && cd ${dir} && maim -u -f png | copy_shot
|
||||
notify_view
|
||||
}
|
||||
|
||||
shot10 () {
|
||||
countdown '10'
|
||||
sleep 1 && cd ${dir} && maim -u -f png | copy_shot
|
||||
notify_view
|
||||
}
|
||||
|
||||
shotwin () {
|
||||
cd ${dir} && maim -u -f png -i `xdotool getactivewindow` | copy_shot
|
||||
notify_view
|
||||
}
|
||||
|
||||
shotarea () {
|
||||
cd ${dir} && maim -u -f png -s -b 2 -c 0.35,0.55,0.85,0.25 -l | copy_shot
|
||||
notify_view
|
||||
}
|
||||
|
||||
# execute
|
||||
if [[ "$1" == "--now" ]]; then
|
||||
shotnow
|
||||
elif [[ "$1" == "--in5" ]]; then
|
||||
shot5
|
||||
elif [[ "$1" == "--in10" ]]; then
|
||||
shot10
|
||||
elif [[ "$1" == "--win" ]]; then
|
||||
shotwin
|
||||
elif [[ "$1" == "--area" ]]; then
|
||||
shotarea
|
||||
else
|
||||
echo -e "Available Options : --now --in5 --in10 --win --area"
|
||||
fi
|
||||
|
||||
exit 0
|
||||
20
config/i3/scripts/i3_term
Executable file
20
config/i3/scripts/i3_term
Executable file
@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
##
|
||||
## launch alacritty with i3 config
|
||||
|
||||
# i3 directory
|
||||
DIR="$HOME/.config/i3"
|
||||
CONFIG="$DIR/alacritty/alacritty.yml"
|
||||
|
||||
if [ "$1" == "--float" ]; then
|
||||
alacritty --class 'alacritty-float,alacritty-float' --config-file "$CONFIG"
|
||||
elif [ "$1" == "--full" ]; then
|
||||
alacritty --class 'Fullscreen,Fullscreen' --config-file "$CONFIG" \
|
||||
-o window.startup_mode=fullscreen \
|
||||
window.padding.x=30 window.padding.y=30 \
|
||||
window.opacity=0.95 font.size=14
|
||||
else
|
||||
alacritty --config-file "$CONFIG"
|
||||
fi
|
||||
83
config/i3/scripts/i3_volume
Executable file
83
config/i3/scripts/i3_volume
Executable file
@ -0,0 +1,83 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
##
|
||||
## Script to manage speaker volume on Archcraft.
|
||||
|
||||
# Icons
|
||||
iDIR='/usr/share/archcraft/icons/dunst'
|
||||
notify_cmd='dunstify -u low -h string:x-dunst-stack-tag:obvolume'
|
||||
|
||||
# Get Volume
|
||||
get_volume() {
|
||||
echo "`pulsemixer --get-volume | cut -d' ' -f1`"
|
||||
}
|
||||
|
||||
# Get icons
|
||||
get_icon() {
|
||||
current="$(get_volume)"
|
||||
if [[ "$current" -eq "0" ]]; then
|
||||
icon="$iDIR/volume-mute.png"
|
||||
elif [[ ("$current" -ge "0") && ("$current" -le "30") ]]; then
|
||||
icon="$iDIR/volume-low.png"
|
||||
elif [[ ("$current" -ge "30") && ("$current" -le "60") ]]; then
|
||||
icon="$iDIR/volume-mid.png"
|
||||
elif [[ ("$current" -ge "60") && ("$current" -le "100") ]]; then
|
||||
icon="$iDIR/volume-high.png"
|
||||
fi
|
||||
}
|
||||
|
||||
# Notify
|
||||
notify_user() {
|
||||
${notify_cmd} -i "$icon" "Volume : $(get_volume)%"
|
||||
}
|
||||
|
||||
# Increase Volume
|
||||
inc_volume() {
|
||||
[[ `pulsemixer --get-mute` == 1 ]] && pulsemixer --unmute
|
||||
pulsemixer --max-volume 100 --change-volume +5 && get_icon && notify_user
|
||||
}
|
||||
|
||||
# Decrease Volume
|
||||
dec_volume() {
|
||||
[[ `pulsemixer --get-mute` == 1 ]] && pulsemixer --unmute
|
||||
pulsemixer --max-volume 100 --change-volume -5 && get_icon && notify_user
|
||||
}
|
||||
|
||||
# Toggle Mute
|
||||
toggle_mute() {
|
||||
if [[ `pulsemixer --get-mute` == 0 ]]; then
|
||||
pulsemixer --toggle-mute && ${notify_cmd} -i "$iDIR/volume-mute.png" "Mute"
|
||||
else
|
||||
pulsemixer --toggle-mute && get_icon && ${notify_cmd} -i "$icon" "Unmute"
|
||||
fi
|
||||
}
|
||||
|
||||
# Toggle Mic
|
||||
toggle_mic() {
|
||||
ID="`pulsemixer --list-sources | grep 'Default' | cut -d',' -f1 | cut -d' ' -f3`"
|
||||
if [[ `pulsemixer --id $ID --get-mute` == 0 ]]; then
|
||||
pulsemixer --id ${ID} --toggle-mute && ${notify_cmd} -i "$iDIR/microphone-mute.png" "Microphone Switched OFF"
|
||||
else
|
||||
pulsemixer --id ${ID} --toggle-mute && ${notify_cmd} -i "$iDIR/microphone.png" "Microphone Switched ON"
|
||||
fi
|
||||
}
|
||||
|
||||
# Execute accordingly
|
||||
if [[ -x `which pulsemixer` ]]; then
|
||||
if [[ "$1" == "--get" ]]; then
|
||||
get_volume
|
||||
elif [[ "$1" == "--inc" ]]; then
|
||||
inc_volume
|
||||
elif [[ "$1" == "--dec" ]]; then
|
||||
dec_volume
|
||||
elif [[ "$1" == "--toggle" ]]; then
|
||||
toggle_mute
|
||||
elif [[ "$1" == "--toggle-mic" ]]; then
|
||||
toggle_mic
|
||||
else
|
||||
echo $(get_volume)%
|
||||
fi
|
||||
else
|
||||
${notify_cmd} "'pulsemixer' is not installed."
|
||||
fi
|
||||
924
config/i3/scripts/network_menu
Executable file
924
config/i3/scripts/network_menu
Executable file
@ -0,0 +1,924 @@
|
||||
#!/usr/bin/env python3
|
||||
# encoding:utf8
|
||||
"""NetworkManager command line dmenu script.
|
||||
|
||||
To add new connections or enable/disable networking requires policykit
|
||||
permissions setup per:
|
||||
https://wiki.archlinux.org/index.php/NetworkManager#Set_up_PolicyKit_permissions
|
||||
|
||||
OR running the script as root
|
||||
|
||||
Add dmenu options and default terminal if desired to
|
||||
~/.config/i3/themes/networkmenu_config.ini
|
||||
|
||||
"""
|
||||
import pathlib
|
||||
import struct
|
||||
import configparser
|
||||
import locale
|
||||
import os
|
||||
from os.path import expanduser
|
||||
import shlex
|
||||
from shutil import which
|
||||
import sys
|
||||
from time import sleep
|
||||
import uuid
|
||||
import subprocess
|
||||
|
||||
# pylint: disable=import-error
|
||||
import gi
|
||||
gi.require_version('NM', '1.0')
|
||||
from gi.repository import GLib, NM # noqa pylint: disable=wrong-import-position
|
||||
# pylint: enable=import-error
|
||||
|
||||
ENV = os.environ.copy()
|
||||
ENV['LC_ALL'] = 'C'
|
||||
ENC = locale.getpreferredencoding()
|
||||
|
||||
CONF = configparser.ConfigParser()
|
||||
CONF.read(expanduser("~/.config/i3/themes/networkmenu_config.ini"))
|
||||
|
||||
|
||||
def cli_args():
|
||||
""" Don't override dmenu_cmd function arguments with CLI args. Removes -l
|
||||
and -p if those are passed on the command line.
|
||||
|
||||
Exception: if -l is passed and dmenu_command is not defined, assume that the
|
||||
user wants to switch dmenu to the vertical layout and include -l.
|
||||
|
||||
Returns: List of additional CLI arguments
|
||||
|
||||
"""
|
||||
args = sys.argv[1:]
|
||||
cmd = CONF.get('dmenu', 'dmenu_command', fallback=False)
|
||||
if "-l" in args or "-p" in args:
|
||||
for nope in ['-l', '-p'] if cmd is not False else ['-p']:
|
||||
try:
|
||||
nope_idx = args.index(nope)
|
||||
del args[nope_idx]
|
||||
del args[nope_idx]
|
||||
except ValueError:
|
||||
pass
|
||||
return args
|
||||
|
||||
|
||||
def dmenu_pass(command, color):
|
||||
"""Check if dmenu passphrase patch is applied and return the correct command
|
||||
line arg list
|
||||
|
||||
Args: command - string
|
||||
color - obscure color string
|
||||
Returns: list or None
|
||||
|
||||
"""
|
||||
if command != 'dmenu':
|
||||
return None
|
||||
try:
|
||||
# Check for dmenu password patch
|
||||
dm_patch = b'P' in subprocess.run(["dmenu", "-h"],
|
||||
capture_output=True,
|
||||
check=False).stderr
|
||||
except FileNotFoundError:
|
||||
dm_patch = False
|
||||
return ["-P"] if dm_patch else ["-nb", color, "-nf", color]
|
||||
|
||||
|
||||
def dmenu_cmd(num_lines, prompt="Networks", active_lines=None):
|
||||
"""Parse nmd.ini for menu options
|
||||
|
||||
Args: args - num_lines: number of lines to display
|
||||
prompt: prompt to show
|
||||
active_lines: list of line numbers to tag as active
|
||||
Returns: command invocation (as a list of strings) for example
|
||||
["dmenu", "-l", "<num_lines>", "-p", "<prompt>", "-i"]
|
||||
|
||||
"""
|
||||
# Create command string
|
||||
commands = {"dmenu": ["-p", str(prompt)],
|
||||
"rofi": ["-dmenu", "-p", str(prompt), "-l", str(num_lines)],
|
||||
"bemenu": ["-p", str(prompt)],
|
||||
"wofi": ["-p", str(prompt)]}
|
||||
command = shlex.split(CONF.get('dmenu', 'dmenu_command', fallback="dmenu"))
|
||||
command.extend(cli_args())
|
||||
command.extend(commands.get(command[0], []))
|
||||
# Rofi Highlighting
|
||||
rofi_highlight = CONF.getboolean('dmenu', 'rofi_highlight', fallback=False)
|
||||
if rofi_highlight is True and command[0] == "rofi" and active_lines:
|
||||
command.extend(["-a", ",".join([str(num) for num in active_lines])])
|
||||
# Passphrase prompts
|
||||
obscure = CONF.getboolean('dmenu_passphrase', 'obscure', fallback=False)
|
||||
if prompt == "Passphrase" and obscure is True:
|
||||
obscure_color = CONF.get('dmenu_passphrase', 'obscure_color', fallback='#222222')
|
||||
pass_prompts = {"dmenu": dmenu_pass(command[0], obscure_color),
|
||||
"rofi": ['-password'],
|
||||
"bemenu": ['-x'],
|
||||
"wofi": ['-P']}
|
||||
command.extend(pass_prompts.get(command[0], []))
|
||||
return command
|
||||
|
||||
|
||||
def choose_adapter(client):
|
||||
"""If there is more than one wifi adapter installed, ask which one to use
|
||||
|
||||
"""
|
||||
devices = client.get_devices()
|
||||
devices = [i for i in devices if i.get_device_type() == NM.DeviceType.WIFI]
|
||||
if not devices:
|
||||
return None
|
||||
if len(devices) == 1:
|
||||
return devices[0]
|
||||
device_names = "\n".join([d.get_iface() for d in devices])
|
||||
sel = subprocess.run(dmenu_cmd(len(devices), "CHOOSE ADAPTER:"),
|
||||
capture_output=True,
|
||||
check=False,
|
||||
env=ENV,
|
||||
input=device_names,
|
||||
encoding=ENC).stdout
|
||||
if not sel.strip():
|
||||
sys.exit()
|
||||
devices = [i for i in devices if i.get_iface() == sel.strip()]
|
||||
assert len(devices) == 1
|
||||
return devices[0]
|
||||
|
||||
|
||||
def is_installed(cmd):
|
||||
"""Check if a utility is installed"""
|
||||
return which(cmd) is not None
|
||||
|
||||
|
||||
def bluetooth_get_enabled():
|
||||
"""Check if bluetooth is enabled via rfkill.
|
||||
|
||||
Returns None if no bluetooth device was found.
|
||||
"""
|
||||
# See https://www.kernel.org/doc/Documentation/ABI/stable/sysfs-class-rfkill
|
||||
for path in pathlib.Path('/sys/class/rfkill/').glob('rfkill*'):
|
||||
if (path / 'type').read_text().strip() == 'bluetooth':
|
||||
return (path / 'soft').read_text().strip() == '0'
|
||||
return None
|
||||
|
||||
|
||||
def create_other_actions(client):
|
||||
"""Return list of other actions that can be taken
|
||||
|
||||
"""
|
||||
networking_enabled = client.networking_get_enabled()
|
||||
networking_action = "Disable" if networking_enabled else "Enable"
|
||||
|
||||
wifi_enabled = client.wireless_get_enabled()
|
||||
wifi_action = "Disable" if wifi_enabled else "Enable"
|
||||
|
||||
bluetooth_enabled = bluetooth_get_enabled()
|
||||
bluetooth_action = "Disable" if bluetooth_enabled else "Enable"
|
||||
|
||||
actions = [Action(f"{wifi_action} Wifi", toggle_wifi,
|
||||
not wifi_enabled),
|
||||
Action(f"{networking_action} Networking",
|
||||
toggle_networking, not networking_enabled)]
|
||||
if bluetooth_enabled is not None:
|
||||
actions.append(Action(f"{bluetooth_action} Bluetooth",
|
||||
toggle_bluetooth, not bluetooth_enabled))
|
||||
actions += [Action("Launch Connection Manager", launch_connection_editor),
|
||||
Action("Delete a Connection", delete_connection)]
|
||||
if wifi_enabled:
|
||||
actions.append(Action("Rescan Wifi Networks", rescan_wifi))
|
||||
return actions
|
||||
|
||||
|
||||
def rescan_wifi():
|
||||
"""
|
||||
Rescan Wifi Access Points
|
||||
"""
|
||||
delay = CONF.getint('nmdm', 'rescan_delay', fallback=5)
|
||||
for dev in CLIENT.get_devices():
|
||||
if gi.repository.NM.DeviceWifi == type(dev):
|
||||
try:
|
||||
dev.request_scan_async(None, rescan_cb, None)
|
||||
LOOP.run()
|
||||
sleep(delay)
|
||||
notify("Wifi scan complete")
|
||||
main()
|
||||
except gi.repository.GLib.Error as err:
|
||||
# Too frequent rescan error
|
||||
notify("Wifi rescan failed", urgency="critical")
|
||||
if not err.code == 6: # pylint: disable=no-member
|
||||
raise err
|
||||
|
||||
|
||||
def rescan_cb(dev, res, data):
|
||||
"""Callback for rescan_wifi. Just for notifications
|
||||
|
||||
"""
|
||||
if dev.request_scan_finish(res) is True:
|
||||
notify("Wifi scan running...")
|
||||
else:
|
||||
notify("Wifi scan failed", urgency="critical")
|
||||
LOOP.quit()
|
||||
|
||||
|
||||
def ssid_to_utf8(nm_ap):
|
||||
""" Convert binary ssid to utf-8 """
|
||||
ssid = nm_ap.get_ssid()
|
||||
if not ssid:
|
||||
return ""
|
||||
ret = NM.utils_ssid_to_utf8(ssid.get_data())
|
||||
return ret
|
||||
|
||||
|
||||
def prompt_saved(saved_cons):
|
||||
"""Prompt for a saved connection."""
|
||||
actions = create_saved_actions(saved_cons)
|
||||
sel = get_selection(actions)
|
||||
sel()
|
||||
|
||||
|
||||
def ap_security(nm_ap):
|
||||
"""Parse the security flags to return a string with 'WPA2', etc. """
|
||||
flags = nm_ap.get_flags()
|
||||
wpa_flags = nm_ap.get_wpa_flags()
|
||||
rsn_flags = nm_ap.get_rsn_flags()
|
||||
sec_str = ""
|
||||
if ((flags & getattr(NM, '80211ApFlags').PRIVACY) and
|
||||
(wpa_flags == 0) and (rsn_flags == 0)):
|
||||
sec_str = " WEP"
|
||||
if wpa_flags:
|
||||
sec_str = " WPA1"
|
||||
if rsn_flags & getattr(NM, '80211ApSecurityFlags').KEY_MGMT_PSK:
|
||||
sec_str += " WPA2"
|
||||
if rsn_flags & getattr(NM, '80211ApSecurityFlags').KEY_MGMT_SAE:
|
||||
sec_str += " WPA3"
|
||||
if ((wpa_flags & getattr(NM, '80211ApSecurityFlags').KEY_MGMT_802_1X) or
|
||||
(rsn_flags & getattr(NM, '80211ApSecurityFlags').KEY_MGMT_802_1X)):
|
||||
sec_str += " 802.1X"
|
||||
if ((wpa_flags & getattr(NM, '80211ApSecurityFlags').KEY_MGMT_OWE) or
|
||||
(rsn_flags & getattr(NM, '80211ApSecurityFlags').KEY_MGMT_OWE)):
|
||||
sec_str += " OWE"
|
||||
|
||||
# If there is no security use "--"
|
||||
if sec_str == "":
|
||||
sec_str = "--"
|
||||
return sec_str.lstrip()
|
||||
|
||||
|
||||
class Action(): # pylint: disable=too-few-public-methods
|
||||
"""Helper class to execute functions from a string variable"""
|
||||
def __init__(self,
|
||||
name,
|
||||
func,
|
||||
args=None,
|
||||
active=False):
|
||||
self.name = name
|
||||
self.func = func
|
||||
self.is_active = active
|
||||
if args is None:
|
||||
self.args = None
|
||||
elif isinstance(args, list):
|
||||
self.args = args
|
||||
else:
|
||||
self.args = [args]
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
def __call__(self):
|
||||
if self.args is None:
|
||||
self.func()
|
||||
else:
|
||||
self.func(*self.args)
|
||||
|
||||
|
||||
def conn_matches_adapter(conn, adapter):
|
||||
"""Return True if the connection is applicable for the given adapter.
|
||||
|
||||
There seem to be two ways for a connection specify what interface it belongs
|
||||
to:
|
||||
|
||||
- By setting 'mac-address' in [wifi] to the adapter's MAC
|
||||
- By setting 'interface-name` in [connection] to the adapter's name.
|
||||
|
||||
Depending on how the connection was added, it seems like either
|
||||
'mac-address', 'interface-name' or neither of both is set.
|
||||
"""
|
||||
# [wifi] mac-address
|
||||
setting_wireless = conn.get_setting_wireless()
|
||||
mac = setting_wireless.get_mac_address()
|
||||
if mac is not None:
|
||||
return mac == adapter.get_permanent_hw_address()
|
||||
|
||||
# [connection] interface-name
|
||||
setting_connection = conn.get_setting_connection()
|
||||
interface = setting_connection.get_interface_name()
|
||||
if interface is not None:
|
||||
return interface == adapter.get_iface()
|
||||
|
||||
# Neither is set, let's assume this connection is for multiple/all adapters.
|
||||
return True
|
||||
|
||||
|
||||
def process_ap(nm_ap, is_active, adapter):
|
||||
"""Activate/Deactivate a connection and get password if required"""
|
||||
if is_active:
|
||||
CLIENT.deactivate_connection_async(nm_ap, None, deactivate_cb, nm_ap)
|
||||
LOOP.run()
|
||||
else:
|
||||
conns_cur = [i for i in CONNS if
|
||||
i.get_setting_wireless() is not None and
|
||||
conn_matches_adapter(i, adapter)]
|
||||
con = nm_ap.filter_connections(conns_cur)
|
||||
if len(con) > 1:
|
||||
raise ValueError("There are multiple connections possible")
|
||||
|
||||
if len(con) == 1:
|
||||
CLIENT.activate_connection_async(con[0], adapter, nm_ap.get_path(),
|
||||
None, activate_cb, nm_ap)
|
||||
LOOP.run()
|
||||
else:
|
||||
if ap_security(nm_ap) != "--":
|
||||
password = get_passphrase()
|
||||
else:
|
||||
password = ""
|
||||
set_new_connection(nm_ap, password, adapter)
|
||||
|
||||
|
||||
def activate_cb(dev, res, data):
|
||||
"""Notification if activate connection completed successfully
|
||||
|
||||
"""
|
||||
try:
|
||||
conn = dev.activate_connection_finish(res)
|
||||
except GLib.Error:
|
||||
conn = None
|
||||
if conn is not None:
|
||||
notify(f"Activated {conn.get_id()}")
|
||||
else:
|
||||
notify(f"Problem activating {data.get_id()}", urgency="critical")
|
||||
LOOP.quit()
|
||||
|
||||
|
||||
def deactivate_cb(dev, res, data):
|
||||
"""Notification if deactivate connection completed successfully
|
||||
|
||||
"""
|
||||
if dev.deactivate_connection_finish(res) is True:
|
||||
notify(f"Deactivated {data.get_id()}")
|
||||
else:
|
||||
notify(f"Problem deactivating {data.get_id()}", urgency="critical")
|
||||
LOOP.quit()
|
||||
|
||||
|
||||
def process_vpngsm(con, activate):
|
||||
"""Activate/deactive VPN or GSM connections"""
|
||||
if activate:
|
||||
CLIENT.activate_connection_async(con, None, None,
|
||||
None, activate_cb, con)
|
||||
else:
|
||||
CLIENT.deactivate_connection_async(con, None, deactivate_cb, con)
|
||||
LOOP.run()
|
||||
|
||||
|
||||
def create_ap_actions(aps, active_ap, active_connection, adapter): # noqa pylint: disable=too-many-locals,line-too-long
|
||||
"""For each AP in a list, create the string and its attached function
|
||||
(activate/deactivate)
|
||||
|
||||
"""
|
||||
active_ap_bssid = active_ap.get_bssid() if active_ap is not None else ""
|
||||
|
||||
names = [ssid_to_utf8(ap) for ap in aps]
|
||||
max_len_name = max([len(name) for name in names]) if names else 0
|
||||
secs = [ap_security(ap) for ap in aps]
|
||||
max_len_sec = max([len(sec) for sec in secs]) if secs else 0
|
||||
|
||||
ap_actions = []
|
||||
|
||||
for nm_ap, name, sec in zip(aps, names, secs):
|
||||
bars = NM.utils_wifi_strength_bars(nm_ap.get_strength())
|
||||
wifi_chars = CONF.get("dmenu", "wifi_chars", fallback=False)
|
||||
if wifi_chars:
|
||||
bars = "".join([wifi_chars[i] for i, j in enumerate(bars) if j == '*'])
|
||||
is_active = nm_ap.get_bssid() == active_ap_bssid
|
||||
compact = CONF.getboolean("dmenu", "compact", fallback=False)
|
||||
if compact:
|
||||
action_name = f"{name} {sec} {bars}"
|
||||
else:
|
||||
action_name = f"{name:<{max_len_name}s} {sec:<{max_len_sec}s} {bars:>4}"
|
||||
if is_active:
|
||||
ap_actions.append(Action(action_name, process_ap,
|
||||
[active_connection, True, adapter],
|
||||
active=True))
|
||||
else:
|
||||
ap_actions.append(Action(action_name, process_ap,
|
||||
[nm_ap, False, adapter]))
|
||||
return ap_actions
|
||||
|
||||
|
||||
def create_vpn_actions(vpns, active):
|
||||
"""Create the list of strings to display with associated function
|
||||
(activate/deactivate) for VPN connections.
|
||||
|
||||
"""
|
||||
active_vpns = [i for i in active if i.get_vpn()]
|
||||
return _create_vpngsm_actions(vpns, active_vpns, "VPN")
|
||||
|
||||
|
||||
def create_wireguard_actions(wgs, active):
|
||||
"""Create the list of strings to display with associated function
|
||||
(activate/deactivate) for Wireguard connections.
|
||||
|
||||
"""
|
||||
active_wgs = [i for i in active if i.get_connection_type() == "wireguard"]
|
||||
return _create_vpngsm_actions(wgs, active_wgs, "Wireguard")
|
||||
|
||||
|
||||
def create_eth_actions(eths, active):
|
||||
"""Create the list of strings to display with associated function
|
||||
(activate/deactivate) for Ethernet connections.
|
||||
|
||||
"""
|
||||
active_eths = [i for i in active if 'ethernet' in i.get_connection_type()]
|
||||
return _create_vpngsm_actions(eths, active_eths, "Eth")
|
||||
|
||||
|
||||
def create_gsm_actions(gsms, active):
|
||||
"""Create the list of strings to display with associated function
|
||||
(activate/deactivate) GSM connections."""
|
||||
active_gsms = [i for i in active if
|
||||
i.get_connection() is not None and
|
||||
i.get_connection().is_type(NM.SETTING_GSM_SETTING_NAME)]
|
||||
return _create_vpngsm_actions(gsms, active_gsms, "GSM")
|
||||
|
||||
|
||||
def create_blue_actions(blues, active):
|
||||
"""Create the list of strings to display with associated function
|
||||
(activate/deactivate) Bluetooth connections."""
|
||||
active_blues = [i for i in active if
|
||||
i.get_connection() is not None and
|
||||
i.get_connection().is_type(NM.SETTING_BLUETOOTH_SETTING_NAME)]
|
||||
return _create_vpngsm_actions(blues, active_blues, "Bluetooth")
|
||||
|
||||
|
||||
def create_saved_actions(saved):
|
||||
"""Create the list of strings to display with associated function
|
||||
(activate/deactivate) for VPN connections.
|
||||
|
||||
"""
|
||||
return _create_vpngsm_actions(saved, [], "SAVED")
|
||||
|
||||
|
||||
def _create_vpngsm_actions(cons, active_cons, label):
|
||||
active_con_ids = [a.get_id() for a in active_cons]
|
||||
actions = []
|
||||
for con in cons:
|
||||
is_active = con.get_id() in active_con_ids
|
||||
action_name = f"{con.get_id()}:{label}"
|
||||
if is_active:
|
||||
active_connection = [a for a in active_cons
|
||||
if a.get_id() == con.get_id()]
|
||||
if len(active_connection) != 1:
|
||||
raise ValueError(f"Multiple active connections match {con.get_id()}")
|
||||
active_connection = active_connection[0]
|
||||
|
||||
actions.append(Action(action_name, process_vpngsm,
|
||||
[active_connection, False], active=True))
|
||||
else:
|
||||
actions.append(Action(action_name, process_vpngsm,
|
||||
[con, True]))
|
||||
return actions
|
||||
|
||||
|
||||
def create_wwan_actions(client):
|
||||
"""Create WWWAN actions
|
||||
|
||||
"""
|
||||
wwan_enabled = client.wwan_get_enabled()
|
||||
wwan_action = "Disable" if wwan_enabled else "Enable"
|
||||
return [Action(f"{wwan_action} WWAN", toggle_wwan, not wwan_enabled)]
|
||||
|
||||
|
||||
def combine_actions(eths, aps, vpns, wgs, gsms, blues, wwan, others, saved):
|
||||
# pylint: disable=too-many-arguments
|
||||
"""Combine all given actions into a list of actions.
|
||||
|
||||
Args: args - eths: list of Actions
|
||||
aps: list of Actions
|
||||
vpns: list of Actions
|
||||
gsms: list of Actions
|
||||
blues: list of Actions
|
||||
wwan: list of Actions
|
||||
others: list of Actions
|
||||
"""
|
||||
compact = CONF.getboolean("dmenu", "compact", fallback=False)
|
||||
empty_action = [Action('', None)] if not compact else []
|
||||
all_actions = []
|
||||
all_actions += eths + empty_action if eths else []
|
||||
all_actions += aps + empty_action if aps else []
|
||||
all_actions += vpns + empty_action if vpns else []
|
||||
all_actions += wgs + empty_action if wgs else []
|
||||
all_actions += gsms + empty_action if (gsms and wwan) else []
|
||||
all_actions += blues + empty_action if blues else []
|
||||
all_actions += wwan + empty_action if wwan else []
|
||||
all_actions += others + empty_action if others else []
|
||||
all_actions += saved + empty_action if saved else []
|
||||
return all_actions
|
||||
|
||||
|
||||
def get_selection(all_actions):
|
||||
"""Spawn dmenu for selection and execute the associated action."""
|
||||
rofi_highlight = CONF.getboolean('dmenu', 'rofi_highlight', fallback=False)
|
||||
inp = []
|
||||
|
||||
if rofi_highlight is True:
|
||||
inp = [str(action) for action in all_actions]
|
||||
else:
|
||||
inp = [('== ' if action.is_active else ' ') + str(action)
|
||||
for action in all_actions]
|
||||
active_lines = [index for index, action in enumerate(all_actions)
|
||||
if action.is_active]
|
||||
|
||||
command = dmenu_cmd(len(inp), active_lines=active_lines)
|
||||
sel = subprocess.run(command,
|
||||
capture_output=True,
|
||||
check=False,
|
||||
input="\n".join(inp),
|
||||
encoding=ENC,
|
||||
env=ENV).stdout
|
||||
|
||||
if not sel.rstrip():
|
||||
sys.exit()
|
||||
|
||||
if rofi_highlight is False:
|
||||
action = [i for i in all_actions
|
||||
if ((str(i).strip() == str(sel.strip())
|
||||
and not i.is_active) or
|
||||
('== ' + str(i) == str(sel.rstrip('\n'))
|
||||
and i.is_active))]
|
||||
else:
|
||||
action = [i for i in all_actions if str(i).strip() == sel.strip()]
|
||||
assert len(action) == 1, f"Selection was ambiguous: '{str(sel.strip())}'"
|
||||
return action[0]
|
||||
|
||||
|
||||
def toggle_networking(enable):
|
||||
"""Enable/disable networking
|
||||
|
||||
Args: enable - boolean
|
||||
|
||||
"""
|
||||
toggle = GLib.Variant.new_tuple(GLib.Variant.new_boolean(enable))
|
||||
try:
|
||||
CLIENT.dbus_call(NM.DBUS_PATH, NM.DBUS_INTERFACE, "Enable", toggle,
|
||||
None, -1, None, None, None)
|
||||
except AttributeError:
|
||||
# Workaround for older versions of python-gobject
|
||||
CLIENT.networking_set_enabled(enable)
|
||||
notify(f"Networking {'enabled' if enable is True else 'disabled'}")
|
||||
|
||||
|
||||
def toggle_wifi(enable):
|
||||
"""Enable/disable Wifi
|
||||
|
||||
Args: enable - boolean
|
||||
|
||||
"""
|
||||
toggle = GLib.Variant.new_boolean(enable)
|
||||
try:
|
||||
CLIENT.dbus_set_property(NM.DBUS_PATH, NM.DBUS_INTERFACE, "WirelessEnabled", toggle,
|
||||
-1, None, None, None)
|
||||
except AttributeError:
|
||||
# Workaround for older versions of python-gobject
|
||||
CLIENT.wireless_set_enabled(enable)
|
||||
notify(f"Wifi {'enabled' if enable is True else 'disabled'}")
|
||||
|
||||
|
||||
def toggle_wwan(enable):
|
||||
"""Enable/disable WWAN
|
||||
|
||||
Args: enable - boolean
|
||||
|
||||
"""
|
||||
toggle = GLib.Variant.new_boolean(enable)
|
||||
try:
|
||||
CLIENT.dbus_set_property(NM.DBUS_PATH, NM.DBUS_INTERFACE, "WwanEnabled", toggle,
|
||||
-1, None, None, None)
|
||||
except AttributeError:
|
||||
# Workaround for older versions of python-gobject
|
||||
CLIENT.wwan_set_enabled(enable)
|
||||
notify(f"Wwan {'enabled' if enable is True else 'disabled'}")
|
||||
|
||||
|
||||
def toggle_bluetooth(enable):
|
||||
"""Enable/disable Bluetooth
|
||||
|
||||
Args: enable - boolean
|
||||
|
||||
References:
|
||||
https://github.com/blueman-project/blueman/blob/master/blueman/plugins/mechanism/RfKill.py
|
||||
https://www.kernel.org/doc/html/latest/driver-api/rfkill.html
|
||||
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/include/uapi/linux/rfkill.h?h=v5.8.9
|
||||
|
||||
"""
|
||||
type_bluetooth = 2
|
||||
op_change_all = 3
|
||||
idx = 0
|
||||
soft_state = 0 if enable else 1
|
||||
hard_state = 0
|
||||
|
||||
data = struct.pack("IBBBB", idx, type_bluetooth, op_change_all,
|
||||
soft_state, hard_state)
|
||||
|
||||
try:
|
||||
with open('/dev/rfkill', 'r+b', buffering=0) as rff:
|
||||
rff.write(data)
|
||||
except PermissionError:
|
||||
notify("Lacking permission to write to /dev/rfkill.",
|
||||
"Check README for configuration options.",
|
||||
urgency="critical")
|
||||
else:
|
||||
notify(f"Bluetooth {'enabled' if enable else 'disabled'}")
|
||||
|
||||
|
||||
def launch_connection_editor():
|
||||
"""Launch nmtui or the gui nm-connection-editor
|
||||
|
||||
"""
|
||||
terminal = CONF.get("editor", "terminal", fallback="xterm")
|
||||
gui_if_available = CONF.getboolean("editor", "gui_if_available", fallback=True)
|
||||
guis = ["gnome-control-center", "nm-connection-editor"]
|
||||
if gui_if_available is True:
|
||||
for gui in guis:
|
||||
if is_installed(gui):
|
||||
subprocess.run(gui, check=False)
|
||||
return
|
||||
if is_installed("nmtui"):
|
||||
subprocess.run([terminal, "-e", "nmtui"], check=False)
|
||||
return
|
||||
notify("No network connection editor installed", urgency="critical")
|
||||
|
||||
|
||||
def get_passphrase():
|
||||
"""Get a password
|
||||
|
||||
Returns: string
|
||||
|
||||
"""
|
||||
pinentry = CONF.get("dmenu", "pinentry", fallback=None)
|
||||
if pinentry:
|
||||
pin = ""
|
||||
out = subprocess.run(pinentry,
|
||||
capture_output=True,
|
||||
check=False,
|
||||
encoding=ENC,
|
||||
input='setdesc Get network password\ngetpin\n').stdout
|
||||
if out:
|
||||
res = out.split("\n")[2]
|
||||
if res.startswith("D "):
|
||||
pin = res.split("D ")[1]
|
||||
return pin
|
||||
return subprocess.run(dmenu_cmd(0, "Passphrase"),
|
||||
stdin=subprocess.DEVNULL,
|
||||
capture_output=True,
|
||||
check=False,
|
||||
encoding=ENC).stdout
|
||||
|
||||
|
||||
def delete_connection():
|
||||
"""Display list of NM connections and delete the selected one
|
||||
|
||||
"""
|
||||
conn_acts = [Action(i.get_id(), i.delete_async, args=[None, delete_cb, None]) for i in CONNS]
|
||||
conn_names = "\n".join([str(i) for i in conn_acts])
|
||||
sel = subprocess.run(dmenu_cmd(len(conn_acts), "CHOOSE CONNECTION TO DELETE:"),
|
||||
capture_output=True,
|
||||
check=False,
|
||||
input=conn_names,
|
||||
encoding=ENC,
|
||||
env=ENV).stdout
|
||||
if not sel.strip():
|
||||
sys.exit()
|
||||
action = [i for i in conn_acts if str(i) == sel.rstrip("\n")]
|
||||
assert len(action) == 1, f"Selection was ambiguous: {str(sel)}"
|
||||
action[0]()
|
||||
LOOP.run()
|
||||
|
||||
|
||||
def delete_cb(dev, res, data):
|
||||
"""Notification if delete completed successfully
|
||||
|
||||
"""
|
||||
if dev.delete_finish(res) is True:
|
||||
notify(f"Deleted {dev.get_id()}")
|
||||
else:
|
||||
notify(f"Problem deleting {dev.get_id()}", urgency="critical")
|
||||
LOOP.quit()
|
||||
|
||||
|
||||
def set_new_connection(nm_ap, nm_pw, adapter):
|
||||
"""Setup a new NetworkManager connection
|
||||
|
||||
Args: ap - NM.AccessPoint
|
||||
pw - string
|
||||
|
||||
"""
|
||||
nm_pw = str(nm_pw).strip()
|
||||
profile = create_wifi_profile(nm_ap, nm_pw, adapter)
|
||||
CLIENT.add_and_activate_connection_async(profile, adapter, nm_ap.get_path(),
|
||||
None, verify_conn, profile)
|
||||
LOOP.run()
|
||||
|
||||
|
||||
def create_wifi_profile(nm_ap, password, adapter):
|
||||
# pylint: disable=line-too-long
|
||||
# noqa From https://cgit.freedesktop.org/NetworkManager/NetworkManager/tree/examples/python/gi/add_connection.py
|
||||
# noqa and https://cgit.freedesktop.org/NetworkManager/NetworkManager/tree/examples/python/dbus/add-wifi-psk-connection.py
|
||||
# pylint: enable=line-too-long
|
||||
"""Create the NM profile given the AP and passphrase"""
|
||||
ap_sec = ap_security(nm_ap)
|
||||
profile = NM.SimpleConnection.new()
|
||||
|
||||
s_con = NM.SettingConnection.new()
|
||||
s_con.set_property(NM.SETTING_CONNECTION_ID, ssid_to_utf8(nm_ap))
|
||||
s_con.set_property(NM.SETTING_CONNECTION_UUID, str(uuid.uuid4()))
|
||||
s_con.set_property(NM.SETTING_CONNECTION_TYPE, "802-11-wireless")
|
||||
profile.add_setting(s_con)
|
||||
|
||||
s_wifi = NM.SettingWireless.new()
|
||||
s_wifi.set_property(NM.SETTING_WIRELESS_SSID, nm_ap.get_ssid())
|
||||
s_wifi.set_property(NM.SETTING_WIRELESS_MODE, 'infrastructure')
|
||||
s_wifi.set_property(NM.SETTING_WIRELESS_MAC_ADDRESS, adapter.get_permanent_hw_address())
|
||||
profile.add_setting(s_wifi)
|
||||
|
||||
s_ip4 = NM.SettingIP4Config.new()
|
||||
s_ip4.set_property(NM.SETTING_IP_CONFIG_METHOD, "auto")
|
||||
profile.add_setting(s_ip4)
|
||||
|
||||
s_ip6 = NM.SettingIP6Config.new()
|
||||
s_ip6.set_property(NM.SETTING_IP_CONFIG_METHOD, "auto")
|
||||
profile.add_setting(s_ip6)
|
||||
|
||||
if ap_sec != "--":
|
||||
s_wifi_sec = NM.SettingWirelessSecurity.new()
|
||||
if "WPA" in ap_sec:
|
||||
if "WPA3" in ap_sec:
|
||||
s_wifi_sec.set_property(NM.SETTING_WIRELESS_SECURITY_KEY_MGMT,
|
||||
"sae")
|
||||
else:
|
||||
s_wifi_sec.set_property(NM.SETTING_WIRELESS_SECURITY_KEY_MGMT,
|
||||
"wpa-psk")
|
||||
s_wifi_sec.set_property(NM.SETTING_WIRELESS_SECURITY_AUTH_ALG,
|
||||
"open")
|
||||
s_wifi_sec.set_property(NM.SETTING_WIRELESS_SECURITY_PSK, password)
|
||||
elif "WEP" in ap_sec:
|
||||
s_wifi_sec.set_property(NM.SETTING_WIRELESS_SECURITY_KEY_MGMT,
|
||||
"None")
|
||||
s_wifi_sec.set_property(NM.SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE,
|
||||
NM.WepKeyType.PASSPHRASE)
|
||||
s_wifi_sec.set_wep_key(0, password)
|
||||
profile.add_setting(s_wifi_sec)
|
||||
|
||||
return profile
|
||||
|
||||
|
||||
def verify_conn(client, result, data):
|
||||
"""Callback function for add_and_activate_connection_async
|
||||
|
||||
Check if connection completes successfully. Delete the connection if there
|
||||
is an error.
|
||||
|
||||
"""
|
||||
try:
|
||||
act_conn = client.add_and_activate_connection_finish(result)
|
||||
conn = act_conn.get_connection()
|
||||
if not all([conn.verify(),
|
||||
conn.verify_secrets(),
|
||||
data.verify(),
|
||||
data.verify_secrets()]):
|
||||
raise GLib.Error
|
||||
notify(f"Added {conn.get_id()}")
|
||||
except GLib.Error:
|
||||
try:
|
||||
notify(f"Connection to {conn.get_id()} failed",
|
||||
urgency="critical")
|
||||
conn.delete_async(None, None, None)
|
||||
except UnboundLocalError:
|
||||
pass
|
||||
finally:
|
||||
LOOP.quit()
|
||||
|
||||
|
||||
def create_ap_list(adapter, active_connections):
|
||||
"""Generate list of access points. Remove duplicate APs , keeping strongest
|
||||
ones and the active AP
|
||||
|
||||
Args: adapter
|
||||
active_connections - list of all active connections
|
||||
Returns: aps - list of access points
|
||||
active_ap - active AP
|
||||
active_ap_con - active Connection
|
||||
adapter
|
||||
|
||||
"""
|
||||
aps = []
|
||||
ap_names = []
|
||||
active_ap = adapter.get_active_access_point()
|
||||
aps_all = sorted(adapter.get_access_points(),
|
||||
key=lambda a: a.get_strength(), reverse=True)
|
||||
conns_cur = [i for i in CONNS if
|
||||
i.get_setting_wireless() is not None and
|
||||
conn_matches_adapter(i, adapter)]
|
||||
try:
|
||||
ap_conns = active_ap.filter_connections(conns_cur)
|
||||
active_ap_name = ssid_to_utf8(active_ap)
|
||||
active_ap_con = [active_conn for active_conn in active_connections
|
||||
if active_conn.get_connection() in ap_conns]
|
||||
except AttributeError:
|
||||
active_ap_name = None
|
||||
active_ap_con = []
|
||||
if len(active_ap_con) > 1:
|
||||
raise ValueError("Multiple connection profiles match"
|
||||
" the wireless AP")
|
||||
active_ap_con = active_ap_con[0] if active_ap_con else None
|
||||
for nm_ap in aps_all:
|
||||
ap_name = ssid_to_utf8(nm_ap)
|
||||
if nm_ap != active_ap and ap_name == active_ap_name:
|
||||
# Skip adding AP if it's not active but same name as active AP
|
||||
continue
|
||||
if ap_name not in ap_names:
|
||||
ap_names.append(ap_name)
|
||||
aps.append(nm_ap)
|
||||
return aps, active_ap, active_ap_con, adapter
|
||||
|
||||
|
||||
def notify(message, details=None, urgency="low"):
|
||||
"""Use notify-send if available for notifications
|
||||
|
||||
"""
|
||||
delay = CONF.getint('nmdm', 'rescan_delay', fallback=5)
|
||||
args = ["-u", urgency, "-a", "networkmanager-dmenu",
|
||||
"-t", str(delay * 1000), message]
|
||||
if details is not None:
|
||||
args.append(details)
|
||||
if is_installed("notify-send"):
|
||||
subprocess.run(["notify-send"] + args, check=False)
|
||||
|
||||
|
||||
def run(): # pylint: disable=too-many-locals
|
||||
"""Main script entrypoint"""
|
||||
active = CLIENT.get_active_connections()
|
||||
adapter = choose_adapter(CLIENT)
|
||||
if adapter:
|
||||
ap_actions = create_ap_actions(*create_ap_list(adapter, active))
|
||||
else:
|
||||
ap_actions = []
|
||||
|
||||
vpns = [i for i in CONNS if i.is_type(NM.SETTING_VPN_SETTING_NAME)]
|
||||
try:
|
||||
wgs = [i for i in CONNS if i.is_type(NM.SETTING_WIREGUARD_SETTING_NAME)]
|
||||
except AttributeError:
|
||||
# Workaround for older versions of python-gobject with no wireguard support
|
||||
wgs = []
|
||||
eths = [i for i in CONNS if i.is_type(NM.SETTING_WIRED_SETTING_NAME)]
|
||||
blues = [i for i in CONNS if i.is_type(NM.SETTING_BLUETOOTH_SETTING_NAME)]
|
||||
|
||||
vpn_actions = create_vpn_actions(vpns, active)
|
||||
wg_actions = create_wireguard_actions(wgs, active)
|
||||
eth_actions = create_eth_actions(eths, active)
|
||||
blue_actions = create_blue_actions(blues, active)
|
||||
other_actions = create_other_actions(CLIENT)
|
||||
wwan_installed = is_installed("ModemManager")
|
||||
if wwan_installed:
|
||||
gsms = [i for i in CONNS if i.is_type(NM.SETTING_GSM_SETTING_NAME)]
|
||||
gsm_actions = create_gsm_actions(gsms, active)
|
||||
wwan_actions = create_wwan_actions(CLIENT)
|
||||
else:
|
||||
gsm_actions = []
|
||||
wwan_actions = []
|
||||
|
||||
list_saved = CONF.getboolean('dmenu', 'list_saved', fallback=False)
|
||||
saved_cons = [i for i in CONNS if i not in vpns + wgs + eths + blues]
|
||||
if list_saved:
|
||||
saved_actions = create_saved_actions(saved_cons)
|
||||
else:
|
||||
saved_actions = [Action("Saved connections", prompt_saved, [saved_cons])]
|
||||
|
||||
actions = combine_actions(eth_actions, ap_actions, vpn_actions, wg_actions,
|
||||
gsm_actions, blue_actions, wwan_actions,
|
||||
other_actions, saved_actions)
|
||||
sel = get_selection(actions)
|
||||
sel()
|
||||
|
||||
|
||||
def main():
|
||||
"""Main. Enables script to be re-run after a wifi rescan
|
||||
|
||||
"""
|
||||
global CLIENT, CONNS, LOOP # noqa pylint: disable=global-variable-undefined
|
||||
CLIENT = NM.Client.new(None)
|
||||
LOOP = GLib.MainLoop()
|
||||
CONNS = CLIENT.get_connections()
|
||||
|
||||
run()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
||||
# vim: set et ts=4 sw=4 :
|
||||
15
config/i3/scripts/rofi_askpass
Executable file
15
config/i3/scripts/rofi_askpass
Executable file
@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
|
||||
# Import Current Theme
|
||||
DIR="$HOME/.config/i3"
|
||||
STYLE="gruvbox"
|
||||
RASI="$DIR/themes/$STYLE/rofi/askpass.rasi"
|
||||
|
||||
# Rofi text dialog to get password
|
||||
rofi -dmenu \
|
||||
-password \
|
||||
-i \
|
||||
-p "Root" \
|
||||
-theme ${RASI}
|
||||
79
config/i3/scripts/rofi_asroot
Executable file
79
config/i3/scripts/rofi_asroot
Executable file
@ -0,0 +1,79 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
|
||||
# Import Current Theme
|
||||
DIR="$HOME/.config/i3"
|
||||
STYLE="gruvbox"
|
||||
RASI="$DIR/themes/$STYLE/rofi/asroot.rasi"
|
||||
ASROOT="$DIR/scripts/i3_asroot"
|
||||
|
||||
# Theme Elements
|
||||
prompt='Root'
|
||||
mesg="Run Applications As Root"
|
||||
term='alacritty --class alacritty-float,alacritty-float --config-file /root/.config/i3/alacritty/alacritty.yml'
|
||||
|
||||
# Options
|
||||
layout=`cat ${RASI} | grep 'USE_ICON' | cut -d'=' -f2`
|
||||
if [[ "$layout" == 'NO' ]]; then
|
||||
option_1=" Alacritty"
|
||||
option_2=" Thunar"
|
||||
option_3=" Geany"
|
||||
option_4=" Ranger"
|
||||
option_5=" Vim"
|
||||
else
|
||||
option_1=""
|
||||
option_2=""
|
||||
option_3=""
|
||||
option_4=""
|
||||
option_5=""
|
||||
fi
|
||||
|
||||
# Rofi CMD
|
||||
rofi_cmd() {
|
||||
rofi -dmenu \
|
||||
-p "$prompt" \
|
||||
-mesg "$mesg" \
|
||||
-markup-rows \
|
||||
-theme ${RASI}
|
||||
}
|
||||
|
||||
# Pass variables to rofi dmenu
|
||||
run_rofi() {
|
||||
echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5" | rofi_cmd
|
||||
}
|
||||
|
||||
# Execute Command
|
||||
run_cmd() {
|
||||
if [[ "$1" == '--opt1' ]]; then
|
||||
${ASROOT} "$term"
|
||||
elif [[ "$1" == '--opt2' ]]; then
|
||||
${ASROOT} 'dbus-run-session thunar'
|
||||
elif [[ "$1" == '--opt3' ]]; then
|
||||
${ASROOT} geany
|
||||
elif [[ "$1" == '--opt4' ]]; then
|
||||
${ASROOT} "$term -e ranger"
|
||||
elif [[ "$1" == '--opt5' ]]; then
|
||||
${ASROOT} "$term -e vim"
|
||||
fi
|
||||
}
|
||||
|
||||
# Actions
|
||||
chosen="$(run_rofi)"
|
||||
case ${chosen} in
|
||||
$option_1)
|
||||
run_cmd --opt1
|
||||
;;
|
||||
$option_2)
|
||||
run_cmd --opt2
|
||||
;;
|
||||
$option_3)
|
||||
run_cmd --opt3
|
||||
;;
|
||||
$option_4)
|
||||
run_cmd --opt4
|
||||
;;
|
||||
$option_5)
|
||||
run_cmd --opt5
|
||||
;;
|
||||
esac
|
||||
14
config/i3/scripts/rofi_launcher
Executable file
14
config/i3/scripts/rofi_launcher
Executable file
@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
|
||||
# Import Current Theme
|
||||
DIR="$HOME/.config/i3"
|
||||
STYLE="gruvbox"
|
||||
RASI="$DIR/themes/$STYLE/rofi/launcher.rasi"
|
||||
|
||||
# Run
|
||||
rofi \
|
||||
-show drun \
|
||||
-kb-cancel Alt-F1 \
|
||||
-theme ${RASI}
|
||||
119
config/i3/scripts/rofi_music
Executable file
119
config/i3/scripts/rofi_music
Executable file
@ -0,0 +1,119 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
|
||||
# Import Current Theme
|
||||
DIR="$HOME/.config/i3"
|
||||
STYLE="gruvbox"
|
||||
RASI="$DIR/themes/$STYLE/rofi/music.rasi"
|
||||
|
||||
# Theme Elements
|
||||
status="`mpc status`"
|
||||
if [[ -z "$status" ]]; then
|
||||
prompt='Offline'
|
||||
mesg="MPD is Offline"
|
||||
else
|
||||
prompt="`mpc -f "%artist%" current`"
|
||||
mesg="`mpc -f "%title%" current` :: `mpc status | grep "#" | awk '{print $3}'`"
|
||||
fi
|
||||
|
||||
# Options
|
||||
layout=`cat ${RASI} | grep 'USE_ICON' | cut -d'=' -f2`
|
||||
if [[ "$layout" == 'NO' ]]; then
|
||||
if [[ ${status} == *"[playing]"* ]]; then
|
||||
option_1=" Pause"
|
||||
else
|
||||
option_1=" Play"
|
||||
fi
|
||||
option_2=" Stop"
|
||||
option_3=" Previous"
|
||||
option_4=" Next"
|
||||
option_5=" Repeat"
|
||||
option_6=" Random"
|
||||
else
|
||||
if [[ ${status} == *"[playing]"* ]]; then
|
||||
option_1=""
|
||||
else
|
||||
option_1=""
|
||||
fi
|
||||
option_2=""
|
||||
option_3=""
|
||||
option_4=""
|
||||
option_5=""
|
||||
option_6=""
|
||||
fi
|
||||
|
||||
# Toggle Actions
|
||||
active=''
|
||||
urgent=''
|
||||
# Repeat
|
||||
if [[ ${status} == *"repeat: on"* ]]; then
|
||||
active="-a 4"
|
||||
elif [[ ${status} == *"repeat: off"* ]]; then
|
||||
urgent="-u 4"
|
||||
else
|
||||
option_5=" Parsing Error"
|
||||
fi
|
||||
# Random
|
||||
if [[ ${status} == *"random: on"* ]]; then
|
||||
[ -n "$active" ] && active+=",5" || active="-a 5"
|
||||
elif [[ ${status} == *"random: off"* ]]; then
|
||||
[ -n "$urgent" ] && urgent+=",5" || urgent="-u 5"
|
||||
else
|
||||
option_6=" Parsing Error"
|
||||
fi
|
||||
|
||||
# Rofi CMD
|
||||
rofi_cmd() {
|
||||
rofi -dmenu \
|
||||
-p "$prompt" \
|
||||
-mesg "$mesg" \
|
||||
${active} ${urgent} \
|
||||
-markup-rows \
|
||||
-theme ${RASI}
|
||||
}
|
||||
|
||||
# Pass variables to rofi dmenu
|
||||
run_rofi() {
|
||||
echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5\n$option_6" | rofi_cmd
|
||||
}
|
||||
|
||||
# Execute Command
|
||||
run_cmd() {
|
||||
if [[ "$1" == '--opt1' ]]; then
|
||||
mpc -q toggle && kunst --size 60x60 --silent
|
||||
elif [[ "$1" == '--opt2' ]]; then
|
||||
mpc -q stop
|
||||
elif [[ "$1" == '--opt3' ]]; then
|
||||
mpc -q prev && kunst --size 60x60 --silent
|
||||
elif [[ "$1" == '--opt4' ]]; then
|
||||
mpc -q next && kunst --size 60x60 --silent
|
||||
elif [[ "$1" == '--opt5' ]]; then
|
||||
mpc -q repeat
|
||||
elif [[ "$1" == '--opt6' ]]; then
|
||||
mpc -q random
|
||||
fi
|
||||
}
|
||||
|
||||
# Actions
|
||||
chosen="$(run_rofi)"
|
||||
case ${chosen} in
|
||||
$option_1)
|
||||
run_cmd --opt1
|
||||
;;
|
||||
$option_2)
|
||||
run_cmd --opt2
|
||||
;;
|
||||
$option_3)
|
||||
run_cmd --opt3
|
||||
;;
|
||||
$option_4)
|
||||
run_cmd --opt4
|
||||
;;
|
||||
$option_5)
|
||||
run_cmd --opt5
|
||||
;;
|
||||
$option_6)
|
||||
run_cmd --opt6
|
||||
;;
|
||||
esac
|
||||
116
config/i3/scripts/rofi_powermenu
Executable file
116
config/i3/scripts/rofi_powermenu
Executable file
@ -0,0 +1,116 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
|
||||
# Import Current Theme
|
||||
DIR="$HOME/.config/i3"
|
||||
STYLE="gruvbox"
|
||||
RASI="$DIR/themes/$STYLE/rofi/powermenu.rasi"
|
||||
CNFR="$DIR/themes/$STYLE/rofi/confirm.rasi"
|
||||
|
||||
# Theme Elements
|
||||
prompt="`hostname` (`echo $DESKTOP_SESSION`)"
|
||||
mesg="Uptime : `uptime -p | sed -e 's/up //g'`"
|
||||
|
||||
# Options
|
||||
layout=`cat ${RASI} | grep 'USE_ICON' | cut -d'=' -f2`
|
||||
if [[ "$layout" == 'NO' ]]; then
|
||||
option_1=" Lock"
|
||||
option_2=" Logout"
|
||||
option_3=" Suspend"
|
||||
option_4=" Hibernate"
|
||||
option_5=" Reboot"
|
||||
option_6=" Shutdown"
|
||||
else
|
||||
option_1=""
|
||||
option_2=""
|
||||
option_3=""
|
||||
option_4=""
|
||||
option_5=""
|
||||
option_6=""
|
||||
fi
|
||||
cnflayout=`cat ${CNFR} | grep 'USE_ICON' | cut -d'=' -f2`
|
||||
if [[ "$cnflayout" == 'NO' ]]; then
|
||||
yes=' Yes'
|
||||
no=' No'
|
||||
else
|
||||
yes=''
|
||||
no=''
|
||||
fi
|
||||
|
||||
# Rofi CMD
|
||||
rofi_cmd() {
|
||||
rofi -dmenu \
|
||||
-p "$prompt" \
|
||||
-mesg "$mesg" \
|
||||
-markup-rows \
|
||||
-theme ${RASI}
|
||||
}
|
||||
|
||||
# Pass variables to rofi dmenu
|
||||
run_rofi() {
|
||||
echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5\n$option_6" | rofi_cmd
|
||||
}
|
||||
|
||||
# Confirmation CMD
|
||||
confirm_cmd() {
|
||||
rofi -dmenu \
|
||||
-p 'Confirmation' \
|
||||
-mesg 'Are you Sure?' \
|
||||
-theme ${CNFR}
|
||||
}
|
||||
|
||||
# Ask for confirmation
|
||||
confirm_exit() {
|
||||
echo -e "$yes\n$no" | confirm_cmd
|
||||
}
|
||||
|
||||
# Confirm and execute
|
||||
confirm_run () {
|
||||
selected="$(confirm_exit)"
|
||||
if [[ "$selected" == "$yes" ]]; then
|
||||
${1} && ${2} && ${3}
|
||||
else
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
# Execute Command
|
||||
run_cmd() {
|
||||
if [[ "$1" == '--opt1' ]]; then
|
||||
betterlockscreen --lock
|
||||
elif [[ "$1" == '--opt2' ]]; then
|
||||
confirm_run 'i3-msg exit'
|
||||
elif [[ "$1" == '--opt3' ]]; then
|
||||
confirm_run 'mpc -q pause' 'pulsemixer --mute' 'betterlockscreen --suspend'
|
||||
elif [[ "$1" == '--opt4' ]]; then
|
||||
confirm_run 'systemctl hibernate'
|
||||
elif [[ "$1" == '--opt5' ]]; then
|
||||
confirm_run 'systemctl reboot'
|
||||
elif [[ "$1" == '--opt6' ]]; then
|
||||
confirm_run 'systemctl poweroff'
|
||||
fi
|
||||
}
|
||||
|
||||
# Actions
|
||||
chosen="$(run_rofi)"
|
||||
case ${chosen} in
|
||||
$option_1)
|
||||
run_cmd --opt1
|
||||
;;
|
||||
$option_2)
|
||||
run_cmd --opt2
|
||||
;;
|
||||
$option_3)
|
||||
run_cmd --opt3
|
||||
;;
|
||||
$option_4)
|
||||
run_cmd --opt4
|
||||
;;
|
||||
$option_5)
|
||||
run_cmd --opt5
|
||||
;;
|
||||
$option_6)
|
||||
run_cmd --opt6
|
||||
;;
|
||||
esac
|
||||
13
config/i3/scripts/rofi_runner
Executable file
13
config/i3/scripts/rofi_runner
Executable file
@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
|
||||
# Import Current Theme
|
||||
DIR="$HOME/.config/i3"
|
||||
STYLE="gruvbox"
|
||||
RASI="$DIR/themes/$STYLE/rofi/runner.rasi"
|
||||
|
||||
# Run
|
||||
rofi \
|
||||
-show run \
|
||||
-theme ${RASI}
|
||||
142
config/i3/scripts/rofi_screenshot
Executable file
142
config/i3/scripts/rofi_screenshot
Executable file
@ -0,0 +1,142 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
|
||||
# Import Current Theme
|
||||
DIR="$HOME/.config/i3"
|
||||
STYLE="gruvbox"
|
||||
RASI="$DIR/themes/$STYLE/rofi/screenshot.rasi"
|
||||
|
||||
# Theme Elements
|
||||
prompt='Screenshot'
|
||||
mesg="Directory :: `xdg-user-dir PICTURES`/Screenshots"
|
||||
|
||||
# Options
|
||||
layout=`cat ${RASI} | grep 'USE_ICON' | cut -d'=' -f2`
|
||||
if [[ "$layout" == 'NO' ]]; then
|
||||
option_1=" Capture Desktop"
|
||||
option_2=" Capture Area"
|
||||
option_3=" Capture Window"
|
||||
option_4=" Capture in 5s"
|
||||
option_5=" Capture in 10s"
|
||||
else
|
||||
option_1=""
|
||||
option_2=""
|
||||
option_3=""
|
||||
option_4=""
|
||||
option_5=""
|
||||
fi
|
||||
|
||||
# Rofi CMD
|
||||
rofi_cmd() {
|
||||
rofi -dmenu \
|
||||
-p "$prompt" \
|
||||
-mesg "$mesg" \
|
||||
-markup-rows \
|
||||
-theme ${RASI}
|
||||
}
|
||||
|
||||
# Pass variables to rofi dmenu
|
||||
run_rofi() {
|
||||
echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5" | rofi_cmd
|
||||
}
|
||||
|
||||
# Screenshot
|
||||
time=`date +%Y-%m-%d-%H-%M-%S`
|
||||
geometry=`xrandr | grep 'current' | head -n1 | cut -d',' -f2 | tr -d '[:blank:],current'`
|
||||
dir="`xdg-user-dir PICTURES`/Screenshots"
|
||||
file="Screenshot_${time}_${geometry}.png"
|
||||
|
||||
# Directory
|
||||
if [[ ! -d "$dir" ]]; then
|
||||
mkdir -p "$dir"
|
||||
fi
|
||||
|
||||
# notify and view screenshot
|
||||
notify_view() {
|
||||
notify_cmd_shot='dunstify -u low -h string:x-dunst-stack-tag:obscreenshot -i /usr/share/archcraft/icons/dunst/picture.png'
|
||||
${notify_cmd_shot} "Copied to clipboard."
|
||||
paplay /usr/share/sounds/freedesktop/stereo/screen-capture.oga &>/dev/null &
|
||||
viewnior ${dir}/"$file"
|
||||
if [[ -e "$dir/$file" ]]; then
|
||||
${notify_cmd_shot} "Screenshot Saved."
|
||||
else
|
||||
${notify_cmd_shot} "Screenshot Deleted."
|
||||
fi
|
||||
}
|
||||
|
||||
# Copy screenshot to clipboard
|
||||
copy_shot () {
|
||||
tee "$file" | xclip -selection clipboard -t image/png
|
||||
}
|
||||
|
||||
# countdown
|
||||
countdown () {
|
||||
for sec in `seq $1 -1 1`; do
|
||||
dunstify -t 1000 -h string:x-dunst-stack-tag:screenshottimer -i /usr/share/archcraft/icons/dunst/timer.png "Taking shot in : $sec"
|
||||
sleep 1
|
||||
done
|
||||
}
|
||||
|
||||
# take shots
|
||||
shotnow () {
|
||||
cd ${dir} && sleep 0.5 && maim -u -f png | copy_shot
|
||||
notify_view
|
||||
}
|
||||
|
||||
shot5 () {
|
||||
countdown '5'
|
||||
sleep 1 && cd ${dir} && maim -u -f png | copy_shot
|
||||
notify_view
|
||||
}
|
||||
|
||||
shot10 () {
|
||||
countdown '10'
|
||||
sleep 1 && cd ${dir} && maim -u -f png | copy_shot
|
||||
notify_view
|
||||
}
|
||||
|
||||
shotwin () {
|
||||
cd ${dir} && maim -u -f png -i `xdotool getactivewindow` | copy_shot
|
||||
notify_view
|
||||
}
|
||||
|
||||
shotarea () {
|
||||
cd ${dir} && maim -u -f png -s -b 2 -c 0.35,0.55,0.85,0.25 -l | copy_shot
|
||||
notify_view
|
||||
}
|
||||
|
||||
# Execute Command
|
||||
run_cmd() {
|
||||
if [[ "$1" == '--opt1' ]]; then
|
||||
shotnow
|
||||
elif [[ "$1" == '--opt2' ]]; then
|
||||
shotarea
|
||||
elif [[ "$1" == '--opt3' ]]; then
|
||||
shotwin
|
||||
elif [[ "$1" == '--opt4' ]]; then
|
||||
shot5
|
||||
elif [[ "$1" == '--opt5' ]]; then
|
||||
shot10
|
||||
fi
|
||||
}
|
||||
|
||||
# Actions
|
||||
chosen="$(run_rofi)"
|
||||
case ${chosen} in
|
||||
$option_1)
|
||||
run_cmd --opt1
|
||||
;;
|
||||
$option_2)
|
||||
run_cmd --opt2
|
||||
;;
|
||||
$option_3)
|
||||
run_cmd --opt3
|
||||
;;
|
||||
$option_4)
|
||||
run_cmd --opt4
|
||||
;;
|
||||
$option_5)
|
||||
run_cmd --opt5
|
||||
;;
|
||||
esac
|
||||
50
config/i3/scripts/rofi_themes
Executable file
50
config/i3/scripts/rofi_themes
Executable file
@ -0,0 +1,50 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
|
||||
# Import Current Theme
|
||||
DIR="$HOME/.config/i3"
|
||||
STYLE="gruvbox"
|
||||
RASI="$DIR/themes/$STYLE/rofi/themes.rasi"
|
||||
|
||||
# List Available Themes
|
||||
THEMES=(`cd $DIR/themes && ls -d */ | cut -d '/' -f1`)
|
||||
|
||||
# Theme Elements
|
||||
prompt="Themes"
|
||||
mesg="<b>Available Themes</b> : `cd $DIR/themes && ls -d */ | cut -d '/' -f1 | wc -l`"
|
||||
|
||||
# Rofi CMD
|
||||
rofi_cmd() {
|
||||
rofi -dmenu \
|
||||
-p "$prompt" \
|
||||
-mesg "$mesg" \
|
||||
-sep '|' \
|
||||
-markup-rows \
|
||||
-theme ${RASI}
|
||||
}
|
||||
|
||||
# Pass variables to rofi dmenu
|
||||
run_rofi() {
|
||||
echo ${THEMES[@]} | sed 's/ /|/g' | sed 's/$/|/' | sed 's/^/Random||/' | rofi_cmd
|
||||
}
|
||||
|
||||
# Apply Theme
|
||||
apply_theme() {
|
||||
selected="`run_rofi`"
|
||||
current="`cat $DIR/themes/.current`"
|
||||
|
||||
for theme in "${THEMES[@]}"; do
|
||||
if [[ -z "$selected" ]]; then
|
||||
break
|
||||
elif [[ "$selected" == "$theme" ]]; then
|
||||
"$DIR"/themes/"$theme"/apply.sh
|
||||
break
|
||||
elif [[ "$selected" == 'Random' ]]; then
|
||||
"$DIR"/themes/"$current"/random.sh
|
||||
break
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
apply_theme && exit 0
|
||||
13
config/i3/scripts/rofi_windows
Executable file
13
config/i3/scripts/rofi_windows
Executable file
@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
|
||||
# Import Current Theme
|
||||
DIR="$HOME/.config/i3"
|
||||
STYLE="gruvbox"
|
||||
RASI="$DIR/themes/$STYLE/rofi/windows.rasi"
|
||||
|
||||
# Run
|
||||
rofi \
|
||||
-show window \
|
||||
-theme ${RASI}
|
||||
1
config/i3/themes/.current
Normal file
1
config/i3/themes/.current
Normal file
@ -0,0 +1 @@
|
||||
gruvbox
|
||||
0
config/i3/themes/.system
Normal file
0
config/i3/themes/.system
Normal file
316
config/i3/themes/adaptive/apply.sh
Executable file
316
config/i3/themes/adaptive/apply.sh
Executable file
@ -0,0 +1,316 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
##
|
||||
## Script To Apply Themes
|
||||
|
||||
## Theme ------------------------------------
|
||||
IDIR="$HOME/.config/i3"
|
||||
TDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||
THEME="${TDIR##*/}"
|
||||
|
||||
source "$IDIR"/themes/"$THEME"/theme.bash
|
||||
altbackground="`pastel color $background | pastel lighten $light_value | pastel format hex`"
|
||||
altforeground="`pastel color $foreground | pastel darken $dark_value | pastel format hex`"
|
||||
modbackground=(`pastel gradient -n 7 $background $altbackground | pastel format hex`)
|
||||
|
||||
## Directories ------------------------------
|
||||
PATH_CONF="$HOME/.config"
|
||||
PATH_GEANY="$PATH_CONF/geany"
|
||||
PATH_I3WM="$PATH_CONF/i3"
|
||||
PATH_TERM="$PATH_I3WM/alacritty"
|
||||
PATH_PBAR="$PATH_I3WM/themes/$THEME/polybar"
|
||||
PATH_ROFI="$PATH_I3WM/themes/$THEME/rofi"
|
||||
|
||||
## Wallpaper ---------------------------------
|
||||
apply_wallpaper() {
|
||||
sed -i -e "s#WALLPAPER=.*#WALLPAPER='$wallpaper'#g" ${PATH_I3WM}/themes/wallpaper.sh
|
||||
}
|
||||
|
||||
## Polybar -----------------------------------
|
||||
apply_polybar() {
|
||||
# modify polybar launch script
|
||||
sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" ${PATH_I3WM}/themes/polybar.sh
|
||||
|
||||
# apply default theme fonts
|
||||
sed -i -e "s/font-0 = .*/font-0 = \"$polybar_font\"/g" ${PATH_PBAR}/config.ini
|
||||
|
||||
# rewrite colors file
|
||||
cat > ${PATH_PBAR}/colors.ini <<- EOF
|
||||
[color]
|
||||
|
||||
BACKGROUND = ${background}
|
||||
FOREGROUND = ${foreground}
|
||||
ALTBACKGROUND = ${altbackground}
|
||||
ALTFOREGROUND = ${altforeground}
|
||||
ACCENT = ${accent}
|
||||
|
||||
BLACK = ${color0}
|
||||
RED = ${color1}
|
||||
GREEN = ${color2}
|
||||
YELLOW = ${color3}
|
||||
BLUE = ${color4}
|
||||
MAGENTA = ${color5}
|
||||
CYAN = ${color6}
|
||||
WHITE = ${color7}
|
||||
ALTBLACK = ${color8}
|
||||
ALTRED = ${color9}
|
||||
ALTGREEN = ${color10}
|
||||
ALTYELLOW = ${color11}
|
||||
ALTBLUE = ${color12}
|
||||
ALTMAGENTA = ${color13}
|
||||
ALTCYAN = ${color14}
|
||||
ALTWHITE = ${color15}
|
||||
|
||||
BACKGROUND1 = ${modbackground[1]}
|
||||
BACKGROUND2 = ${modbackground[2]}
|
||||
BACKGROUND3 = ${modbackground[3]}
|
||||
BACKGROUND4 = ${modbackground[4]}
|
||||
BACKGROUND5 = ${modbackground[5]}
|
||||
BACKGROUND6 = ${modbackground[6]}
|
||||
EOF
|
||||
}
|
||||
|
||||
# Rofi --------------------------------------
|
||||
apply_rofi() {
|
||||
# modify rofi scripts
|
||||
sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" \
|
||||
${PATH_I3WM}/scripts/rofi_askpass \
|
||||
${PATH_I3WM}/scripts/rofi_asroot \
|
||||
${PATH_I3WM}/scripts/rofi_launcher \
|
||||
${PATH_I3WM}/scripts/rofi_music \
|
||||
${PATH_I3WM}/scripts/rofi_powermenu \
|
||||
${PATH_I3WM}/scripts/rofi_runner \
|
||||
${PATH_I3WM}/scripts/rofi_screenshot \
|
||||
${PATH_I3WM}/scripts/rofi_themes \
|
||||
${PATH_I3WM}/scripts/rofi_windows
|
||||
|
||||
# apply default theme fonts
|
||||
sed -i -e "s/font:.*/font: \"$rofi_font\";/g" ${PATH_ROFI}/shared/fonts.rasi
|
||||
|
||||
# rewrite colors file
|
||||
cat > ${PATH_ROFI}/shared/colors.rasi <<- EOF
|
||||
* {
|
||||
background: ${background};
|
||||
background-alt: ${modbackground[2]};
|
||||
foreground: ${foreground};
|
||||
selected: ${accent};
|
||||
active: ${color2};
|
||||
urgent: ${color1};
|
||||
}
|
||||
EOF
|
||||
|
||||
# modify icon theme
|
||||
if [[ -f "$PATH_CONF"/rofi/config.rasi ]]; then
|
||||
sed -i -e "s/icon-theme:.*/icon-theme: \"$rofi_icon\";/g" ${PATH_CONF}/rofi/config.rasi
|
||||
fi
|
||||
}
|
||||
|
||||
# Network Menu ------------------------------
|
||||
apply_netmenu() {
|
||||
if [[ -f "$PATH_I3WM"/themes/networkmenu_config.ini ]]; then
|
||||
sed -i -e "s#dmenu_command = .*#dmenu_command = rofi -dmenu -theme $PATH_ROFI/networkmenu.rasi#g" ${PATH_I3WM}/themes/networkmenu_config.ini
|
||||
fi
|
||||
}
|
||||
|
||||
# Terminal ----------------------------------
|
||||
apply_terminal() {
|
||||
# alacritty : fonts
|
||||
sed -i ${PATH_TERM}/fonts.yml \
|
||||
-e "s/family: .*/family: \"$terminal_font_name\"/g" \
|
||||
-e "s/size: .*/size: $terminal_font_size/g"
|
||||
|
||||
# alacritty : colors
|
||||
cat > ${PATH_TERM}/colors.yml <<- _EOF_
|
||||
## Colors configuration
|
||||
colors:
|
||||
# Default colors
|
||||
primary:
|
||||
background: '${background}'
|
||||
foreground: '${foreground}'
|
||||
|
||||
# Normal colors
|
||||
normal:
|
||||
black: '${color0}'
|
||||
red: '${color1}'
|
||||
green: '${color2}'
|
||||
yellow: '${color3}'
|
||||
blue: '${color4}'
|
||||
magenta: '${color5}'
|
||||
cyan: '${color6}'
|
||||
white: '${color7}'
|
||||
|
||||
# Bright colors
|
||||
bright:
|
||||
black: '${color8}'
|
||||
red: '${color9}'
|
||||
green: '${color10}'
|
||||
yellow: '${color11}'
|
||||
blue: '${color12}'
|
||||
magenta: '${color13}'
|
||||
cyan: '${color14}'
|
||||
white: '${color15}'
|
||||
_EOF_
|
||||
}
|
||||
|
||||
# Geany -------------------------------------
|
||||
apply_geany() {
|
||||
sed -i ${PATH_GEANY}/geany.conf \
|
||||
-e "s/color_scheme=.*/color_scheme=$geany_colors/g" \
|
||||
-e "s/editor_font=.*/editor_font=$geany_font/g"
|
||||
}
|
||||
|
||||
# Appearance --------------------------------
|
||||
apply_appearance() {
|
||||
XFILE="$PATH_I3WM/xsettingsd"
|
||||
GTK2FILE="$HOME/.gtkrc-2.0"
|
||||
GTK3FILE="$PATH_CONF/gtk-3.0/settings.ini"
|
||||
|
||||
# apply gtk theme, icons, cursor & fonts
|
||||
if [[ `pidof xsettingsd` ]]; then
|
||||
sed -i -e "s|Net/ThemeName .*|Net/ThemeName \"$gtk_theme\"|g" ${XFILE}
|
||||
sed -i -e "s|Net/IconThemeName .*|Net/IconThemeName \"$icon_theme\"|g" ${XFILE}
|
||||
sed -i -e "s|Gtk/CursorThemeName .*|Gtk/CursorThemeName \"$cursor_theme\"|g" ${XFILE}
|
||||
else
|
||||
sed -i -e "s/gtk-font-name=.*/gtk-font-name=\"$gtk_font\"/g" ${GTK2FILE}
|
||||
sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=\"$gtk_theme\"/g" ${GTK2FILE}
|
||||
sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=\"$icon_theme\"/g" ${GTK2FILE}
|
||||
sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=\"$cursor_theme\"/g" ${GTK2FILE}
|
||||
|
||||
sed -i -e "s/gtk-font-name=.*/gtk-font-name=$gtk_font/g" ${GTK3FILE}
|
||||
sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=$gtk_theme/g" ${GTK3FILE}
|
||||
sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=$icon_theme/g" ${GTK3FILE}
|
||||
sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=$cursor_theme/g" ${GTK3FILE}
|
||||
fi
|
||||
|
||||
# inherit cursor theme
|
||||
if [[ -f "$HOME"/.icons/default/index.theme ]]; then
|
||||
sed -i -e "s/Inherits=.*/Inherits=$cursor_theme/g" "$HOME"/.icons/default/index.theme
|
||||
fi
|
||||
}
|
||||
|
||||
# Dunst -------------------------------------
|
||||
apply_dunst() {
|
||||
# modify dunst config
|
||||
sed -i ${PATH_I3WM}/dunstrc \
|
||||
-e "s/width = .*/width = $dunst_width/g" \
|
||||
-e "s/height = .*/height = $dunst_height/g" \
|
||||
-e "s/offset = .*/offset = $dunst_offset/g" \
|
||||
-e "s/origin = .*/origin = $dunst_origin/g" \
|
||||
-e "s/font = .*/font = $dunst_font/g" \
|
||||
-e "s/frame_width = .*/frame_width = $dunst_border/g" \
|
||||
-e "s/separator_height = .*/separator_height = $dunst_separator/g" \
|
||||
-e "s/line_height = .*/line_height = $dunst_separator/g"
|
||||
|
||||
# modify colors
|
||||
sed -i '/urgency_low/Q' ${PATH_I3WM}/dunstrc
|
||||
cat >> ${PATH_I3WM}/dunstrc <<- _EOF_
|
||||
[urgency_low]
|
||||
timeout = 2
|
||||
background = "${background}"
|
||||
foreground = "${foreground}"
|
||||
frame_color = "${accent}"
|
||||
|
||||
[urgency_normal]
|
||||
timeout = 5
|
||||
background = "${background}"
|
||||
foreground = "${foreground}"
|
||||
frame_color = "${accent}"
|
||||
|
||||
[urgency_critical]
|
||||
timeout = 0
|
||||
background = "${background}"
|
||||
foreground = "${color1}"
|
||||
frame_color = "${color1}"
|
||||
_EOF_
|
||||
}
|
||||
|
||||
# Compositor --------------------------------
|
||||
apply_compositor() {
|
||||
picom_cfg="$PATH_I3WM/picom.conf"
|
||||
|
||||
# modify picom config
|
||||
sed -i "$picom_cfg" \
|
||||
-e "s/backend = .*/backend = \"$picom_backend\";/g" \
|
||||
-e "s/corner-radius = .*/corner-radius = $picom_corner;/g" \
|
||||
-e "s/shadow-radius = .*/shadow-radius = $picom_shadow_r;/g" \
|
||||
-e "s/shadow-opacity = .*/shadow-opacity = $picom_shadow_o;/g" \
|
||||
-e "s/shadow-offset-x = .*/shadow-offset-x = $picom_shadow_x;/g" \
|
||||
-e "s/shadow-offset-y = .*/shadow-offset-y = $picom_shadow_y;/g" \
|
||||
-e "s/method = .*/method = \"$picom_blur_method\";/g" \
|
||||
-e "s/strength = .*/strength = $picom_blur_strength;/g"
|
||||
}
|
||||
|
||||
# I3WM -------------------------------------
|
||||
apply_i3wm() {
|
||||
# modify i3theme file
|
||||
sed -i ${PATH_I3WM}/config.d/01_theme.conf \
|
||||
-e "s/set \$i3_fonts.*/set \$i3_fonts $i3wm_fonts/g" \
|
||||
\
|
||||
-e "s/set \$i3_border_size.*/set \$i3_border_size $i3wm_border_size/g" \
|
||||
-e "s/set \$i3_border_style.*/set \$i3_border_style $i3wm_border_style/g" \
|
||||
\
|
||||
-e "s/set \$i3_gaps_inner.*/set \$i3_gaps_inner $i3wm_gaps_inner/g" \
|
||||
-e "s/set \$i3_gaps_outer.*/set \$i3_gaps_outer $i3wm_gaps_outer/g" \
|
||||
-e "s/set \$i3_gaps_smart.*/set \$i3_gaps_smart $i3wm_gaps_smart/g" \
|
||||
\
|
||||
-e "s/set \$i3_cl_col_bg.*/set \$i3_cl_col_bg $background/g" \
|
||||
-e "s/set \$i3_cl_col_fg.*/set \$i3_cl_col_fg $foreground/g" \
|
||||
-e "s/set \$i3_cl_col_in.*/set \$i3_cl_col_in $color2/g" \
|
||||
-e "s/set \$i3_cl_col_afoc.*/set \$i3_cl_col_afoc $accent/g" \
|
||||
-e "s/set \$i3_cl_col_ifoc.*/set \$i3_cl_col_ifoc $color4/g" \
|
||||
-e "s/set \$i3_cl_col_ufoc.*/set \$i3_cl_col_ufoc $altbackground/g" \
|
||||
-e "s/set \$i3_cl_col_urgt.*/set \$i3_cl_col_urgt $color5/g" \
|
||||
-e "s/set \$i3_cl_col_phol.*/set \$i3_cl_col_phol $background/g"
|
||||
|
||||
# modify i3bar file
|
||||
sed -i ${PATH_I3WM}/i3status/statusbar.conf \
|
||||
-e "s/set \$i3_bar_fonts.*/set \$i3_bar_fonts $i3wm_fonts/g" \
|
||||
\
|
||||
-e "s/set \$i3_bar_bg.*/set \$i3_bar_bg $background/g" \
|
||||
-e "s/set \$i3_bar_fg.*/set \$i3_bar_fg $foreground/g" \
|
||||
-e "s/set \$i3_bar_sep.*/set \$i3_bar_sep $altbackground/g" \
|
||||
-e "s/set \$i3_bar_foc.*/set \$i3_bar_foc $accent/g" \
|
||||
-e "s/set \$i3_bar_act.*/set \$i3_bar_act $color4/g" \
|
||||
-e "s/set \$i3_bar_ina.*/set \$i3_bar_ina $altbackground/g" \
|
||||
-e "s/set \$i3_bar_urg.*/set \$i3_bar_urg $color5/g" \
|
||||
-e "s/set \$i3_bar_mod.*/set \$i3_bar_mod $color2/g"
|
||||
|
||||
# modify i3status file
|
||||
sed -i ${PATH_I3WM}/i3status/config \
|
||||
-e "s/color_good =.*/color_good = \"$color2\"/g" \
|
||||
-e "s/color_degraded =.*/color_degraded = \"$color3\"/g" \
|
||||
-e "s/color_bad =.*/color_bad = \"$color1\"/g" \
|
||||
-e "s/color_separator =.*/color_separator = \"$altbackground\"/g"
|
||||
|
||||
# restart i3wm
|
||||
i3-msg restart
|
||||
}
|
||||
|
||||
# Create Theme File -------------------------
|
||||
create_file() {
|
||||
theme_file="$PATH_I3WM/themes/.current"
|
||||
if [[ ! -f "$theme_file" ]]; then
|
||||
touch ${theme_file}
|
||||
fi
|
||||
echo "$THEME" > ${theme_file}
|
||||
}
|
||||
|
||||
# Notify User -------------------------------
|
||||
notify_user() {
|
||||
dunstify -u normal -h string:x-dunst-stack-tag:applytheme -i /usr/share/archcraft/icons/dunst/themes.png "Applying Style : $THEME"
|
||||
}
|
||||
|
||||
## Execute Script ---------------------------
|
||||
notify_user
|
||||
create_file
|
||||
apply_wallpaper
|
||||
apply_polybar
|
||||
apply_rofi
|
||||
apply_netmenu
|
||||
apply_terminal
|
||||
apply_geany
|
||||
apply_appearance
|
||||
apply_dunst
|
||||
apply_compositor
|
||||
apply_i3wm
|
||||
31
config/i3/themes/adaptive/polybar/colors.ini
Normal file
31
config/i3/themes/adaptive/polybar/colors.ini
Normal file
@ -0,0 +1,31 @@
|
||||
[color]
|
||||
|
||||
BACKGROUND = #121a1e
|
||||
FOREGROUND = #d4d5d8
|
||||
ALTBACKGROUND = #2f434e
|
||||
ALTFOREGROUND = #84878f
|
||||
ACCENT = #C0C0BE
|
||||
|
||||
BLACK = #121a1e
|
||||
RED = #919491
|
||||
GREEN = #A2A29B
|
||||
YELLOW = #969BA5
|
||||
BLUE = #9DA2AA
|
||||
MAGENTA = #AFB2B8
|
||||
CYAN = #C0C0BE
|
||||
WHITE = #d4d5d8
|
||||
ALTBLACK = #949597
|
||||
ALTRED = #919491
|
||||
ALTGREEN = #A2A29B
|
||||
ALTYELLOW = #969BA5
|
||||
ALTBLUE = #9DA2AA
|
||||
ALTMAGENTA = #AFB2B8
|
||||
ALTCYAN = #C0C0BE
|
||||
ALTWHITE = #d4d5d8
|
||||
|
||||
BACKGROUND1 = #172025
|
||||
BACKGROUND2 = #1b272d
|
||||
BACKGROUND3 = #202e35
|
||||
BACKGROUND4 = #25353d
|
||||
BACKGROUND5 = #2a3c46
|
||||
BACKGROUND6 = #2f434e
|
||||
307
config/i3/themes/adaptive/polybar/config.ini
Normal file
307
config/i3/themes/adaptive/polybar/config.ini
Normal file
@ -0,0 +1,307 @@
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
|
||||
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
||||
|
||||
;; Global WM Settings
|
||||
|
||||
[global/wm]
|
||||
; Adjust the _NET_WM_STRUT_PARTIAL top value
|
||||
; Used for top aligned bars
|
||||
margin-bottom = 0
|
||||
|
||||
; Adjust the _NET_WM_STRUT_PARTIAL bottom value
|
||||
; Used for bottom aligned bars
|
||||
margin-top = 0
|
||||
|
||||
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
||||
|
||||
;; File Inclusion
|
||||
; include an external file, like module file, etc.
|
||||
|
||||
include-file = ../../system.ini
|
||||
include-file = ./colors.ini
|
||||
include-file = ./modules.ini
|
||||
include-file = ./decor.ini
|
||||
|
||||
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
||||
|
||||
;; Bar Settings
|
||||
|
||||
[bar/main]
|
||||
; Use either of the following command to list available outputs:
|
||||
; If unspecified, the application will pick the first one it finds.
|
||||
; $ polybar -m | cut -d ':' -f 1
|
||||
; $ xrandr -q | grep " connected" | cut -d ' ' -f1
|
||||
monitor = ${env:MONITOR:}
|
||||
|
||||
; Use the specified monitor as a fallback if the main one is not found.
|
||||
monitor-fallback =
|
||||
|
||||
; Require the monitor to be in connected state
|
||||
; XRandR sometimes reports my monitor as being disconnected (when in use)
|
||||
monitor-strict = false
|
||||
|
||||
; Tell the Window Manager not to configure the window.
|
||||
; Use this to detach the bar if your WM is locking its size/position.
|
||||
override-redirect = false
|
||||
|
||||
; Put the bar at the bottom of the screen
|
||||
bottom = false
|
||||
|
||||
; Prefer fixed center position for the `modules-center` block
|
||||
; When false, the center position will be based on the size of the other blocks.
|
||||
fixed-center = true
|
||||
|
||||
; Dimension defined as pixel value (e.g. 35) or percentage (e.g. 50%),
|
||||
; the percentage can optionally be extended with a pixel offset like so:
|
||||
; 50%:-10, this will result in a width or height of 50% minus 10 pixels
|
||||
width = 100%
|
||||
height = 34
|
||||
|
||||
; Offset defined as pixel value (e.g. 35) or percentage (e.g. 50%)
|
||||
; the percentage can optionally be extended with a pixel offset like so:
|
||||
; 50%:-10, this will result in an offset in the x or y direction
|
||||
; of 50% minus 10 pixels
|
||||
offset-x = 0%
|
||||
offset-y = 0%
|
||||
|
||||
; Background ARGB color (e.g. #f00, #ff992a, #ddff1023)
|
||||
background = ${color.BACKGROUND}
|
||||
|
||||
; Foreground ARGB color (e.g. #f00, #ff992a, #ddff1023)
|
||||
foreground = ${color.FOREGROUND}
|
||||
|
||||
; Background gradient (vertical steps)
|
||||
; background-[0-9]+ = #aarrggbb
|
||||
;;background-0 =
|
||||
|
||||
; Value used for drawing rounded corners
|
||||
; Note: This shouldn't be used together with border-size because the border
|
||||
; doesn't get rounded
|
||||
; Individual top/bottom values can be defined using:
|
||||
; radius-{top,bottom}
|
||||
radius-top = 0.0
|
||||
radius-bottom = 0.0
|
||||
|
||||
; Under-/overline pixel size and argb color
|
||||
; Individual values can be defined using:
|
||||
; {overline,underline}-size
|
||||
; {overline,underline}-color
|
||||
line-size = 2
|
||||
line-color = ${color.ACCENT}
|
||||
|
||||
; Values applied to all borders
|
||||
; Individual side values can be defined using:
|
||||
; border-{left,top,right,bottom}-size
|
||||
; border-{left,top,right,bottom}-color
|
||||
; The top and bottom borders are added to the bar height, so the effective
|
||||
; window height is:
|
||||
; height + border-top-size + border-bottom-size
|
||||
; Meanwhile the effective window width is defined entirely by the width key and
|
||||
; the border is placed withing this area. So you effectively only have the
|
||||
; following horizontal space on the bar:
|
||||
; width - border-right-size - border-left-size
|
||||
border-top-size = 0
|
||||
border-color = ${color.ACCENT}
|
||||
|
||||
; Number of spaces to add at the beginning/end of the bar
|
||||
; Individual side values can be defined using:
|
||||
; padding-{left,right}
|
||||
padding = 0
|
||||
|
||||
; Number of spaces to add before/after each module
|
||||
; Individual side values can be defined using:
|
||||
; module-margin-{left,right}
|
||||
module-margin-left = 0
|
||||
module-margin-right = 0
|
||||
|
||||
; Fonts are defined using <font-name>;<vertical-offset>
|
||||
; Font names are specified using a fontconfig pattern.
|
||||
; font-0 = "Iosevka Nerd Font:size=10;3"
|
||||
; font-1 = MaterialIcons:size=10
|
||||
; font-2 = Termsynu:size=8;-1
|
||||
; font-3 = FontAwesome:size=10
|
||||
; See the Fonts wiki page for more details
|
||||
|
||||
font-0 = "Iosevka Nerd Font:size=10;3"
|
||||
font-1 = "Iosevka Nerd Font:size=12;3"
|
||||
font-2 = "Iosevka Nerd Font:size=20;5"
|
||||
|
||||
; Modules are added to one of the available blocks
|
||||
; modules-left = cpu ram
|
||||
; modules-center = xwindow xbacklight
|
||||
; modules-right = ipc clock
|
||||
|
||||
# Default
|
||||
modules-left = sepL menu 1LD i3 2LD cpu 3LD used-memory 4LD filesystem 5LD
|
||||
modules-center = mpd
|
||||
modules-right = 2RD volume 3RD backlight 4RD battery 5RD network 6RD date 7RD sysmenu sepR
|
||||
# Alternate
|
||||
;modules-left = openbox 2LD cpu 3LD memory 4LD filesystem 5LD
|
||||
;modules-center = mpd
|
||||
;modules-right = 2RD volume 3RD backlight 4RD battery 5RD network 6RD date sep
|
||||
|
||||
; The separator will be inserted between the output of each module
|
||||
separator =
|
||||
|
||||
; This value is used to add extra spacing between elements
|
||||
; @deprecated: This parameter will be removed in an upcoming version
|
||||
spacing = 0
|
||||
|
||||
; Opacity value between 0.0 and 1.0 used on fade in/out
|
||||
dim-value = 1.0
|
||||
|
||||
; Value to be used to set the WM_NAME atom
|
||||
; If the value is empty or undefined, the atom value
|
||||
; will be created from the following template: polybar-[BAR]_[MONITOR]
|
||||
; NOTE: The placeholders are not available for custom values
|
||||
wm-name = i3
|
||||
|
||||
; Locale used to localize various module data (e.g. date)
|
||||
; Expects a valid libc locale, for example: sv_SE.UTF-8
|
||||
locale =
|
||||
|
||||
; Position of the system tray window
|
||||
; If empty or undefined, tray support will be disabled
|
||||
; NOTE: A center aligned tray will cover center aligned modules
|
||||
;
|
||||
; Available positions:
|
||||
; left
|
||||
; center
|
||||
; right
|
||||
; none
|
||||
tray-position = right
|
||||
|
||||
; If true, the bar will not shift its
|
||||
; contents when the tray changes
|
||||
tray-detached = false
|
||||
|
||||
; Tray icon max size
|
||||
tray-maxsize = 16
|
||||
|
||||
; DEPRECATED! Since 3.3.0 the tray always uses pseudo-transparency
|
||||
; Enable pseudo transparency
|
||||
; Will automatically be enabled if a fully transparent
|
||||
; background color is defined using `tray-background`
|
||||
; tray-transparent = false
|
||||
|
||||
; Background color for the tray container
|
||||
; ARGB color (e.g. #f00, #ff992a, #ddff1023)
|
||||
; By default the tray container will use the bar
|
||||
; background color.
|
||||
tray-background = ${color.BACKGROUND6}
|
||||
|
||||
; Tray offset defined as pixel value (e.g. 35) or percentage (e.g. 50%)
|
||||
tray-offset-x = 0
|
||||
tray-offset-y = 0
|
||||
|
||||
; Pad the sides of each tray icon
|
||||
tray-padding = 0
|
||||
|
||||
; Scale factor for tray clients
|
||||
tray-scale = 1.0
|
||||
|
||||
; Restack the bar window and put it above the
|
||||
; selected window manager's root
|
||||
;
|
||||
; Fixes the issue where the bar is being drawn
|
||||
; on top of fullscreen window's
|
||||
;
|
||||
; Currently supported WM's:
|
||||
; bspwm
|
||||
; i3 (requires: `override-redirect = true`)
|
||||
wm-restack = i3
|
||||
|
||||
; Set a DPI values used when rendering text
|
||||
; This only affects scalable fonts
|
||||
; dpi =
|
||||
|
||||
; Enable support for inter-process messaging
|
||||
; See the Messaging wiki page for more details.
|
||||
enable-ipc = true
|
||||
|
||||
; Fallback click handlers that will be called if
|
||||
; there's no matching module handler found.
|
||||
click-left =
|
||||
click-middle =
|
||||
click-right =
|
||||
scroll-up =
|
||||
scroll-down =
|
||||
double-click-left =
|
||||
double-click-middle =
|
||||
double-click-right =
|
||||
|
||||
; Requires polybar to be built with xcursor support (xcb-util-cursor)
|
||||
; Possible values are:
|
||||
; - default : The default pointer as before, can also be an empty string (default)
|
||||
; - pointer : Typically in the form of a hand
|
||||
; - ns-resize : Up and down arrows, can be used to indicate scrolling
|
||||
cursor-click =
|
||||
cursor-scroll =
|
||||
|
||||
;; WM Workspace Specific
|
||||
|
||||
; bspwm
|
||||
;;scroll-up = bspwm-desknext
|
||||
;;scroll-down = bspwm-deskprev
|
||||
;;scroll-up = bspc desktop -f prev.local
|
||||
;;scroll-down = bspc desktop -f next.local
|
||||
|
||||
;i3
|
||||
;;scroll-up = i3wm-wsnext
|
||||
;;scroll-down = i3wm-wsprev
|
||||
;;scroll-up = i3-msg workspace next_on_output
|
||||
;;scroll-down = i3-msg workspace prev_on_output
|
||||
|
||||
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
||||
|
||||
;; Application Settings
|
||||
|
||||
[settings]
|
||||
; The throttle settings lets the eventloop swallow up til X events
|
||||
; if they happen within Y millisecond after first event was received.
|
||||
; This is done to prevent flood of update event.
|
||||
;
|
||||
; For example if 5 modules emit an update event at the same time, we really
|
||||
; just care about the last one. But if we wait too long for events to swallow
|
||||
; the bar would appear sluggish so we continue if timeout
|
||||
; expires or limit is reached.
|
||||
throttle-output = 5
|
||||
throttle-output-for = 10
|
||||
|
||||
; Time in milliseconds that the input handler will wait between processing events
|
||||
;throttle-input-for = 30
|
||||
|
||||
; Reload upon receiving XCB_RANDR_SCREEN_CHANGE_NOTIFY events
|
||||
screenchange-reload = false
|
||||
|
||||
; Compositing operators
|
||||
; @see: https://www.cairographics.org/manual/cairo-cairo-t.html#cairo-operator-t
|
||||
compositing-background = source
|
||||
compositing-foreground = over
|
||||
compositing-overline = over
|
||||
compositing-underline = over
|
||||
compositing-border = over
|
||||
|
||||
; Define fallback values used by all module formats
|
||||
;format-foreground =
|
||||
;format-background =
|
||||
;format-underline =
|
||||
;format-overline =
|
||||
;format-spacing =
|
||||
;format-padding =
|
||||
;format-margin =
|
||||
;format-offset =
|
||||
|
||||
; Enables pseudo-transparency for the bar
|
||||
; If set to true the bar can be transparent without a compositor.
|
||||
pseudo-transparency = false
|
||||
|
||||
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
||||
;; __________ ______
|
||||
;; / ____/ __ \/ ____/
|
||||
;; / __/ / / / / /_
|
||||
;; / /___/ /_/ / __/
|
||||
;; /_____/\____/_/
|
||||
;;
|
||||
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
||||
92
config/i3/themes/adaptive/polybar/decor.ini
Normal file
92
config/i3/themes/adaptive/polybar/decor.ini
Normal file
@ -0,0 +1,92 @@
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
|
||||
;; DECOR _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
||||
|
||||
[module/sepL]
|
||||
type = custom/text
|
||||
content = --
|
||||
content-background = ${color.BACKGROUND5}
|
||||
content-foreground = ${color.BACKGROUND5}
|
||||
|
||||
[module/sepR]
|
||||
type = custom/text
|
||||
content = --
|
||||
content-background = ${color.BACKGROUND6}
|
||||
content-foreground = ${color.BACKGROUND6}
|
||||
|
||||
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
||||
|
||||
[module/1LD]
|
||||
type = custom/text
|
||||
content = "%{T3}%{T-}"
|
||||
content-background = ${color.BACKGROUND4}
|
||||
content-foreground = ${color.BACKGROUND5}
|
||||
|
||||
[module/2LD]
|
||||
type = custom/text
|
||||
content = "%{T3}%{T-}"
|
||||
content-background = ${color.BACKGROUND3}
|
||||
content-foreground = ${color.BACKGROUND4}
|
||||
|
||||
[module/3LD]
|
||||
type = custom/text
|
||||
content = "%{T3}%{T-}"
|
||||
content-background = ${color.BACKGROUND2}
|
||||
content-foreground = ${color.BACKGROUND3}
|
||||
|
||||
[module/4LD]
|
||||
type = custom/text
|
||||
content = "%{T3}%{T-}"
|
||||
content-background = ${color.BACKGROUND1}
|
||||
content-foreground = ${color.BACKGROUND2}
|
||||
|
||||
[module/5LD]
|
||||
type = custom/text
|
||||
content = "%{T3}%{T-}"
|
||||
content-background = ${color.BACKGROUND}
|
||||
content-foreground = ${color.BACKGROUND1}
|
||||
|
||||
[module/7RD]
|
||||
type = custom/text
|
||||
content = "%{T3}%{T-}"
|
||||
content-background = ${color.BACKGROUND6}
|
||||
content-foreground = ${color.BACKGROUND5}
|
||||
|
||||
[module/6RD]
|
||||
type = custom/text
|
||||
content = "%{T3}%{T-}"
|
||||
content-background = ${color.BACKGROUND5}
|
||||
content-foreground = ${color.BACKGROUND4}
|
||||
|
||||
[module/5RD]
|
||||
type = custom/text
|
||||
content = "%{T3}%{T-}"
|
||||
content-background = ${color.BACKGROUND4}
|
||||
content-foreground = ${color.BACKGROUND3}
|
||||
|
||||
[module/4RD]
|
||||
type = custom/text
|
||||
content = "%{T3}%{T-}"
|
||||
content-background = ${color.BACKGROUND3}
|
||||
content-foreground = ${color.BACKGROUND2}
|
||||
|
||||
[module/3RD]
|
||||
type = custom/text
|
||||
content = "%{T3}%{T-}"
|
||||
content-background = ${color.BACKGROUND2}
|
||||
content-foreground = ${color.BACKGROUND1}
|
||||
|
||||
[module/2RD]
|
||||
type = custom/text
|
||||
content = "%{T3}%{T-}"
|
||||
content-background = ${color.BACKGROUND}
|
||||
content-foreground = ${color.BACKGROUND1}
|
||||
|
||||
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
||||
;; __________ ______
|
||||
;; / ____/ __ \/ ____/
|
||||
;; / __/ / / / / /_
|
||||
;; / /___/ /_/ / __/
|
||||
;; /_____/\____/_/
|
||||
;;
|
||||
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
||||
42
config/i3/themes/adaptive/polybar/launch.sh
Executable file
42
config/i3/themes/adaptive/polybar/launch.sh
Executable file
@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||
CARD="$(light -L | grep 'backlight' | head -n1 | cut -d'/' -f3)"
|
||||
INTERFACE="$(ip link | awk '/state UP/ {print $2}' | tr -d :)"
|
||||
RFILE="$DIR/.module"
|
||||
|
||||
# Fix backlight and network modules
|
||||
fix_modules() {
|
||||
if [[ -z "$CARD" ]]; then
|
||||
sed -i -e 's/backlight/bna/g' "$DIR"/config.ini
|
||||
elif [[ "$CARD" != *"intel_"* ]]; then
|
||||
sed -i -e 's/backlight/brightness/g' "$DIR"/config.ini
|
||||
fi
|
||||
|
||||
if [[ "$INTERFACE" == e* ]]; then
|
||||
sed -i -e 's/network/ethernet/g' "$DIR"/config.ini
|
||||
fi
|
||||
}
|
||||
|
||||
# Launch the bar
|
||||
launch_bar() {
|
||||
# Terminate already running bar instances
|
||||
killall -q polybar
|
||||
|
||||
# Wait until the processes have been shut down
|
||||
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
|
||||
|
||||
# Launch the bar
|
||||
for mon in $(polybar --list-monitors | cut -d":" -f1); do
|
||||
MONITOR=$mon polybar -q main -c "$DIR"/config.ini &
|
||||
done
|
||||
}
|
||||
|
||||
# Execute functions
|
||||
if [[ ! -f "$RFILE" ]]; then
|
||||
fix_modules
|
||||
touch "$RFILE"
|
||||
fi
|
||||
launch_bar
|
||||
1124
config/i3/themes/adaptive/polybar/modules.ini
Normal file
1124
config/i3/themes/adaptive/polybar/modules.ini
Normal file
File diff suppressed because it is too large
Load Diff
218
config/i3/themes/adaptive/random.sh
Executable file
218
config/i3/themes/adaptive/random.sh
Executable file
@ -0,0 +1,218 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
##
|
||||
## Apply Random Theme With Pywal
|
||||
|
||||
## Theme ------------------------------------
|
||||
TDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||
THEME="${TDIR##*/}"
|
||||
|
||||
# Set you wallpaper directory here.
|
||||
WALLDIR="`xdg-user-dir PICTURES`/wallpapers"
|
||||
WALFILE="$HOME/.cache/wal/colors.sh"
|
||||
|
||||
## Directories ------------------------------
|
||||
PATH_CONF="$HOME/.config"
|
||||
PATH_I3WM="$PATH_CONF/i3"
|
||||
PATH_TERM="$PATH_I3WM/alacritty"
|
||||
PATH_PBAR="$PATH_I3WM/themes/$THEME/polybar"
|
||||
PATH_ROFI="$PATH_I3WM/themes/$THEME/rofi"
|
||||
|
||||
## Pywal ------------------------------------
|
||||
check_wallpaper() {
|
||||
if [[ -d "$WALLDIR" ]]; then
|
||||
WFILES="`ls --format=single-column $WALLDIR | wc -l`"
|
||||
if [[ "$WFILES" == 0 ]]; then
|
||||
dunstify -u normal -h string:x-dunst-stack-tag:noimage -i /usr/share/archcraft/icons/dunst/picture.png "There are no wallpapers in : $WALLDIR"
|
||||
exit
|
||||
fi
|
||||
else
|
||||
mkdir -p "$WALLDIR"
|
||||
dunstify -u normal -h string:x-dunst-stack-tag:noimage -i /usr/share/archcraft/icons/dunst/picture.png "Put some wallpapers in : $WALLDIR"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
generate_colors() {
|
||||
check_wallpaper
|
||||
if [[ `which wal` ]]; then
|
||||
dunstify -t 50000 -h string:x-dunst-stack-tag:runpywal -i /usr/share/archcraft/icons/dunst/hourglass.png "Generating Colorscheme. Please wait..."
|
||||
wal -q -n -s -t -e -i "$WALLDIR"
|
||||
if [[ "$?" != 0 ]]; then
|
||||
dunstify -u normal -h string:x-dunst-stack-tag:runpywal -i /usr/share/archcraft/icons/dunst/palette.png "Failed to generate colorscheme."
|
||||
exit
|
||||
fi
|
||||
else
|
||||
dunstify -u normal -h string:x-dunst-stack-tag:runpywal -i /usr/share/archcraft/icons/dunst/palette.png "'pywal' is not installed."
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
generate_colors
|
||||
source "$WALFILE"
|
||||
altbackground="`pastel color $background | pastel lighten 0.15 | pastel format hex`"
|
||||
altforeground="`pastel color $foreground | pastel darken 0.30 | pastel format hex`"
|
||||
modbackground=(`pastel gradient -n 7 $background $altbackground | pastel format hex`)
|
||||
accent="$color6"
|
||||
|
||||
## Wallpaper ---------------------------------
|
||||
apply_wallpaper() {
|
||||
sed -i -e "s#WALLPAPER=.*#WALLPAPER='$wallpaper'#g" ${PATH_I3WM}/themes/wallpaper.sh
|
||||
}
|
||||
|
||||
## Polybar -----------------------------------
|
||||
apply_polybar() {
|
||||
# rewrite colors file
|
||||
cat > ${PATH_PBAR}/colors.ini <<- EOF
|
||||
[color]
|
||||
|
||||
BACKGROUND = ${background}
|
||||
FOREGROUND = ${foreground}
|
||||
ALTBACKGROUND = ${altbackground}
|
||||
ALTFOREGROUND = ${altforeground}
|
||||
ACCENT = ${accent}
|
||||
|
||||
BLACK = ${color0}
|
||||
RED = ${color1}
|
||||
GREEN = ${color2}
|
||||
YELLOW = ${color3}
|
||||
BLUE = ${color4}
|
||||
MAGENTA = ${color5}
|
||||
CYAN = ${color6}
|
||||
WHITE = ${color7}
|
||||
ALTBLACK = ${color8}
|
||||
ALTRED = ${color9}
|
||||
ALTGREEN = ${color10}
|
||||
ALTYELLOW = ${color11}
|
||||
ALTBLUE = ${color12}
|
||||
ALTMAGENTA = ${color13}
|
||||
ALTCYAN = ${color14}
|
||||
ALTWHITE = ${color15}
|
||||
|
||||
BACKGROUND1 = ${modbackground[1]}
|
||||
BACKGROUND2 = ${modbackground[2]}
|
||||
BACKGROUND3 = ${modbackground[3]}
|
||||
BACKGROUND4 = ${modbackground[4]}
|
||||
BACKGROUND5 = ${modbackground[5]}
|
||||
BACKGROUND6 = ${modbackground[6]}
|
||||
EOF
|
||||
}
|
||||
|
||||
# Rofi --------------------------------------
|
||||
apply_rofi() {
|
||||
# rewrite colors file
|
||||
cat > ${PATH_ROFI}/shared/colors.rasi <<- EOF
|
||||
* {
|
||||
background: ${background};
|
||||
background-alt: ${modbackground[2]};
|
||||
foreground: ${foreground};
|
||||
selected: ${accent};
|
||||
active: ${color2};
|
||||
urgent: ${color1};
|
||||
}
|
||||
EOF
|
||||
}
|
||||
|
||||
# Terminal ----------------------------------
|
||||
apply_terminal() {
|
||||
# alacritty : colors
|
||||
cat > ${PATH_TERM}/colors.yml <<- _EOF_
|
||||
## Colors configuration
|
||||
colors:
|
||||
# Default colors
|
||||
primary:
|
||||
background: '${background}'
|
||||
foreground: '${foreground}'
|
||||
|
||||
# Normal colors
|
||||
normal:
|
||||
black: '${color0}'
|
||||
red: '${color1}'
|
||||
green: '${color2}'
|
||||
yellow: '${color3}'
|
||||
blue: '${color4}'
|
||||
magenta: '${color5}'
|
||||
cyan: '${color6}'
|
||||
white: '${color7}'
|
||||
|
||||
# Bright colors
|
||||
bright:
|
||||
black: '${color8}'
|
||||
red: '${color9}'
|
||||
green: '${color10}'
|
||||
yellow: '${color11}'
|
||||
blue: '${color12}'
|
||||
magenta: '${color13}'
|
||||
cyan: '${color14}'
|
||||
white: '${color15}'
|
||||
_EOF_
|
||||
}
|
||||
|
||||
# Dunst -------------------------------------
|
||||
apply_dunst() {
|
||||
# modify colors
|
||||
sed -i '/urgency_low/Q' ${PATH_I3WM}/dunstrc
|
||||
cat >> ${PATH_I3WM}/dunstrc <<- _EOF_
|
||||
[urgency_low]
|
||||
timeout = 2
|
||||
background = "${background}"
|
||||
foreground = "${foreground}"
|
||||
frame_color = "${accent}"
|
||||
|
||||
[urgency_normal]
|
||||
timeout = 5
|
||||
background = "${background}"
|
||||
foreground = "${foreground}"
|
||||
frame_color = "${accent}"
|
||||
|
||||
[urgency_critical]
|
||||
timeout = 0
|
||||
background = "${background}"
|
||||
foreground = "${color1}"
|
||||
frame_color = "${color1}"
|
||||
_EOF_
|
||||
}
|
||||
|
||||
# I3WM -------------------------------------
|
||||
apply_i3wm() {
|
||||
# modify i3theme file
|
||||
sed -i ${PATH_I3WM}/config.d/01_theme.conf \
|
||||
-e "s/set \$i3_cl_col_bg.*/set \$i3_cl_col_bg $background/g" \
|
||||
-e "s/set \$i3_cl_col_fg.*/set \$i3_cl_col_fg $foreground/g" \
|
||||
-e "s/set \$i3_cl_col_in.*/set \$i3_cl_col_in $color2/g" \
|
||||
-e "s/set \$i3_cl_col_afoc.*/set \$i3_cl_col_afoc $accent/g" \
|
||||
-e "s/set \$i3_cl_col_ifoc.*/set \$i3_cl_col_ifoc $color4/g" \
|
||||
-e "s/set \$i3_cl_col_ufoc.*/set \$i3_cl_col_ufoc $altbackground/g" \
|
||||
-e "s/set \$i3_cl_col_urgt.*/set \$i3_cl_col_urgt $color5/g" \
|
||||
-e "s/set \$i3_cl_col_phol.*/set \$i3_cl_col_phol $background/g"
|
||||
|
||||
# modify i3bar file
|
||||
sed -i ${PATH_I3WM}/i3status/statusbar.conf \
|
||||
-e "s/set \$i3_bar_bg.*/set \$i3_bar_bg $background/g" \
|
||||
-e "s/set \$i3_bar_fg.*/set \$i3_bar_fg $foreground/g" \
|
||||
-e "s/set \$i3_bar_sep.*/set \$i3_bar_sep $altbackground/g" \
|
||||
-e "s/set \$i3_bar_foc.*/set \$i3_bar_foc $accent/g" \
|
||||
-e "s/set \$i3_bar_act.*/set \$i3_bar_act $color4/g" \
|
||||
-e "s/set \$i3_bar_ina.*/set \$i3_bar_ina $altbackground/g" \
|
||||
-e "s/set \$i3_bar_urg.*/set \$i3_bar_urg $color5/g" \
|
||||
-e "s/set \$i3_bar_mod.*/set \$i3_bar_mod $color2/g"
|
||||
|
||||
# modify i3status file
|
||||
sed -i ${PATH_I3WM}/i3status/config \
|
||||
-e "s/color_good =.*/color_good = \"$color2\"/g" \
|
||||
-e "s/color_degraded =.*/color_degraded = \"$color3\"/g" \
|
||||
-e "s/color_bad =.*/color_bad = \"$color1\"/g" \
|
||||
-e "s/color_separator =.*/color_separator = \"$altbackground\"/g"
|
||||
|
||||
# restart i3wm
|
||||
i3-msg restart
|
||||
}
|
||||
|
||||
## Execute Script ---------------------------
|
||||
apply_wallpaper
|
||||
apply_polybar
|
||||
apply_rofi
|
||||
apply_terminal
|
||||
apply_dunst
|
||||
apply_i3wm
|
||||
75
config/i3/themes/adaptive/rofi/askpass.rasi
Normal file
75
config/i3/themes/adaptive/rofi/askpass.rasi
Normal file
@ -0,0 +1,75 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
location: center;
|
||||
anchor: center;
|
||||
fullscreen: false;
|
||||
width: 350px;
|
||||
x-offset: 0px;
|
||||
y-offset: 0px;
|
||||
padding: 15px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: @background;
|
||||
cursor: "default";
|
||||
children: [ "inputbar", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
children: [ "textbox-prompt-colon", "prompt", "entry" ];
|
||||
}
|
||||
|
||||
dummy {
|
||||
expand: false;
|
||||
width: 10px;
|
||||
background-color: transparent;
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "";
|
||||
padding: 10px 13px;
|
||||
border-radius: 0px;
|
||||
background-color: @urgent;
|
||||
text-color: @background;
|
||||
}
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
border-radius: 0px;
|
||||
background-color: @selected;
|
||||
text-color: @background;
|
||||
}
|
||||
entry {
|
||||
enabled: true;
|
||||
padding: 10px 15px;
|
||||
border-radius: 0px;
|
||||
background-color: @background-alt;
|
||||
text-color: inherit;
|
||||
cursor: text;
|
||||
placeholder: "Password";
|
||||
placeholder-color: inherit;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: false;
|
||||
}
|
||||
147
config/i3/themes/adaptive/rofi/asroot.rasi
Normal file
147
config/i3/themes/adaptive/rofi/asroot.rasi
Normal file
@ -0,0 +1,147 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
show-icons: false;
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
/*
|
||||
USE_ICON=NO
|
||||
*/
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
transparency: "real";
|
||||
location: center;
|
||||
anchor: center;
|
||||
fullscreen: false;
|
||||
width: 400px;
|
||||
x-offset: 0px;
|
||||
y-offset: 0px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
cursor: "default";
|
||||
background-color: @background;
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 20px;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar", "message", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 0px;
|
||||
padding: 0px;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
children: [ "textbox-prompt-colon", "prompt"];
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "";
|
||||
padding: 10px 12px;
|
||||
border-radius: 0px;
|
||||
background-color: @urgent;
|
||||
text-color: @background;
|
||||
}
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
border-radius: 0px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: @background-alt;
|
||||
text-color: @foreground;
|
||||
}
|
||||
textbox {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 1;
|
||||
lines: 5;
|
||||
cycle: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
|
||||
spacing: 5px;
|
||||
background-color: transparent;
|
||||
cursor: "default";
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
cursor: pointer;
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
element normal.normal,
|
||||
element alternate.normal {
|
||||
background-color: var(background);
|
||||
text-color: var(foreground);
|
||||
}
|
||||
element normal.urgent,
|
||||
element alternate.urgent,
|
||||
element selected.active {
|
||||
background-color: var(urgent);
|
||||
text-color: var(background);
|
||||
}
|
||||
element normal.active,
|
||||
element alternate.active,
|
||||
element selected.urgent {
|
||||
background-color: var(active);
|
||||
text-color: var(background);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected);
|
||||
text-color: var(background);
|
||||
}
|
||||
147
config/i3/themes/adaptive/rofi/confirm.rasi
Normal file
147
config/i3/themes/adaptive/rofi/confirm.rasi
Normal file
@ -0,0 +1,147 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
show-icons: false;
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
/*
|
||||
USE_ICON=NO
|
||||
*/
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
transparency: "real";
|
||||
location: center;
|
||||
anchor: center;
|
||||
fullscreen: false;
|
||||
width: 250px;
|
||||
x-offset: 0px;
|
||||
y-offset: 0px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
cursor: "default";
|
||||
background-color: @background;
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 20px;
|
||||
background-color: transparent;
|
||||
children: [ "message", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
padding: 0px;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
children: [ "textbox-prompt-colon", "prompt"];
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "";
|
||||
padding: 10px 14px;
|
||||
border-radius: 100%;
|
||||
background-color: @urgent;
|
||||
text-color: @background;
|
||||
}
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
border-radius: 20px;
|
||||
background-color: @active;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: @urgent;
|
||||
text-color: @background;
|
||||
}
|
||||
textbox {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.5;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 1;
|
||||
lines: 2;
|
||||
cycle: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
|
||||
spacing: 10px;
|
||||
background-color: transparent;
|
||||
cursor: "default";
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
padding: 10px 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
cursor: pointer;
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.5;
|
||||
}
|
||||
|
||||
element normal.normal,
|
||||
element alternate.normal {
|
||||
background-color: var(background-alt);
|
||||
text-color: var(foreground);
|
||||
}
|
||||
element normal.urgent,
|
||||
element alternate.urgent,
|
||||
element selected.active {
|
||||
background-color: var(urgent);
|
||||
text-color: var(background);
|
||||
}
|
||||
element normal.active,
|
||||
element alternate.active,
|
||||
element selected.urgent {
|
||||
background-color: var(active);
|
||||
text-color: var(background);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected);
|
||||
text-color: var(background);
|
||||
}
|
||||
303
config/i3/themes/adaptive/rofi/launcher.rasi
Normal file
303
config/i3/themes/adaptive/rofi/launcher.rasi
Normal file
@ -0,0 +1,303 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
modi: "drun,run,filebrowser,window";
|
||||
show-icons: true;
|
||||
display-drun: " Apps";
|
||||
display-run: " Run";
|
||||
display-filebrowser: " Files";
|
||||
display-window: " Windows";
|
||||
drun-display-format: "{name}";
|
||||
window-format: "{c} · {t}";
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
* {
|
||||
border-colour: var(selected);
|
||||
handle-colour: var(selected);
|
||||
background-colour: var(background);
|
||||
foreground-colour: var(foreground);
|
||||
alternate-background: var(background-alt);
|
||||
normal-background: var(background);
|
||||
normal-foreground: var(foreground);
|
||||
urgent-background: var(urgent);
|
||||
urgent-foreground: var(background);
|
||||
active-background: var(active);
|
||||
active-foreground: var(background);
|
||||
selected-normal-background: var(selected);
|
||||
selected-normal-foreground: var(background);
|
||||
selected-urgent-background: var(active);
|
||||
selected-urgent-foreground: var(background);
|
||||
selected-active-background: var(urgent);
|
||||
selected-active-foreground: var(background);
|
||||
alternate-normal-background: var(background);
|
||||
alternate-normal-foreground: var(foreground);
|
||||
alternate-urgent-background: var(urgent);
|
||||
alternate-urgent-foreground: var(background);
|
||||
alternate-active-background: var(active);
|
||||
alternate-active-foreground: var(background);
|
||||
}
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
/* properties for window widget */
|
||||
transparency: "real";
|
||||
location: center;
|
||||
anchor: center;
|
||||
fullscreen: false;
|
||||
width: 600px;
|
||||
x-offset: 0px;
|
||||
y-offset: 0px;
|
||||
|
||||
/* properties for all widgets */
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
cursor: "default";
|
||||
/* Backgroud Colors */
|
||||
background-color: @background-colour;
|
||||
/* Backgroud Image */
|
||||
//background-image: url("/path/to/image.png", none);
|
||||
/* Simple Linear Gradient */
|
||||
//background-image: linear-gradient(red, orange, pink, purple);
|
||||
/* Directional Linear Gradient */
|
||||
//background-image: linear-gradient(to bottom, pink, yellow, magenta);
|
||||
/* Angle Linear Gradient */
|
||||
//background-image: linear-gradient(45, cyan, purple, indigo);
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 20px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar", "mode-switcher", "message", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
children: [ "textbox-prompt-colon", "entry" ];
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
padding: 5px 0px;
|
||||
expand: false;
|
||||
str: "";
|
||||
background-color: inherit;
|
||||
text-color: @urgent;
|
||||
}
|
||||
entry {
|
||||
enabled: true;
|
||||
padding: 5px 0px;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
cursor: text;
|
||||
placeholder: "Search...";
|
||||
placeholder-color: inherit;
|
||||
}
|
||||
num-filtered-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-num-sep {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "/";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
num-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
case-indicator {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 1;
|
||||
lines: 6;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
fixed-height: true;
|
||||
fixed-columns: true;
|
||||
|
||||
spacing: 5px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: "default";
|
||||
}
|
||||
scrollbar {
|
||||
handle-width: 5px ;
|
||||
handle-color: @handle-colour;
|
||||
border-radius: 10px;
|
||||
background-color: @alternate-background;
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: pointer;
|
||||
}
|
||||
element normal.normal {
|
||||
background-color: var(normal-background);
|
||||
text-color: var(normal-foreground);
|
||||
}
|
||||
element normal.urgent {
|
||||
background-color: var(urgent-background);
|
||||
text-color: var(urgent-foreground);
|
||||
}
|
||||
element normal.active {
|
||||
background-color: var(active-background);
|
||||
text-color: var(active-foreground);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected-normal-background);
|
||||
text-color: var(selected-normal-foreground);
|
||||
}
|
||||
element selected.urgent {
|
||||
background-color: var(selected-urgent-background);
|
||||
text-color: var(selected-urgent-foreground);
|
||||
}
|
||||
element selected.active {
|
||||
background-color: var(selected-active-background);
|
||||
text-color: var(selected-active-foreground);
|
||||
}
|
||||
element alternate.normal {
|
||||
background-color: var(alternate-normal-background);
|
||||
text-color: var(alternate-normal-foreground);
|
||||
}
|
||||
element alternate.urgent {
|
||||
background-color: var(alternate-urgent-background);
|
||||
text-color: var(alternate-urgent-foreground);
|
||||
}
|
||||
element alternate.active {
|
||||
background-color: var(alternate-active-background);
|
||||
text-color: var(alternate-active-foreground);
|
||||
}
|
||||
element-icon {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
size: 24px;
|
||||
cursor: inherit;
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
highlight: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
/*****----- Mode Switcher -----*****/
|
||||
mode-switcher{
|
||||
enabled: true;
|
||||
expand: false;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
button {
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: inherit;
|
||||
cursor: pointer;
|
||||
}
|
||||
button selected {
|
||||
background-color: var(selected-normal-background);
|
||||
text-color: var(selected-normal-foreground);
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
textbox {
|
||||
border: 0px solid;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
highlight: none;
|
||||
placeholder-color: @foreground-colour;
|
||||
blink: true;
|
||||
markup: true;
|
||||
}
|
||||
error-message {
|
||||
padding: 15px;
|
||||
border: 0px solid;
|
||||
border-radius: 10px;
|
||||
border-color: @border-colour;
|
||||
background-color: @background-colour;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
147
config/i3/themes/adaptive/rofi/music.rasi
Normal file
147
config/i3/themes/adaptive/rofi/music.rasi
Normal file
@ -0,0 +1,147 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
show-icons: false;
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
/*
|
||||
USE_ICON=NO
|
||||
*/
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
transparency: "real";
|
||||
location: center;
|
||||
anchor: center;
|
||||
fullscreen: false;
|
||||
width: 400px;
|
||||
x-offset: 0px;
|
||||
y-offset: 0px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
cursor: "default";
|
||||
background-color: @background;
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 20px;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar", "message", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 0px;
|
||||
padding: 0px;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
children: [ "textbox-prompt-colon", "prompt"];
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "";
|
||||
padding: 10px 14px;
|
||||
border-radius: 0px;
|
||||
background-color: @urgent;
|
||||
text-color: @background;
|
||||
}
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
border-radius: 0px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: @background-alt;
|
||||
text-color: @foreground;
|
||||
}
|
||||
textbox {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 1;
|
||||
lines: 6;
|
||||
cycle: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
|
||||
spacing: 5px;
|
||||
background-color: transparent;
|
||||
cursor: "default";
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
cursor: pointer;
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
element normal.normal,
|
||||
element alternate.normal {
|
||||
background-color: var(background);
|
||||
text-color: var(foreground);
|
||||
}
|
||||
element normal.urgent,
|
||||
element alternate.urgent,
|
||||
element selected.active {
|
||||
background-color: var(urgent);
|
||||
text-color: var(background);
|
||||
}
|
||||
element normal.active,
|
||||
element alternate.active,
|
||||
element selected.urgent {
|
||||
background-color: var(active);
|
||||
text-color: var(background);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected);
|
||||
text-color: var(background);
|
||||
}
|
||||
156
config/i3/themes/adaptive/rofi/networkmenu.rasi
Normal file
156
config/i3/themes/adaptive/rofi/networkmenu.rasi
Normal file
@ -0,0 +1,156 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
show-icons: false;
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
/*
|
||||
USE_ICON=NO
|
||||
*/
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
transparency: "real";
|
||||
location: center;
|
||||
anchor: center;
|
||||
fullscreen: false;
|
||||
width: 500px;
|
||||
height: 515px;
|
||||
x-offset: 0px;
|
||||
y-offset: 0px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
cursor: "default";
|
||||
background-color: @background;
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 20px;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar", "message", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 0px;
|
||||
padding: 0px;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
children: [ "textbox-prompt-colon", "prompt", "entry"];
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "直";
|
||||
padding: 10px 14px;
|
||||
border-radius: 0px;
|
||||
background-color: @urgent;
|
||||
text-color: @background;
|
||||
}
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
border-radius: 0px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
entry {
|
||||
enabled: true;
|
||||
padding: 10px 0px;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
cursor: text;
|
||||
placeholder-color: inherit;
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: @background-alt;
|
||||
text-color: @foreground;
|
||||
}
|
||||
textbox {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 1;
|
||||
lines: 6;
|
||||
cycle: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
|
||||
spacing: 5px;
|
||||
background-color: transparent;
|
||||
cursor: "default";
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
cursor: pointer;
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
element normal.normal,
|
||||
element alternate.normal {
|
||||
background-color: var(background);
|
||||
text-color: var(foreground);
|
||||
}
|
||||
element normal.urgent,
|
||||
element alternate.urgent,
|
||||
element selected.active {
|
||||
background-color: var(urgent);
|
||||
text-color: var(background);
|
||||
}
|
||||
element normal.active,
|
||||
element alternate.active,
|
||||
element selected.urgent {
|
||||
background-color: var(active);
|
||||
text-color: var(background);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected);
|
||||
text-color: var(background);
|
||||
}
|
||||
147
config/i3/themes/adaptive/rofi/powermenu.rasi
Normal file
147
config/i3/themes/adaptive/rofi/powermenu.rasi
Normal file
@ -0,0 +1,147 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
show-icons: false;
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
/*
|
||||
USE_ICON=NO
|
||||
*/
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
transparency: "real";
|
||||
location: center;
|
||||
anchor: center;
|
||||
fullscreen: false;
|
||||
width: 400px;
|
||||
x-offset: 0px;
|
||||
y-offset: 0px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
cursor: "default";
|
||||
background-color: @background;
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 20px;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar", "message", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 0px;
|
||||
padding: 0px;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
children: [ "textbox-prompt-colon", "prompt"];
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "";
|
||||
padding: 10px 14px;
|
||||
border-radius: 0px;
|
||||
background-color: @urgent;
|
||||
text-color: @background;
|
||||
}
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
border-radius: 0px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: @background-alt;
|
||||
text-color: @foreground;
|
||||
}
|
||||
textbox {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 1;
|
||||
lines: 6;
|
||||
cycle: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
|
||||
spacing: 5px;
|
||||
background-color: transparent;
|
||||
cursor: "default";
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
cursor: pointer;
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
element normal.normal,
|
||||
element alternate.normal {
|
||||
background-color: var(background);
|
||||
text-color: var(foreground);
|
||||
}
|
||||
element normal.urgent,
|
||||
element alternate.urgent,
|
||||
element selected.active {
|
||||
background-color: var(urgent);
|
||||
text-color: var(background);
|
||||
}
|
||||
element normal.active,
|
||||
element alternate.active,
|
||||
element selected.urgent {
|
||||
background-color: var(active);
|
||||
text-color: var(background);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected);
|
||||
text-color: var(background);
|
||||
}
|
||||
303
config/i3/themes/adaptive/rofi/runner.rasi
Normal file
303
config/i3/themes/adaptive/rofi/runner.rasi
Normal file
@ -0,0 +1,303 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
modi: "run";
|
||||
show-icons: true;
|
||||
display-drun: " Apps";
|
||||
display-run: " Run";
|
||||
display-filebrowser: " Files";
|
||||
display-window: " Windows";
|
||||
drun-display-format: "{name}";
|
||||
window-format: "{w} · {c} · {t}";
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
* {
|
||||
border-colour: var(selected);
|
||||
handle-colour: var(selected);
|
||||
background-colour: var(background);
|
||||
foreground-colour: var(foreground);
|
||||
alternate-background: var(background-alt);
|
||||
normal-background: var(background);
|
||||
normal-foreground: var(foreground);
|
||||
urgent-background: var(urgent);
|
||||
urgent-foreground: var(background);
|
||||
active-background: var(active);
|
||||
active-foreground: var(background);
|
||||
selected-normal-background: var(selected);
|
||||
selected-normal-foreground: var(background);
|
||||
selected-urgent-background: var(active);
|
||||
selected-urgent-foreground: var(background);
|
||||
selected-active-background: var(urgent);
|
||||
selected-active-foreground: var(background);
|
||||
alternate-normal-background: var(background);
|
||||
alternate-normal-foreground: var(foreground);
|
||||
alternate-urgent-background: var(urgent);
|
||||
alternate-urgent-foreground: var(background);
|
||||
alternate-active-background: var(active);
|
||||
alternate-active-foreground: var(background);
|
||||
}
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
/* properties for window widget */
|
||||
transparency: "real";
|
||||
location: center;
|
||||
anchor: center;
|
||||
fullscreen: false;
|
||||
width: 500px;
|
||||
x-offset: 0px;
|
||||
y-offset: 0px;
|
||||
|
||||
/* properties for all widgets */
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
cursor: "default";
|
||||
/* Backgroud Colors */
|
||||
background-color: @background-colour;
|
||||
/* Backgroud Image */
|
||||
//background-image: url("/path/to/image.png", none);
|
||||
/* Simple Linear Gradient */
|
||||
//background-image: linear-gradient(red, orange, pink, purple);
|
||||
/* Directional Linear Gradient */
|
||||
//background-image: linear-gradient(to bottom, pink, yellow, magenta);
|
||||
/* Angle Linear Gradient */
|
||||
//background-image: linear-gradient(45, cyan, purple, indigo);
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 20px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
children: [ "textbox-prompt-colon", "entry" ];
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
padding: 5px 0px;
|
||||
expand: false;
|
||||
str: "";
|
||||
background-color: inherit;
|
||||
text-color: @urgent;
|
||||
}
|
||||
entry {
|
||||
enabled: true;
|
||||
padding: 5px 0px;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
cursor: text;
|
||||
placeholder: "Run...";
|
||||
placeholder-color: inherit;
|
||||
}
|
||||
num-filtered-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-num-sep {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "/";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
num-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
case-indicator {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 1;
|
||||
lines: 6;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
fixed-height: true;
|
||||
fixed-columns: true;
|
||||
|
||||
spacing: 5px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: "default";
|
||||
}
|
||||
scrollbar {
|
||||
handle-width: 5px ;
|
||||
handle-color: @handle-colour;
|
||||
border-radius: 10px;
|
||||
background-color: @alternate-background;
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: pointer;
|
||||
}
|
||||
element normal.normal {
|
||||
background-color: var(normal-background);
|
||||
text-color: var(normal-foreground);
|
||||
}
|
||||
element normal.urgent {
|
||||
background-color: var(urgent-background);
|
||||
text-color: var(urgent-foreground);
|
||||
}
|
||||
element normal.active {
|
||||
background-color: var(active-background);
|
||||
text-color: var(active-foreground);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected-normal-background);
|
||||
text-color: var(selected-normal-foreground);
|
||||
}
|
||||
element selected.urgent {
|
||||
background-color: var(selected-urgent-background);
|
||||
text-color: var(selected-urgent-foreground);
|
||||
}
|
||||
element selected.active {
|
||||
background-color: var(selected-active-background);
|
||||
text-color: var(selected-active-foreground);
|
||||
}
|
||||
element alternate.normal {
|
||||
background-color: var(alternate-normal-background);
|
||||
text-color: var(alternate-normal-foreground);
|
||||
}
|
||||
element alternate.urgent {
|
||||
background-color: var(alternate-urgent-background);
|
||||
text-color: var(alternate-urgent-foreground);
|
||||
}
|
||||
element alternate.active {
|
||||
background-color: var(alternate-active-background);
|
||||
text-color: var(alternate-active-foreground);
|
||||
}
|
||||
element-icon {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
size: 24px;
|
||||
cursor: inherit;
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
highlight: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
/*****----- Mode Switcher -----*****/
|
||||
mode-switcher{
|
||||
enabled: true;
|
||||
expand: false;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
button {
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: inherit;
|
||||
cursor: pointer;
|
||||
}
|
||||
button selected {
|
||||
background-color: var(selected-normal-background);
|
||||
text-color: var(selected-normal-foreground);
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
textbox {
|
||||
border: 0px solid;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
highlight: none;
|
||||
placeholder-color: @foreground-colour;
|
||||
blink: true;
|
||||
markup: true;
|
||||
}
|
||||
error-message {
|
||||
padding: 15px;
|
||||
border: 0px solid;
|
||||
border-radius: 10px;
|
||||
border-color: @border-colour;
|
||||
background-color: @background-colour;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
147
config/i3/themes/adaptive/rofi/screenshot.rasi
Normal file
147
config/i3/themes/adaptive/rofi/screenshot.rasi
Normal file
@ -0,0 +1,147 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
show-icons: false;
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
/*
|
||||
USE_ICON=NO
|
||||
*/
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
transparency: "real";
|
||||
location: center;
|
||||
anchor: center;
|
||||
fullscreen: false;
|
||||
width: 400px;
|
||||
x-offset: 0px;
|
||||
y-offset: 0px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
cursor: "default";
|
||||
background-color: @background;
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 20px;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar", "message", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 0px;
|
||||
padding: 0px;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
children: [ "textbox-prompt-colon", "prompt"];
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "";
|
||||
padding: 10px 12px;
|
||||
border-radius: 0px;
|
||||
background-color: @urgent;
|
||||
text-color: @background;
|
||||
}
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
border-radius: 0px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: @background-alt;
|
||||
text-color: @foreground;
|
||||
}
|
||||
textbox {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 1;
|
||||
lines: 5;
|
||||
cycle: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
|
||||
spacing: 5px;
|
||||
background-color: transparent;
|
||||
cursor: "default";
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
cursor: pointer;
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
element normal.normal,
|
||||
element alternate.normal {
|
||||
background-color: var(background);
|
||||
text-color: var(foreground);
|
||||
}
|
||||
element normal.urgent,
|
||||
element alternate.urgent,
|
||||
element selected.active {
|
||||
background-color: var(urgent);
|
||||
text-color: var(background);
|
||||
}
|
||||
element normal.active,
|
||||
element alternate.active,
|
||||
element selected.urgent {
|
||||
background-color: var(active);
|
||||
text-color: var(background);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected);
|
||||
text-color: var(background);
|
||||
}
|
||||
12
config/i3/themes/adaptive/rofi/shared/colors.rasi
Normal file
12
config/i3/themes/adaptive/rofi/shared/colors.rasi
Normal file
@ -0,0 +1,12 @@
|
||||
/* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com> */
|
||||
|
||||
/* Colors */
|
||||
|
||||
* {
|
||||
background: #121a1e;
|
||||
background-alt: #1b272d;
|
||||
foreground: #d4d5d8;
|
||||
selected: #C0C0BE;
|
||||
active: #A2A29B;
|
||||
urgent: #919491;
|
||||
}
|
||||
7
config/i3/themes/adaptive/rofi/shared/fonts.rasi
Normal file
7
config/i3/themes/adaptive/rofi/shared/fonts.rasi
Normal file
@ -0,0 +1,7 @@
|
||||
/* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com> */
|
||||
|
||||
/* Text Font */
|
||||
|
||||
* {
|
||||
font: "Iosevka 10";
|
||||
}
|
||||
147
config/i3/themes/adaptive/rofi/themes.rasi
Normal file
147
config/i3/themes/adaptive/rofi/themes.rasi
Normal file
@ -0,0 +1,147 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
show-icons: false;
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
/*
|
||||
USE_ICON=NO
|
||||
*/
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
transparency: "real";
|
||||
location: center;
|
||||
anchor: center;
|
||||
fullscreen: false;
|
||||
width: 400px;
|
||||
x-offset: 0px;
|
||||
y-offset: 0px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
cursor: "default";
|
||||
background-color: @background;
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 20px;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar", "message", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 0px;
|
||||
padding: 0px;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
children: [ "textbox-prompt-colon", "prompt"];
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "";
|
||||
padding: 10px 14px;
|
||||
border-radius: 0px;
|
||||
background-color: @urgent;
|
||||
text-color: @background;
|
||||
}
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
border-radius: 0px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: @background-alt;
|
||||
text-color: @foreground;
|
||||
}
|
||||
textbox {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 1;
|
||||
lines: 6;
|
||||
cycle: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
|
||||
spacing: 5px;
|
||||
background-color: transparent;
|
||||
cursor: "default";
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
cursor: pointer;
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
element normal.normal,
|
||||
element alternate.normal {
|
||||
background-color: var(background);
|
||||
text-color: var(foreground);
|
||||
}
|
||||
element normal.urgent,
|
||||
element alternate.urgent,
|
||||
element selected.active {
|
||||
background-color: var(urgent);
|
||||
text-color: var(background);
|
||||
}
|
||||
element normal.active,
|
||||
element alternate.active,
|
||||
element selected.urgent {
|
||||
background-color: var(active);
|
||||
text-color: var(background);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected);
|
||||
text-color: var(background);
|
||||
}
|
||||
303
config/i3/themes/adaptive/rofi/windows.rasi
Normal file
303
config/i3/themes/adaptive/rofi/windows.rasi
Normal file
@ -0,0 +1,303 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
modi: "window";
|
||||
show-icons: true;
|
||||
display-drun: " Apps";
|
||||
display-run: " Run";
|
||||
display-filebrowser: " Files";
|
||||
display-window: " Windows";
|
||||
drun-display-format: "{name}";
|
||||
window-format: "{c} · {t}";
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
* {
|
||||
border-colour: var(selected);
|
||||
handle-colour: var(selected);
|
||||
background-colour: var(background);
|
||||
foreground-colour: var(foreground);
|
||||
alternate-background: var(background-alt);
|
||||
normal-background: var(background);
|
||||
normal-foreground: var(foreground);
|
||||
urgent-background: var(urgent);
|
||||
urgent-foreground: var(background);
|
||||
active-background: var(active);
|
||||
active-foreground: var(background);
|
||||
selected-normal-background: var(selected);
|
||||
selected-normal-foreground: var(background);
|
||||
selected-urgent-background: var(active);
|
||||
selected-urgent-foreground: var(background);
|
||||
selected-active-background: var(urgent);
|
||||
selected-active-foreground: var(background);
|
||||
alternate-normal-background: var(background);
|
||||
alternate-normal-foreground: var(foreground);
|
||||
alternate-urgent-background: var(urgent);
|
||||
alternate-urgent-foreground: var(background);
|
||||
alternate-active-background: var(active);
|
||||
alternate-active-foreground: var(background);
|
||||
}
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
/* properties for window widget */
|
||||
transparency: "real";
|
||||
location: center;
|
||||
anchor: center;
|
||||
fullscreen: false;
|
||||
width: 550px;
|
||||
x-offset: 0px;
|
||||
y-offset: 0px;
|
||||
|
||||
/* properties for all widgets */
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
cursor: "default";
|
||||
/* Backgroud Colors */
|
||||
background-color: @background-colour;
|
||||
/* Backgroud Image */
|
||||
//background-image: url("/path/to/image.png", none);
|
||||
/* Simple Linear Gradient */
|
||||
//background-image: linear-gradient(red, orange, pink, purple);
|
||||
/* Directional Linear Gradient */
|
||||
//background-image: linear-gradient(to bottom, pink, yellow, magenta);
|
||||
/* Angle Linear Gradient */
|
||||
//background-image: linear-gradient(45, cyan, purple, indigo);
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 20px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
children: [ "textbox-prompt-colon", "entry" ];
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
padding: 5px 0px;
|
||||
expand: false;
|
||||
str: "";
|
||||
background-color: inherit;
|
||||
text-color: @urgent;
|
||||
}
|
||||
entry {
|
||||
enabled: true;
|
||||
padding: 5px 0px;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
cursor: text;
|
||||
placeholder: "Filter...";
|
||||
placeholder-color: inherit;
|
||||
}
|
||||
num-filtered-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-num-sep {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "/";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
num-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
case-indicator {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 1;
|
||||
lines: 6;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
fixed-height: true;
|
||||
fixed-columns: true;
|
||||
|
||||
spacing: 5px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: "default";
|
||||
}
|
||||
scrollbar {
|
||||
handle-width: 5px ;
|
||||
handle-color: @handle-colour;
|
||||
border-radius: 10px;
|
||||
background-color: @alternate-background;
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: pointer;
|
||||
}
|
||||
element normal.normal {
|
||||
background-color: var(normal-background);
|
||||
text-color: var(normal-foreground);
|
||||
}
|
||||
element normal.urgent {
|
||||
background-color: var(urgent-background);
|
||||
text-color: var(urgent-foreground);
|
||||
}
|
||||
element normal.active {
|
||||
background-color: var(active-background);
|
||||
text-color: var(active-foreground);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected-normal-background);
|
||||
text-color: var(selected-normal-foreground);
|
||||
}
|
||||
element selected.urgent {
|
||||
background-color: var(selected-urgent-background);
|
||||
text-color: var(selected-urgent-foreground);
|
||||
}
|
||||
element selected.active {
|
||||
background-color: var(selected-active-background);
|
||||
text-color: var(selected-active-foreground);
|
||||
}
|
||||
element alternate.normal {
|
||||
background-color: var(alternate-normal-background);
|
||||
text-color: var(alternate-normal-foreground);
|
||||
}
|
||||
element alternate.urgent {
|
||||
background-color: var(alternate-urgent-background);
|
||||
text-color: var(alternate-urgent-foreground);
|
||||
}
|
||||
element alternate.active {
|
||||
background-color: var(alternate-active-background);
|
||||
text-color: var(alternate-active-foreground);
|
||||
}
|
||||
element-icon {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
size: 24px;
|
||||
cursor: inherit;
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
highlight: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
/*****----- Mode Switcher -----*****/
|
||||
mode-switcher{
|
||||
enabled: true;
|
||||
expand: false;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
button {
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: inherit;
|
||||
cursor: pointer;
|
||||
}
|
||||
button selected {
|
||||
background-color: var(selected-normal-background);
|
||||
text-color: var(selected-normal-foreground);
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
textbox {
|
||||
border: 0px solid;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
highlight: none;
|
||||
placeholder-color: @foreground-colour;
|
||||
blink: true;
|
||||
markup: true;
|
||||
}
|
||||
error-message {
|
||||
padding: 15px;
|
||||
border: 0px solid;
|
||||
border-radius: 10px;
|
||||
border-color: @border-colour;
|
||||
background-color: @background-colour;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
81
config/i3/themes/adaptive/theme.bash
Normal file
81
config/i3/themes/adaptive/theme.bash
Normal file
@ -0,0 +1,81 @@
|
||||
# ------------------------------------------------------------------------------
|
||||
# Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
#
|
||||
# Adaptive Theme
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
# Colors
|
||||
background='#222d32'
|
||||
foreground='#c4c7c5'
|
||||
color0='#263640'
|
||||
color1='#ec7875'
|
||||
color2='#61c766'
|
||||
color3='#fdd835'
|
||||
color4='#42a5f5'
|
||||
color5='#ba68c8'
|
||||
color6='#4dd0e1'
|
||||
color7='#bfbaac'
|
||||
color8='#4a697d'
|
||||
color9='#fb8784'
|
||||
color10='#70d675'
|
||||
color11='#ffe744'
|
||||
color12='#51b4ff'
|
||||
color13='#c979d7'
|
||||
color14='#5cdff0'
|
||||
color15='#fdf6e3'
|
||||
|
||||
accent='#00BCD4'
|
||||
light_value='0.15'
|
||||
dark_value='0.30'
|
||||
|
||||
# Wallpaper
|
||||
wdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||
wallpaper="$wdir/wallpaper"
|
||||
|
||||
# Polybar
|
||||
polybar_font='Iosevka Nerd Font:size=10;3'
|
||||
|
||||
# Rofi
|
||||
rofi_font='Iosevka 10'
|
||||
rofi_icon='Papirus-Apps'
|
||||
|
||||
# Terminal
|
||||
terminal_font_name='JetBrainsMono Nerd Font'
|
||||
terminal_font_size='10'
|
||||
|
||||
# Geany
|
||||
geany_colors='adapta.conf'
|
||||
geany_font='JetBrains Mono 10'
|
||||
|
||||
# Appearance
|
||||
gtk_font='Noto Sans 9'
|
||||
gtk_theme='Adapta-Nokto'
|
||||
icon_theme='Luv-Folders-Dark'
|
||||
cursor_theme='Vimix'
|
||||
|
||||
# Dunst
|
||||
dunst_width='300'
|
||||
dunst_height='80'
|
||||
dunst_offset='15x49'
|
||||
dunst_origin='top-right'
|
||||
dunst_font='Iosevka 10'
|
||||
dunst_border='1'
|
||||
dunst_separator='1'
|
||||
|
||||
# Picom
|
||||
picom_backend='glx'
|
||||
picom_corner='0'
|
||||
picom_shadow_r='14'
|
||||
picom_shadow_o='0.30'
|
||||
picom_shadow_x='-12'
|
||||
picom_shadow_y='-12'
|
||||
picom_blur_method='none'
|
||||
picom_blur_strength='0'
|
||||
|
||||
# I3WM
|
||||
i3wm_fonts='JetBrainsMono Nerd Font 10'
|
||||
i3wm_border_size='1'
|
||||
i3wm_border_style='pixel'
|
||||
i3wm_gaps_inner='15'
|
||||
i3wm_gaps_outer='0'
|
||||
i3wm_gaps_smart='off'
|
||||
1
config/i3/themes/adaptive/wallpaper
Symbolic link
1
config/i3/themes/adaptive/wallpaper
Symbolic link
@ -0,0 +1 @@
|
||||
/usr/share/backgrounds/adaptive.png
|
||||
308
config/i3/themes/beach/apply.sh
Executable file
308
config/i3/themes/beach/apply.sh
Executable file
@ -0,0 +1,308 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
##
|
||||
## Script To Apply Themes
|
||||
|
||||
## Theme ------------------------------------
|
||||
IDIR="$HOME/.config/i3"
|
||||
TDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||
THEME="${TDIR##*/}"
|
||||
|
||||
source "$IDIR"/themes/"$THEME"/theme.bash
|
||||
altbackground="`pastel color $background | pastel lighten $light_value | pastel format hex`"
|
||||
altforeground="`pastel color $foreground | pastel darken $dark_value | pastel format hex`"
|
||||
|
||||
## Directories ------------------------------
|
||||
PATH_CONF="$HOME/.config"
|
||||
PATH_GEANY="$PATH_CONF/geany"
|
||||
PATH_I3WM="$PATH_CONF/i3"
|
||||
PATH_TERM="$PATH_I3WM/alacritty"
|
||||
PATH_PBAR="$PATH_I3WM/themes/$THEME/polybar"
|
||||
PATH_ROFI="$PATH_I3WM/themes/$THEME/rofi"
|
||||
|
||||
## Wallpaper ---------------------------------
|
||||
apply_wallpaper() {
|
||||
sed -i -e "s#WALLPAPER=.*#WALLPAPER='$wallpaper'#g" ${PATH_I3WM}/themes/wallpaper.sh
|
||||
}
|
||||
|
||||
## Polybar -----------------------------------
|
||||
apply_polybar() {
|
||||
# modify polybar launch script
|
||||
sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" ${PATH_I3WM}/themes/polybar.sh
|
||||
|
||||
# apply default theme fonts
|
||||
sed -i -e "s/font-0 = .*/font-0 = \"$polybar_font\"/g" ${PATH_PBAR}/config.ini
|
||||
|
||||
# rewrite colors file
|
||||
cat > ${PATH_PBAR}/colors.ini <<- EOF
|
||||
[color]
|
||||
|
||||
BACKGROUND = ${background}
|
||||
FOREGROUND = ${foreground}
|
||||
ALTBACKGROUND = ${altbackground}
|
||||
ALTFOREGROUND = ${altforeground}
|
||||
ACCENT = ${accent}
|
||||
|
||||
BLACK = ${color0}
|
||||
RED = ${color1}
|
||||
GREEN = ${color2}
|
||||
YELLOW = ${color3}
|
||||
BLUE = ${color4}
|
||||
MAGENTA = ${color5}
|
||||
CYAN = ${color6}
|
||||
WHITE = ${color7}
|
||||
ALTBLACK = ${color8}
|
||||
ALTRED = ${color9}
|
||||
ALTGREEN = ${color10}
|
||||
ALTYELLOW = ${color11}
|
||||
ALTBLUE = ${color12}
|
||||
ALTMAGENTA = ${color13}
|
||||
ALTCYAN = ${color14}
|
||||
ALTWHITE = ${color15}
|
||||
EOF
|
||||
}
|
||||
|
||||
# Rofi --------------------------------------
|
||||
apply_rofi() {
|
||||
# modify rofi scripts
|
||||
sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" \
|
||||
${PATH_I3WM}/scripts/rofi_askpass \
|
||||
${PATH_I3WM}/scripts/rofi_asroot \
|
||||
${PATH_I3WM}/scripts/rofi_launcher \
|
||||
${PATH_I3WM}/scripts/rofi_music \
|
||||
${PATH_I3WM}/scripts/rofi_powermenu \
|
||||
${PATH_I3WM}/scripts/rofi_runner \
|
||||
${PATH_I3WM}/scripts/rofi_screenshot \
|
||||
${PATH_I3WM}/scripts/rofi_themes \
|
||||
${PATH_I3WM}/scripts/rofi_windows
|
||||
|
||||
# apply default theme fonts
|
||||
sed -i -e "s/font:.*/font: \"$rofi_font\";/g" ${PATH_ROFI}/shared/fonts.rasi
|
||||
|
||||
# rewrite colors file
|
||||
cat > ${PATH_ROFI}/shared/colors.rasi <<- EOF
|
||||
* {
|
||||
background: ${background};
|
||||
background-alt: ${altbackground};
|
||||
foreground: ${foreground};
|
||||
selected: ${accent};
|
||||
active: ${color2};
|
||||
urgent: ${color1};
|
||||
}
|
||||
EOF
|
||||
|
||||
# modify icon theme
|
||||
if [[ -f "$PATH_CONF"/rofi/config.rasi ]]; then
|
||||
sed -i -e "s/icon-theme:.*/icon-theme: \"$rofi_icon\";/g" ${PATH_CONF}/rofi/config.rasi
|
||||
fi
|
||||
}
|
||||
|
||||
# Network Menu ------------------------------
|
||||
apply_netmenu() {
|
||||
if [[ -f "$PATH_I3WM"/themes/networkmenu_config.ini ]]; then
|
||||
sed -i -e "s#dmenu_command = .*#dmenu_command = rofi -dmenu -theme $PATH_ROFI/networkmenu.rasi#g" ${PATH_I3WM}/themes/networkmenu_config.ini
|
||||
fi
|
||||
}
|
||||
|
||||
# Terminal ----------------------------------
|
||||
apply_terminal() {
|
||||
# alacritty : fonts
|
||||
sed -i ${PATH_TERM}/fonts.yml \
|
||||
-e "s/family: .*/family: \"$terminal_font_name\"/g" \
|
||||
-e "s/size: .*/size: $terminal_font_size/g"
|
||||
|
||||
# alacritty : colors
|
||||
cat > ${PATH_TERM}/colors.yml <<- _EOF_
|
||||
## Colors configuration
|
||||
colors:
|
||||
# Default colors
|
||||
primary:
|
||||
background: '${background}'
|
||||
foreground: '${foreground}'
|
||||
|
||||
# Normal colors
|
||||
normal:
|
||||
black: '${color0}'
|
||||
red: '${color1}'
|
||||
green: '${color2}'
|
||||
yellow: '${color3}'
|
||||
blue: '${color4}'
|
||||
magenta: '${color5}'
|
||||
cyan: '${color6}'
|
||||
white: '${color7}'
|
||||
|
||||
# Bright colors
|
||||
bright:
|
||||
black: '${color8}'
|
||||
red: '${color9}'
|
||||
green: '${color10}'
|
||||
yellow: '${color11}'
|
||||
blue: '${color12}'
|
||||
magenta: '${color13}'
|
||||
cyan: '${color14}'
|
||||
white: '${color15}'
|
||||
_EOF_
|
||||
}
|
||||
|
||||
# Geany -------------------------------------
|
||||
apply_geany() {
|
||||
sed -i ${PATH_GEANY}/geany.conf \
|
||||
-e "s/color_scheme=.*/color_scheme=$geany_colors/g" \
|
||||
-e "s/editor_font=.*/editor_font=$geany_font/g"
|
||||
}
|
||||
|
||||
# Appearance --------------------------------
|
||||
apply_appearance() {
|
||||
XFILE="$PATH_I3WM/xsettingsd"
|
||||
GTK2FILE="$HOME/.gtkrc-2.0"
|
||||
GTK3FILE="$PATH_CONF/gtk-3.0/settings.ini"
|
||||
|
||||
# apply gtk theme, icons, cursor & fonts
|
||||
if [[ `pidof xsettingsd` ]]; then
|
||||
sed -i -e "s|Net/ThemeName .*|Net/ThemeName \"$gtk_theme\"|g" ${XFILE}
|
||||
sed -i -e "s|Net/IconThemeName .*|Net/IconThemeName \"$icon_theme\"|g" ${XFILE}
|
||||
sed -i -e "s|Gtk/CursorThemeName .*|Gtk/CursorThemeName \"$cursor_theme\"|g" ${XFILE}
|
||||
else
|
||||
sed -i -e "s/gtk-font-name=.*/gtk-font-name=\"$gtk_font\"/g" ${GTK2FILE}
|
||||
sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=\"$gtk_theme\"/g" ${GTK2FILE}
|
||||
sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=\"$icon_theme\"/g" ${GTK2FILE}
|
||||
sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=\"$cursor_theme\"/g" ${GTK2FILE}
|
||||
|
||||
sed -i -e "s/gtk-font-name=.*/gtk-font-name=$gtk_font/g" ${GTK3FILE}
|
||||
sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=$gtk_theme/g" ${GTK3FILE}
|
||||
sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=$icon_theme/g" ${GTK3FILE}
|
||||
sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=$cursor_theme/g" ${GTK3FILE}
|
||||
fi
|
||||
|
||||
# inherit cursor theme
|
||||
if [[ -f "$HOME"/.icons/default/index.theme ]]; then
|
||||
sed -i -e "s/Inherits=.*/Inherits=$cursor_theme/g" "$HOME"/.icons/default/index.theme
|
||||
fi
|
||||
}
|
||||
|
||||
# Dunst -------------------------------------
|
||||
apply_dunst() {
|
||||
# modify dunst config
|
||||
sed -i ${PATH_I3WM}/dunstrc \
|
||||
-e "s/width = .*/width = $dunst_width/g" \
|
||||
-e "s/height = .*/height = $dunst_height/g" \
|
||||
-e "s/offset = .*/offset = $dunst_offset/g" \
|
||||
-e "s/origin = .*/origin = $dunst_origin/g" \
|
||||
-e "s/font = .*/font = $dunst_font/g" \
|
||||
-e "s/frame_width = .*/frame_width = $dunst_border/g" \
|
||||
-e "s/separator_height = .*/separator_height = $dunst_separator/g" \
|
||||
-e "s/line_height = .*/line_height = $dunst_separator/g"
|
||||
|
||||
# modify colors
|
||||
sed -i '/urgency_low/Q' ${PATH_I3WM}/dunstrc
|
||||
cat >> ${PATH_I3WM}/dunstrc <<- _EOF_
|
||||
[urgency_low]
|
||||
timeout = 2
|
||||
background = "${background}"
|
||||
foreground = "${foreground}"
|
||||
frame_color = "${altbackground}"
|
||||
|
||||
[urgency_normal]
|
||||
timeout = 5
|
||||
background = "${background}"
|
||||
foreground = "${foreground}"
|
||||
frame_color = "${altbackground}"
|
||||
|
||||
[urgency_critical]
|
||||
timeout = 0
|
||||
background = "${background}"
|
||||
foreground = "${color1}"
|
||||
frame_color = "${color1}"
|
||||
_EOF_
|
||||
}
|
||||
|
||||
# Compositor --------------------------------
|
||||
apply_compositor() {
|
||||
picom_cfg="$PATH_I3WM/picom.conf"
|
||||
|
||||
# modify picom config
|
||||
sed -i "$picom_cfg" \
|
||||
-e "s/backend = .*/backend = \"$picom_backend\";/g" \
|
||||
-e "s/corner-radius = .*/corner-radius = $picom_corner;/g" \
|
||||
-e "s/shadow-radius = .*/shadow-radius = $picom_shadow_r;/g" \
|
||||
-e "s/shadow-opacity = .*/shadow-opacity = $picom_shadow_o;/g" \
|
||||
-e "s/shadow-offset-x = .*/shadow-offset-x = $picom_shadow_x;/g" \
|
||||
-e "s/shadow-offset-y = .*/shadow-offset-y = $picom_shadow_y;/g" \
|
||||
-e "s/method = .*/method = \"$picom_blur_method\";/g" \
|
||||
-e "s/strength = .*/strength = $picom_blur_strength;/g"
|
||||
}
|
||||
|
||||
# I3WM -------------------------------------
|
||||
apply_i3wm() {
|
||||
# modify i3theme file
|
||||
sed -i ${PATH_I3WM}/config.d/01_theme.conf \
|
||||
-e "s/set \$i3_fonts.*/set \$i3_fonts $i3wm_fonts/g" \
|
||||
\
|
||||
-e "s/set \$i3_border_size.*/set \$i3_border_size $i3wm_border_size/g" \
|
||||
-e "s/set \$i3_border_style.*/set \$i3_border_style $i3wm_border_style/g" \
|
||||
\
|
||||
-e "s/set \$i3_gaps_inner.*/set \$i3_gaps_inner $i3wm_gaps_inner/g" \
|
||||
-e "s/set \$i3_gaps_outer.*/set \$i3_gaps_outer $i3wm_gaps_outer/g" \
|
||||
-e "s/set \$i3_gaps_smart.*/set \$i3_gaps_smart $i3wm_gaps_smart/g" \
|
||||
\
|
||||
-e "s/set \$i3_cl_col_bg.*/set \$i3_cl_col_bg $background/g" \
|
||||
-e "s/set \$i3_cl_col_fg.*/set \$i3_cl_col_fg $foreground/g" \
|
||||
-e "s/set \$i3_cl_col_in.*/set \$i3_cl_col_in $color2/g" \
|
||||
-e "s/set \$i3_cl_col_afoc.*/set \$i3_cl_col_afoc $accent/g" \
|
||||
-e "s/set \$i3_cl_col_ifoc.*/set \$i3_cl_col_ifoc $color4/g" \
|
||||
-e "s/set \$i3_cl_col_ufoc.*/set \$i3_cl_col_ufoc $altbackground/g" \
|
||||
-e "s/set \$i3_cl_col_urgt.*/set \$i3_cl_col_urgt $color5/g" \
|
||||
-e "s/set \$i3_cl_col_phol.*/set \$i3_cl_col_phol $background/g"
|
||||
|
||||
# modify i3bar file
|
||||
sed -i ${PATH_I3WM}/i3status/statusbar.conf \
|
||||
-e "s/set \$i3_bar_fonts.*/set \$i3_bar_fonts $i3wm_fonts/g" \
|
||||
\
|
||||
-e "s/set \$i3_bar_bg.*/set \$i3_bar_bg $background/g" \
|
||||
-e "s/set \$i3_bar_fg.*/set \$i3_bar_fg $foreground/g" \
|
||||
-e "s/set \$i3_bar_sep.*/set \$i3_bar_sep $altbackground/g" \
|
||||
-e "s/set \$i3_bar_foc.*/set \$i3_bar_foc $accent/g" \
|
||||
-e "s/set \$i3_bar_act.*/set \$i3_bar_act $color4/g" \
|
||||
-e "s/set \$i3_bar_ina.*/set \$i3_bar_ina $altbackground/g" \
|
||||
-e "s/set \$i3_bar_urg.*/set \$i3_bar_urg $color5/g" \
|
||||
-e "s/set \$i3_bar_mod.*/set \$i3_bar_mod $color2/g"
|
||||
|
||||
# modify i3status file
|
||||
sed -i ${PATH_I3WM}/i3status/config \
|
||||
-e "s/color_good =.*/color_good = \"$color2\"/g" \
|
||||
-e "s/color_degraded =.*/color_degraded = \"$color3\"/g" \
|
||||
-e "s/color_bad =.*/color_bad = \"$color1\"/g" \
|
||||
-e "s/color_separator =.*/color_separator = \"$altbackground\"/g"
|
||||
|
||||
# restart i3wm
|
||||
i3-msg restart
|
||||
}
|
||||
|
||||
# Create Theme File -------------------------
|
||||
create_file() {
|
||||
theme_file="$PATH_I3WM/themes/.current"
|
||||
if [[ ! -f "$theme_file" ]]; then
|
||||
touch ${theme_file}
|
||||
fi
|
||||
echo "$THEME" > ${theme_file}
|
||||
}
|
||||
|
||||
# Notify User -------------------------------
|
||||
notify_user() {
|
||||
dunstify -u normal -h string:x-dunst-stack-tag:applytheme -i /usr/share/archcraft/icons/dunst/themes.png "Applying Style : $THEME"
|
||||
}
|
||||
|
||||
## Execute Script ---------------------------
|
||||
notify_user
|
||||
create_file
|
||||
apply_wallpaper
|
||||
apply_polybar
|
||||
apply_rofi
|
||||
apply_netmenu
|
||||
apply_terminal
|
||||
apply_geany
|
||||
apply_appearance
|
||||
apply_dunst
|
||||
apply_compositor
|
||||
apply_i3wm
|
||||
0
config/i3/themes/beach/polybar/.module
Normal file
0
config/i3/themes/beach/polybar/.module
Normal file
24
config/i3/themes/beach/polybar/colors.ini
Normal file
24
config/i3/themes/beach/polybar/colors.ini
Normal file
@ -0,0 +1,24 @@
|
||||
[color]
|
||||
|
||||
BACKGROUND = #141c21
|
||||
FOREGROUND = #93a1a1
|
||||
ALTBACKGROUND = #1a242b
|
||||
ALTFOREGROUND = #485353
|
||||
ACCENT = #5294E2
|
||||
|
||||
BLACK = #263640
|
||||
RED = #d12f2c
|
||||
GREEN = #819400
|
||||
YELLOW = #b08500
|
||||
BLUE = #2587cc
|
||||
MAGENTA = #696ebf
|
||||
CYAN = #289c93
|
||||
WHITE = #bfbaac
|
||||
ALTBLACK = #4a697d
|
||||
ALTRED = #fa3935
|
||||
ALTGREEN = #a4bd00
|
||||
ALTYELLOW = #d9a400
|
||||
ALTBLUE = #2ca2f5
|
||||
ALTMAGENTA = #8086e8
|
||||
ALTCYAN = #33c5ba
|
||||
ALTWHITE = #fdf6e3
|
||||
317
config/i3/themes/beach/polybar/config.ini
Normal file
317
config/i3/themes/beach/polybar/config.ini
Normal file
@ -0,0 +1,317 @@
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
|
||||
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
||||
|
||||
;; Global WM Settings
|
||||
|
||||
[global/wm]
|
||||
; Adjust the _NET_WM_STRUT_PARTIAL top value
|
||||
; Used for top aligned bars
|
||||
margin-bottom = 0
|
||||
|
||||
; Adjust the _NET_WM_STRUT_PARTIAL bottom value
|
||||
; Used for bottom aligned bars
|
||||
margin-top = 0
|
||||
|
||||
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
||||
|
||||
;; File Inclusion
|
||||
; include an external file, like module file, etc.
|
||||
|
||||
include-file = ../../system.ini
|
||||
include-file = ./colors.ini
|
||||
include-file = ./modules.ini
|
||||
|
||||
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
||||
|
||||
;; Bar Settings
|
||||
|
||||
[bar/main]
|
||||
; Use either of the following command to list available outputs:
|
||||
; If unspecified, the application will pick the first one it finds.
|
||||
; $ polybar -m | cut -d ':' -f 1
|
||||
; $ xrandr -q | grep " connected" | cut -d ' ' -f1
|
||||
monitor = ${env:MONITOR:}
|
||||
|
||||
; Use the specified monitor as a fallback if the main one is not found.
|
||||
monitor-fallback =
|
||||
|
||||
; Require the monitor to be in connected state
|
||||
; XRandR sometimes reports my monitor as being disconnected (when in use)
|
||||
monitor-strict = false
|
||||
|
||||
; Tell the Window Manager not to configure the window.
|
||||
; Use this to detach the bar if your WM is locking its size/position.
|
||||
override-redirect = false
|
||||
|
||||
; Put the bar at the bottom of the screen
|
||||
bottom = true
|
||||
|
||||
; Prefer fixed center position for the `modules-center` block
|
||||
; When false, the center position will be based on the size of the other blocks.
|
||||
fixed-center = true
|
||||
|
||||
; Dimension defined as pixel value (e.g. 35) or percentage (e.g. 50%),
|
||||
; the percentage can optionally be extended with a pixel offset like so:
|
||||
; 50%:-10, this will result in a width or height of 50% minus 10 pixels
|
||||
width = 100%
|
||||
height = 38
|
||||
|
||||
; Offset defined as pixel value (e.g. 35) or percentage (e.g. 50%)
|
||||
; the percentage can optionally be extended with a pixel offset like so:
|
||||
; 50%:-10, this will result in an offset in the x or y direction
|
||||
; of 50% minus 10 pixels
|
||||
offset-x = 0%
|
||||
offset-y = 0%
|
||||
|
||||
; Background ARGB color (e.g. #f00, #ff992a, #ddff1023)
|
||||
background = ${color.BACKGROUND}
|
||||
|
||||
; Foreground ARGB color (e.g. #f00, #ff992a, #ddff1023)
|
||||
foreground = ${color.FOREGROUND}
|
||||
|
||||
; Background gradient (vertical steps)
|
||||
; background-[0-9]+ = #aarrggbb
|
||||
;;background-0 =
|
||||
|
||||
; Value used for drawing rounded corners
|
||||
; Note: This shouldn't be used together with border-size because the border
|
||||
; doesn't get rounded
|
||||
; Individual top/bottom values can be defined using:
|
||||
; radius-{top,bottom}
|
||||
radius-top = 0.0
|
||||
radius-bottom = 0.0
|
||||
|
||||
; Under-/overline pixel size and argb color
|
||||
; Individual values can be defined using:
|
||||
; {overline,underline}-size
|
||||
; {overline,underline}-color
|
||||
line-size = 2
|
||||
line-color = ${color.ACCENT}
|
||||
|
||||
; Values applied to all borders
|
||||
; Individual side values can be defined using:
|
||||
; border-{left,top,right,bottom}-size
|
||||
; border-{left,top,right,bottom}-color
|
||||
; The top and bottom borders are added to the bar height, so the effective
|
||||
; window height is:
|
||||
; height + border-top-size + border-bottom-size
|
||||
; Meanwhile the effective window width is defined entirely by the width key and
|
||||
; the border is placed withing this area. So you effectively only have the
|
||||
; following horizontal space on the bar:
|
||||
; width - border-right-size - border-left-size
|
||||
border-size = 0
|
||||
border-color = ${color.BACKGROUND}
|
||||
|
||||
; Number of spaces to add at the beginning/end of the bar
|
||||
; Individual side values can be defined using:
|
||||
; padding-{left,right}
|
||||
padding = 0
|
||||
|
||||
; Number of spaces to add before/after each module
|
||||
; Individual side values can be defined using:
|
||||
; module-margin-{left,right}
|
||||
module-margin-left = 1
|
||||
module-margin-right = 1
|
||||
|
||||
; Fonts are defined using <font-name>;<vertical-offset>
|
||||
; Font names are specified using a fontconfig pattern.
|
||||
; font-0 = "Iosevka Nerd Font:size=10;3"
|
||||
; font-1 = MaterialIcons:size=10
|
||||
; font-2 = Termsynu:size=8;-1
|
||||
; font-3 = FontAwesome:size=10
|
||||
; See the Fonts wiki page for more details
|
||||
|
||||
; text
|
||||
font-0 = "Iosevka Nerd Font:size=10;3"
|
||||
; icons
|
||||
font-1 = "Iosevka Nerd Font:size=12;3"
|
||||
; glyphs
|
||||
font-2 = "Iosevka Nerd Font:size=15;4"
|
||||
; dot
|
||||
font-3 = "Iosevka Nerd Font:size=10;4"
|
||||
; clock & mpd
|
||||
font-4 = "Iosevka:style=bold:size=10;4"
|
||||
; Archcraft
|
||||
font-5 = "archcraft:size=12;3"
|
||||
|
||||
; Modules are added to one of the available blocks
|
||||
; modules-left = cpu ram
|
||||
; modules-center = xwindow xbacklight
|
||||
; modules-right = ipc clock
|
||||
|
||||
# Default
|
||||
modules-left = menu i3
|
||||
modules-center = mpd
|
||||
modules-right = volume backlight battery network date sysmenu
|
||||
|
||||
# Alternate
|
||||
;modules-left = openbox 2LD cpu 3LD memory 4LD filesystem 5LD
|
||||
;modules-center = mpd
|
||||
;modules-right = 2RD volume 3RD backlight 4RD battery 5RD network 6RD date sep
|
||||
|
||||
; The separator will be inserted between the output of each module
|
||||
separator =
|
||||
|
||||
; This value is used to add extra spacing between elements
|
||||
; @deprecated: This parameter will be removed in an upcoming version
|
||||
spacing = 0
|
||||
|
||||
; Opacity value between 0.0 and 1.0 used on fade in/out
|
||||
dim-value = 1.0
|
||||
|
||||
; Value to be used to set the WM_NAME atom
|
||||
; If the value is empty or undefined, the atom value
|
||||
; will be created from the following template: polybar-[BAR]_[MONITOR]
|
||||
; NOTE: The placeholders are not available for custom values
|
||||
wm-name = i3
|
||||
|
||||
; Locale used to localize various module data (e.g. date)
|
||||
; Expects a valid libc locale, for example: sv_SE.UTF-8
|
||||
locale =
|
||||
|
||||
; Position of the system tray window
|
||||
; If empty or undefined, tray support will be disabled
|
||||
; NOTE: A center aligned tray will cover center aligned modules
|
||||
;
|
||||
; Available positions:
|
||||
; left
|
||||
; center
|
||||
; right
|
||||
; none
|
||||
tray-position = right
|
||||
|
||||
; If true, the bar will not shift its
|
||||
; contents when the tray changes
|
||||
tray-detached = false
|
||||
|
||||
; Tray icon max size
|
||||
tray-maxsize = 16
|
||||
|
||||
; DEPRECATED! Since 3.3.0 the tray always uses pseudo-transparency
|
||||
; Enable pseudo transparency
|
||||
; Will automatically be enabled if a fully transparent
|
||||
; background color is defined using `tray-background`
|
||||
; tray-transparent = false
|
||||
|
||||
; Background color for the tray container
|
||||
; ARGB color (e.g. #f00, #ff992a, #ddff1023)
|
||||
; By default the tray container will use the bar
|
||||
; background color.
|
||||
tray-background = ${color.BACKGROUND}
|
||||
|
||||
; Tray offset defined as pixel value (e.g. 35) or percentage (e.g. 50%)
|
||||
tray-offset-x = 0
|
||||
tray-offset-y = 0
|
||||
|
||||
; Pad the sides of each tray icon
|
||||
tray-padding = 0
|
||||
|
||||
; Scale factor for tray clients
|
||||
tray-scale = 1.0
|
||||
|
||||
; Restack the bar window and put it above the
|
||||
; selected window manager's root
|
||||
;
|
||||
; Fixes the issue where the bar is being drawn
|
||||
; on top of fullscreen window's
|
||||
;
|
||||
; Currently supported WM's:
|
||||
; bspwm
|
||||
; i3 (requires: `override-redirect = true`)
|
||||
wm-restack = i3
|
||||
|
||||
; Set a DPI values used when rendering text
|
||||
; This only affects scalable fonts
|
||||
; dpi =
|
||||
|
||||
; Enable support for inter-process messaging
|
||||
; See the Messaging wiki page for more details.
|
||||
enable-ipc = true
|
||||
|
||||
; Fallback click handlers that will be called if
|
||||
; there's no matching module handler found.
|
||||
click-left =
|
||||
click-middle =
|
||||
click-right =
|
||||
scroll-up =
|
||||
scroll-down =
|
||||
double-click-left =
|
||||
double-click-middle =
|
||||
double-click-right =
|
||||
|
||||
; Requires polybar to be built with xcursor support (xcb-util-cursor)
|
||||
; Possible values are:
|
||||
; - default : The default pointer as before, can also be an empty string (default)
|
||||
; - pointer : Typically in the form of a hand
|
||||
; - ns-resize : Up and down arrows, can be used to indicate scrolling
|
||||
cursor-click =
|
||||
cursor-scroll =
|
||||
|
||||
;; WM Workspace Specific
|
||||
|
||||
; bspwm
|
||||
;;scroll-up = bspwm-desknext
|
||||
;;scroll-down = bspwm-deskprev
|
||||
;;scroll-up = bspc desktop -f prev.local
|
||||
;;scroll-down = bspc desktop -f next.local
|
||||
|
||||
;i3
|
||||
;;scroll-up = i3wm-wsnext
|
||||
;;scroll-down = i3wm-wsprev
|
||||
;;scroll-up = i3-msg workspace next_on_output
|
||||
;;scroll-down = i3-msg workspace prev_on_output
|
||||
|
||||
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
||||
|
||||
;; Application Settings
|
||||
|
||||
[settings]
|
||||
; The throttle settings lets the eventloop swallow up til X events
|
||||
; if they happen within Y millisecond after first event was received.
|
||||
; This is done to prevent flood of update event.
|
||||
;
|
||||
; For example if 5 modules emit an update event at the same time, we really
|
||||
; just care about the last one. But if we wait too long for events to swallow
|
||||
; the bar would appear sluggish so we continue if timeout
|
||||
; expires or limit is reached.
|
||||
throttle-output = 5
|
||||
throttle-output-for = 10
|
||||
|
||||
; Time in milliseconds that the input handler will wait between processing events
|
||||
;throttle-input-for = 30
|
||||
|
||||
; Reload upon receiving XCB_RANDR_SCREEN_CHANGE_NOTIFY events
|
||||
screenchange-reload = false
|
||||
|
||||
; Compositing operators
|
||||
; @see: https://www.cairographics.org/manual/cairo-cairo-t.html#cairo-operator-t
|
||||
compositing-background = source
|
||||
compositing-foreground = over
|
||||
compositing-overline = over
|
||||
compositing-underline = over
|
||||
compositing-border = over
|
||||
|
||||
; Define fallback values used by all module formats
|
||||
;format-foreground =
|
||||
;format-background =
|
||||
;format-underline =
|
||||
;format-overline =
|
||||
;format-spacing =
|
||||
;format-padding =
|
||||
;format-margin =
|
||||
;format-offset =
|
||||
|
||||
; Enables pseudo-transparency for the bar
|
||||
; If set to true the bar can be transparent without a compositor.
|
||||
pseudo-transparency = false
|
||||
|
||||
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
||||
;; __________ ______
|
||||
;; / ____/ __ \/ ____/
|
||||
;; / __/ / / / / /_
|
||||
;; / /___/ /_/ / __/
|
||||
;; /_____/\____/_/
|
||||
;;
|
||||
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
||||
|
||||
42
config/i3/themes/beach/polybar/launch.sh
Executable file
42
config/i3/themes/beach/polybar/launch.sh
Executable file
@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||
CARD="$(light -L | grep 'backlight' | head -n1 | cut -d'/' -f3)"
|
||||
INTERFACE="$(ip link | awk '/state UP/ {print $2}' | tr -d :)"
|
||||
RFILE="$DIR/.module"
|
||||
|
||||
# Fix backlight and network modules
|
||||
fix_modules() {
|
||||
if [[ -z "$CARD" ]]; then
|
||||
sed -i -e 's/backlight/bna/g' "$DIR"/config.ini
|
||||
elif [[ "$CARD" != *"intel_"* ]]; then
|
||||
sed -i -e 's/backlight/brightness/g' "$DIR"/config.ini
|
||||
fi
|
||||
|
||||
if [[ "$INTERFACE" == e* ]]; then
|
||||
sed -i -e 's/network/ethernet/g' "$DIR"/config.ini
|
||||
fi
|
||||
}
|
||||
|
||||
# Launch the bar
|
||||
launch_bar() {
|
||||
# Terminate already running bar instances
|
||||
killall -q polybar
|
||||
|
||||
# Wait until the processes have been shut down
|
||||
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
|
||||
|
||||
# Launch the bar
|
||||
for mon in $(polybar --list-monitors | cut -d":" -f1); do
|
||||
MONITOR=$mon polybar -q main -c "$DIR"/config.ini &
|
||||
done
|
||||
}
|
||||
|
||||
# Execute functions
|
||||
if [[ ! -f "$RFILE" ]]; then
|
||||
fix_modules
|
||||
touch "$RFILE"
|
||||
fi
|
||||
launch_bar
|
||||
1278
config/i3/themes/beach/polybar/modules.ini
Normal file
1278
config/i3/themes/beach/polybar/modules.ini
Normal file
File diff suppressed because it is too large
Load Diff
210
config/i3/themes/beach/random.sh
Executable file
210
config/i3/themes/beach/random.sh
Executable file
@ -0,0 +1,210 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
##
|
||||
## Apply Random Theme With Pywal
|
||||
|
||||
## Theme ------------------------------------
|
||||
TDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||
THEME="${TDIR##*/}"
|
||||
|
||||
# Set you wallpaper directory here.
|
||||
WALLDIR="`xdg-user-dir PICTURES`/wallpapers"
|
||||
WALFILE="$HOME/.cache/wal/colors.sh"
|
||||
|
||||
## Directories ------------------------------
|
||||
PATH_CONF="$HOME/.config"
|
||||
PATH_I3WM="$PATH_CONF/i3"
|
||||
PATH_TERM="$PATH_I3WM/alacritty"
|
||||
PATH_PBAR="$PATH_I3WM/themes/$THEME/polybar"
|
||||
PATH_ROFI="$PATH_I3WM/themes/$THEME/rofi"
|
||||
|
||||
## Pywal ------------------------------------
|
||||
check_wallpaper() {
|
||||
if [[ -d "$WALLDIR" ]]; then
|
||||
WFILES="`ls --format=single-column $WALLDIR | wc -l`"
|
||||
if [[ "$WFILES" == 0 ]]; then
|
||||
dunstify -u normal -h string:x-dunst-stack-tag:noimage -i /usr/share/archcraft/icons/dunst/picture.png "There are no wallpapers in : $WALLDIR"
|
||||
exit
|
||||
fi
|
||||
else
|
||||
mkdir -p "$WALLDIR"
|
||||
dunstify -u normal -h string:x-dunst-stack-tag:noimage -i /usr/share/archcraft/icons/dunst/picture.png "Put some wallpapers in : $WALLDIR"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
generate_colors() {
|
||||
check_wallpaper
|
||||
if [[ `which wal` ]]; then
|
||||
dunstify -t 50000 -h string:x-dunst-stack-tag:runpywal -i /usr/share/archcraft/icons/dunst/hourglass.png "Generating Colorscheme. Please wait..."
|
||||
wal -q -n -s -t -e -i "$WALLDIR"
|
||||
if [[ "$?" != 0 ]]; then
|
||||
dunstify -u normal -h string:x-dunst-stack-tag:runpywal -i /usr/share/archcraft/icons/dunst/palette.png "Failed to generate colorscheme."
|
||||
exit
|
||||
fi
|
||||
else
|
||||
dunstify -u normal -h string:x-dunst-stack-tag:runpywal -i /usr/share/archcraft/icons/dunst/palette.png "'pywal' is not installed."
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
generate_colors
|
||||
source "$WALFILE"
|
||||
altbackground="`pastel color $background | pastel lighten 0.03 | pastel format hex`"
|
||||
altforeground="`pastel color $foreground | pastel darken 0.30 | pastel format hex`"
|
||||
accent="$color4"
|
||||
|
||||
## Wallpaper ---------------------------------
|
||||
apply_wallpaper() {
|
||||
sed -i -e "s#WALLPAPER=.*#WALLPAPER='$wallpaper'#g" ${PATH_I3WM}/themes/wallpaper.sh
|
||||
}
|
||||
|
||||
## Polybar -----------------------------------
|
||||
apply_polybar() {
|
||||
# rewrite colors file
|
||||
cat > ${PATH_PBAR}/colors.ini <<- EOF
|
||||
[color]
|
||||
|
||||
BACKGROUND = ${background}
|
||||
FOREGROUND = ${foreground}
|
||||
ALTBACKGROUND = ${altbackground}
|
||||
ALTFOREGROUND = ${altforeground}
|
||||
ACCENT = ${accent}
|
||||
|
||||
BLACK = ${color0}
|
||||
RED = ${color1}
|
||||
GREEN = ${color2}
|
||||
YELLOW = ${color3}
|
||||
BLUE = ${color4}
|
||||
MAGENTA = ${color5}
|
||||
CYAN = ${color6}
|
||||
WHITE = ${color7}
|
||||
ALTBLACK = ${color8}
|
||||
ALTRED = ${color9}
|
||||
ALTGREEN = ${color10}
|
||||
ALTYELLOW = ${color11}
|
||||
ALTBLUE = ${color12}
|
||||
ALTMAGENTA = ${color13}
|
||||
ALTCYAN = ${color14}
|
||||
ALTWHITE = ${color15}
|
||||
EOF
|
||||
}
|
||||
|
||||
# Rofi --------------------------------------
|
||||
apply_rofi() {
|
||||
# rewrite colors file
|
||||
cat > ${PATH_ROFI}/shared/colors.rasi <<- EOF
|
||||
* {
|
||||
background: ${background};
|
||||
background-alt: ${altbackground};
|
||||
foreground: ${foreground};
|
||||
selected: ${accent};
|
||||
active: ${color2};
|
||||
urgent: ${color1};
|
||||
}
|
||||
EOF
|
||||
}
|
||||
|
||||
# Terminal ----------------------------------
|
||||
apply_terminal() {
|
||||
# alacritty : colors
|
||||
cat > ${PATH_TERM}/colors.yml <<- _EOF_
|
||||
## Colors configuration
|
||||
colors:
|
||||
# Default colors
|
||||
primary:
|
||||
background: '${background}'
|
||||
foreground: '${foreground}'
|
||||
|
||||
# Normal colors
|
||||
normal:
|
||||
black: '${color0}'
|
||||
red: '${color1}'
|
||||
green: '${color2}'
|
||||
yellow: '${color3}'
|
||||
blue: '${color4}'
|
||||
magenta: '${color5}'
|
||||
cyan: '${color6}'
|
||||
white: '${color7}'
|
||||
|
||||
# Bright colors
|
||||
bright:
|
||||
black: '${color8}'
|
||||
red: '${color9}'
|
||||
green: '${color10}'
|
||||
yellow: '${color11}'
|
||||
blue: '${color12}'
|
||||
magenta: '${color13}'
|
||||
cyan: '${color14}'
|
||||
white: '${color15}'
|
||||
_EOF_
|
||||
}
|
||||
|
||||
# Dunst -------------------------------------
|
||||
apply_dunst() {
|
||||
# modify colors
|
||||
sed -i '/urgency_low/Q' ${PATH_I3WM}/dunstrc
|
||||
cat >> ${PATH_I3WM}/dunstrc <<- _EOF_
|
||||
[urgency_low]
|
||||
timeout = 2
|
||||
background = "${background}"
|
||||
foreground = "${foreground}"
|
||||
frame_color = "${altbackground}"
|
||||
|
||||
[urgency_normal]
|
||||
timeout = 5
|
||||
background = "${background}"
|
||||
foreground = "${foreground}"
|
||||
frame_color = "${altbackground}"
|
||||
|
||||
[urgency_critical]
|
||||
timeout = 0
|
||||
background = "${background}"
|
||||
foreground = "${color1}"
|
||||
frame_color = "${color1}"
|
||||
_EOF_
|
||||
}
|
||||
|
||||
# I3WM -------------------------------------
|
||||
apply_i3wm() {
|
||||
# modify i3theme file
|
||||
sed -i ${PATH_I3WM}/config.d/01_theme.conf \
|
||||
-e "s/set \$i3_cl_col_bg.*/set \$i3_cl_col_bg $background/g" \
|
||||
-e "s/set \$i3_cl_col_fg.*/set \$i3_cl_col_fg $foreground/g" \
|
||||
-e "s/set \$i3_cl_col_in.*/set \$i3_cl_col_in $color2/g" \
|
||||
-e "s/set \$i3_cl_col_afoc.*/set \$i3_cl_col_afoc $accent/g" \
|
||||
-e "s/set \$i3_cl_col_ifoc.*/set \$i3_cl_col_ifoc $color4/g" \
|
||||
-e "s/set \$i3_cl_col_ufoc.*/set \$i3_cl_col_ufoc $altbackground/g" \
|
||||
-e "s/set \$i3_cl_col_urgt.*/set \$i3_cl_col_urgt $color5/g" \
|
||||
-e "s/set \$i3_cl_col_phol.*/set \$i3_cl_col_phol $background/g"
|
||||
|
||||
# modify i3bar file
|
||||
sed -i ${PATH_I3WM}/i3status/statusbar.conf \
|
||||
-e "s/set \$i3_bar_bg.*/set \$i3_bar_bg $background/g" \
|
||||
-e "s/set \$i3_bar_fg.*/set \$i3_bar_fg $foreground/g" \
|
||||
-e "s/set \$i3_bar_sep.*/set \$i3_bar_sep $altbackground/g" \
|
||||
-e "s/set \$i3_bar_foc.*/set \$i3_bar_foc $accent/g" \
|
||||
-e "s/set \$i3_bar_act.*/set \$i3_bar_act $color4/g" \
|
||||
-e "s/set \$i3_bar_ina.*/set \$i3_bar_ina $altbackground/g" \
|
||||
-e "s/set \$i3_bar_urg.*/set \$i3_bar_urg $color5/g" \
|
||||
-e "s/set \$i3_bar_mod.*/set \$i3_bar_mod $color2/g"
|
||||
|
||||
# modify i3status file
|
||||
sed -i ${PATH_I3WM}/i3status/config \
|
||||
-e "s/color_good =.*/color_good = \"$color2\"/g" \
|
||||
-e "s/color_degraded =.*/color_degraded = \"$color3\"/g" \
|
||||
-e "s/color_bad =.*/color_bad = \"$color1\"/g" \
|
||||
-e "s/color_separator =.*/color_separator = \"$altbackground\"/g"
|
||||
|
||||
# restart i3wm
|
||||
i3-msg restart
|
||||
}
|
||||
|
||||
## Execute Script ---------------------------
|
||||
apply_wallpaper
|
||||
apply_polybar
|
||||
apply_rofi
|
||||
apply_terminal
|
||||
apply_dunst
|
||||
apply_i3wm
|
||||
75
config/i3/themes/beach/rofi/askpass.rasi
Normal file
75
config/i3/themes/beach/rofi/askpass.rasi
Normal file
@ -0,0 +1,75 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
location: south;
|
||||
anchor: south;
|
||||
fullscreen: false;
|
||||
width: 350px;
|
||||
x-offset: 0px;
|
||||
y-offset: -58px;
|
||||
padding: 15px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: @background;
|
||||
cursor: "default";
|
||||
children: [ "inputbar", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
children: [ "textbox-prompt-colon", "entry", "prompt" ];
|
||||
}
|
||||
|
||||
dummy {
|
||||
expand: false;
|
||||
width: 10px;
|
||||
background-color: transparent;
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "";
|
||||
padding: 10px 13px;
|
||||
border-radius: 0px;
|
||||
background-color: @urgent;
|
||||
text-color: @background;
|
||||
}
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
border-radius: 0px;
|
||||
background-color: @selected;
|
||||
text-color: @background;
|
||||
}
|
||||
entry {
|
||||
enabled: true;
|
||||
padding: 10px 15px;
|
||||
border-radius: 0px;
|
||||
background-color: @background-alt;
|
||||
text-color: inherit;
|
||||
cursor: text;
|
||||
placeholder: "Password";
|
||||
placeholder-color: inherit;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: false;
|
||||
}
|
||||
306
config/i3/themes/beach/rofi/asroot.rasi
Normal file
306
config/i3/themes/beach/rofi/asroot.rasi
Normal file
@ -0,0 +1,306 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
modi: "run";
|
||||
show-icons: false;
|
||||
display-drun: "";
|
||||
display-run: "";
|
||||
display-filebrowser: "";
|
||||
display-window: "";
|
||||
drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
|
||||
window-format: "{w} · {c} · {t}";
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
/*
|
||||
USE_ICON=NO
|
||||
*/
|
||||
|
||||
* {
|
||||
border-colour: var(selected);
|
||||
handle-colour: var(selected);
|
||||
background-colour: var(background);
|
||||
foreground-colour: var(foreground);
|
||||
alternate-background: var(background-alt);
|
||||
normal-background: var(background);
|
||||
normal-foreground: var(foreground);
|
||||
urgent-background: var(urgent);
|
||||
urgent-foreground: var(background);
|
||||
active-background: var(active);
|
||||
active-foreground: var(background);
|
||||
selected-normal-background: var(selected);
|
||||
selected-normal-foreground: var(background);
|
||||
selected-urgent-background: var(active);
|
||||
selected-urgent-foreground: var(background);
|
||||
selected-active-background: var(urgent);
|
||||
selected-active-foreground: var(background);
|
||||
alternate-normal-background: var(background);
|
||||
alternate-normal-foreground: var(foreground);
|
||||
alternate-urgent-background: var(urgent);
|
||||
alternate-urgent-foreground: var(background);
|
||||
alternate-active-background: var(active);
|
||||
alternate-active-foreground: var(background);
|
||||
}
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
/* properties for window widget */
|
||||
transparency: "real";
|
||||
location: south;
|
||||
anchor: south;
|
||||
fullscreen: false;
|
||||
width: 350px;
|
||||
x-offset: 0px;
|
||||
y-offset: -58px;
|
||||
|
||||
/* properties for all widgets */
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
cursor: "default";
|
||||
/* Backgroud Colors */
|
||||
background-color: @background-colour;
|
||||
/* Backgroud Image */
|
||||
//background-image: url("/path/to/image.png", none);
|
||||
/* Simple Linear Gradient */
|
||||
//background-image: linear-gradient(red, orange, pink, purple);
|
||||
/* Directional Linear Gradient */
|
||||
//background-image: linear-gradient(to bottom, pink, yellow, magenta);
|
||||
/* Angle Linear Gradient */
|
||||
//background-image: linear-gradient(45, cyan, purple, indigo);
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 30px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar", "message", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
children: [ "textbox-prompt-colon", "prompt" ];
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
entry {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
cursor: text;
|
||||
placeholder: "";
|
||||
placeholder-color: inherit;
|
||||
}
|
||||
num-filtered-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-num-sep {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "/";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
num-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
case-indicator {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 1;
|
||||
lines: 5;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
fixed-height: true;
|
||||
fixed-columns: true;
|
||||
|
||||
spacing: 5px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: "default";
|
||||
}
|
||||
scrollbar {
|
||||
handle-width: 5px ;
|
||||
handle-color: @handle-colour;
|
||||
border-radius: 0px;
|
||||
background-color: @alternate-background;
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 0px;
|
||||
margin: 0px;
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: pointer;
|
||||
}
|
||||
element normal.normal {
|
||||
background-color: var(normal-background);
|
||||
text-color: var(normal-foreground);
|
||||
}
|
||||
element normal.urgent {
|
||||
background-color: var(urgent-background);
|
||||
text-color: var(urgent-foreground);
|
||||
}
|
||||
element normal.active {
|
||||
background-color: var(active-background);
|
||||
text-color: var(active-foreground);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected);
|
||||
text-color: var(normal-background);
|
||||
}
|
||||
element selected.urgent {
|
||||
background-color: var(selected-urgent-background);
|
||||
text-color: var(selected-urgent-foreground);
|
||||
}
|
||||
element selected.active {
|
||||
background-color: var(selected-active-background);
|
||||
text-color: var(selected-active-foreground);
|
||||
}
|
||||
element alternate.normal {
|
||||
background-color: var(alternate-normal-background);
|
||||
text-color: var(alternate-normal-foreground);
|
||||
}
|
||||
element alternate.urgent {
|
||||
background-color: var(alternate-urgent-background);
|
||||
text-color: var(alternate-urgent-foreground);
|
||||
}
|
||||
element alternate.active {
|
||||
background-color: var(alternate-active-background);
|
||||
text-color: var(alternate-active-foreground);
|
||||
}
|
||||
element-icon {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
size: 24px;
|
||||
cursor: inherit;
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
highlight: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
/*****----- Mode Switcher -----*****/
|
||||
mode-switcher{
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
button {
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: inherit;
|
||||
cursor: pointer;
|
||||
}
|
||||
button selected {
|
||||
background-color: var(selected-normal-background);
|
||||
text-color: var(selected-normal-foreground);
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
textbox {
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: @foreground-colour;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
highlight: none;
|
||||
placeholder-color: @foreground-colour;
|
||||
blink: true;
|
||||
markup: true;
|
||||
}
|
||||
error-message {
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @background-colour;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
306
config/i3/themes/beach/rofi/confirm.rasi
Normal file
306
config/i3/themes/beach/rofi/confirm.rasi
Normal file
@ -0,0 +1,306 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
modi: "run";
|
||||
show-icons: false;
|
||||
display-drun: "";
|
||||
display-run: "";
|
||||
display-filebrowser: "";
|
||||
display-window: "";
|
||||
drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
|
||||
window-format: "{w} · {c} · {t}";
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
/*
|
||||
USE_ICON=NO
|
||||
*/
|
||||
|
||||
* {
|
||||
border-colour: var(selected);
|
||||
handle-colour: var(selected);
|
||||
background-colour: var(background);
|
||||
foreground-colour: var(foreground);
|
||||
alternate-background: var(background-alt);
|
||||
normal-background: var(background);
|
||||
normal-foreground: var(foreground);
|
||||
urgent-background: var(urgent);
|
||||
urgent-foreground: var(background);
|
||||
active-background: var(active);
|
||||
active-foreground: var(background);
|
||||
selected-normal-background: var(selected);
|
||||
selected-normal-foreground: var(background);
|
||||
selected-urgent-background: var(active);
|
||||
selected-urgent-foreground: var(background);
|
||||
selected-active-background: var(urgent);
|
||||
selected-active-foreground: var(background);
|
||||
alternate-normal-background: var(background);
|
||||
alternate-normal-foreground: var(foreground);
|
||||
alternate-urgent-background: var(urgent);
|
||||
alternate-urgent-foreground: var(background);
|
||||
alternate-active-background: var(active);
|
||||
alternate-active-foreground: var(background);
|
||||
}
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
/* properties for window widget */
|
||||
transparency: "real";
|
||||
location: southeast;
|
||||
anchor: southeast;
|
||||
fullscreen: false;
|
||||
width: 250px;
|
||||
x-offset: -20px;
|
||||
y-offset: -58px;
|
||||
|
||||
/* properties for all widgets */
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
cursor: "default";
|
||||
/* Backgroud Colors */
|
||||
background-color: @background-colour;
|
||||
/* Backgroud Image */
|
||||
//background-image: url("/path/to/image.png", none);
|
||||
/* Simple Linear Gradient */
|
||||
//background-image: linear-gradient(red, orange, pink, purple);
|
||||
/* Directional Linear Gradient */
|
||||
//background-image: linear-gradient(to bottom, pink, yellow, magenta);
|
||||
/* Angle Linear Gradient */
|
||||
//background-image: linear-gradient(45, cyan, purple, indigo);
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 30px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
children: [ "message", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
children: [ "textbox-prompt-colon", "prompt" ];
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
entry {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
cursor: text;
|
||||
placeholder: "";
|
||||
placeholder-color: inherit;
|
||||
}
|
||||
num-filtered-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-num-sep {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "/";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
num-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
case-indicator {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 2;
|
||||
lines: 1;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
fixed-height: true;
|
||||
fixed-columns: true;
|
||||
|
||||
spacing: 5px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: "default";
|
||||
}
|
||||
scrollbar {
|
||||
handle-width: 5px ;
|
||||
handle-color: @handle-colour;
|
||||
border-radius: 0px;
|
||||
background-color: @alternate-background;
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 0px;
|
||||
margin: 0px;
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: pointer;
|
||||
}
|
||||
element normal.normal {
|
||||
background-color: var(normal-background);
|
||||
text-color: var(normal-foreground);
|
||||
}
|
||||
element normal.urgent {
|
||||
background-color: var(urgent-background);
|
||||
text-color: var(urgent-foreground);
|
||||
}
|
||||
element normal.active {
|
||||
background-color: var(active-background);
|
||||
text-color: var(active-foreground);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected);
|
||||
text-color: var(normal-background);
|
||||
}
|
||||
element selected.urgent {
|
||||
background-color: var(selected-urgent-background);
|
||||
text-color: var(selected-urgent-foreground);
|
||||
}
|
||||
element selected.active {
|
||||
background-color: var(selected-active-background);
|
||||
text-color: var(selected-active-foreground);
|
||||
}
|
||||
element alternate.normal {
|
||||
background-color: var(alternate-normal-background);
|
||||
text-color: var(alternate-normal-foreground);
|
||||
}
|
||||
element alternate.urgent {
|
||||
background-color: var(alternate-urgent-background);
|
||||
text-color: var(alternate-urgent-foreground);
|
||||
}
|
||||
element alternate.active {
|
||||
background-color: var(alternate-active-background);
|
||||
text-color: var(alternate-active-foreground);
|
||||
}
|
||||
element-icon {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
size: 24px;
|
||||
cursor: inherit;
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
highlight: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.5;
|
||||
}
|
||||
|
||||
/*****----- Mode Switcher -----*****/
|
||||
mode-switcher{
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
button {
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: inherit;
|
||||
cursor: pointer;
|
||||
}
|
||||
button selected {
|
||||
background-color: var(selected-normal-background);
|
||||
text-color: var(selected-normal-foreground);
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
textbox {
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: @foreground-colour;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.5;
|
||||
highlight: none;
|
||||
placeholder-color: @foreground-colour;
|
||||
blink: true;
|
||||
markup: true;
|
||||
}
|
||||
error-message {
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @background-colour;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
302
config/i3/themes/beach/rofi/launcher.rasi
Normal file
302
config/i3/themes/beach/rofi/launcher.rasi
Normal file
@ -0,0 +1,302 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
modi: "drun,run,filebrowser,window";
|
||||
show-icons: true;
|
||||
display-drun: "";
|
||||
display-run: "";
|
||||
display-filebrowser: "";
|
||||
display-window: "";
|
||||
drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
|
||||
window-format: "{c} · {t}";
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
* {
|
||||
border-colour: var(selected);
|
||||
handle-colour: var(selected);
|
||||
background-colour: var(background);
|
||||
foreground-colour: var(foreground);
|
||||
alternate-background: var(background-alt);
|
||||
normal-background: var(background);
|
||||
normal-foreground: var(foreground);
|
||||
urgent-background: var(urgent);
|
||||
urgent-foreground: var(background);
|
||||
active-background: var(active);
|
||||
active-foreground: var(background);
|
||||
selected-normal-background: var(selected);
|
||||
selected-normal-foreground: var(background);
|
||||
selected-urgent-background: var(active);
|
||||
selected-urgent-foreground: var(background);
|
||||
selected-active-background: var(urgent);
|
||||
selected-active-foreground: var(background);
|
||||
alternate-normal-background: var(background);
|
||||
alternate-normal-foreground: var(foreground);
|
||||
alternate-urgent-background: var(urgent);
|
||||
alternate-urgent-foreground: var(background);
|
||||
alternate-active-background: var(active);
|
||||
alternate-active-foreground: var(background);
|
||||
}
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
/* properties for window widget */
|
||||
transparency: "real";
|
||||
location: southwest;
|
||||
anchor: southwest;
|
||||
fullscreen: false;
|
||||
width: 500px;
|
||||
x-offset: 20px;
|
||||
y-offset: -58px;
|
||||
|
||||
/* properties for all widgets */
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
cursor: "default";
|
||||
/* Backgroud Colors */
|
||||
background-color: @background-colour;
|
||||
/* Backgroud Image */
|
||||
//background-image: url("/path/to/image.png", none);
|
||||
/* Simple Linear Gradient */
|
||||
//background-image: linear-gradient(red, orange, pink, purple);
|
||||
/* Directional Linear Gradient */
|
||||
//background-image: linear-gradient(to bottom, pink, yellow, magenta);
|
||||
/* Angle Linear Gradient */
|
||||
//background-image: linear-gradient(45, cyan, purple, indigo);
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 40px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar", "message", "listview", "mode-switcher" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
children: [ "prompt", "entry" ];
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "::";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
entry {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
cursor: text;
|
||||
placeholder: "search...";
|
||||
placeholder-color: inherit;
|
||||
}
|
||||
num-filtered-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-num-sep {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "/";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
num-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
case-indicator {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 1;
|
||||
lines: 8;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: true;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
fixed-height: true;
|
||||
fixed-columns: true;
|
||||
|
||||
spacing: 5px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: "default";
|
||||
}
|
||||
scrollbar {
|
||||
handle-width: 5px ;
|
||||
handle-color: @handle-colour;
|
||||
border-radius: 0px;
|
||||
background-color: @alternate-background;
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 8px;
|
||||
margin: 0px;
|
||||
padding: 6px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: pointer;
|
||||
}
|
||||
element normal.normal {
|
||||
background-color: var(normal-background);
|
||||
text-color: var(normal-foreground);
|
||||
}
|
||||
element normal.urgent {
|
||||
background-color: var(urgent-background);
|
||||
text-color: var(urgent-foreground);
|
||||
}
|
||||
element normal.active {
|
||||
background-color: var(active-background);
|
||||
text-color: var(active-foreground);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected);
|
||||
text-color: var(normal-background);
|
||||
}
|
||||
element selected.urgent {
|
||||
background-color: var(selected-urgent-background);
|
||||
text-color: var(selected-urgent-foreground);
|
||||
}
|
||||
element selected.active {
|
||||
background-color: var(selected-active-background);
|
||||
text-color: var(selected-active-foreground);
|
||||
}
|
||||
element alternate.normal {
|
||||
background-color: var(alternate-normal-background);
|
||||
text-color: var(alternate-normal-foreground);
|
||||
}
|
||||
element alternate.urgent {
|
||||
background-color: var(alternate-urgent-background);
|
||||
text-color: var(alternate-urgent-foreground);
|
||||
}
|
||||
element alternate.active {
|
||||
background-color: var(alternate-active-background);
|
||||
text-color: var(alternate-active-foreground);
|
||||
}
|
||||
element-icon {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
size: 24px;
|
||||
cursor: inherit;
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
highlight: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
/*****----- Mode Switcher -----*****/
|
||||
mode-switcher{
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
button {
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: inherit;
|
||||
cursor: pointer;
|
||||
}
|
||||
button selected {
|
||||
background-color: var(selected-normal-background);
|
||||
text-color: var(selected-normal-foreground);
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
textbox {
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: @foreground-colour;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
highlight: none;
|
||||
placeholder-color: @foreground-colour;
|
||||
blink: true;
|
||||
markup: true;
|
||||
}
|
||||
error-message {
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @background-colour;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
306
config/i3/themes/beach/rofi/music.rasi
Normal file
306
config/i3/themes/beach/rofi/music.rasi
Normal file
@ -0,0 +1,306 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
modi: "run";
|
||||
show-icons: false;
|
||||
display-drun: "";
|
||||
display-run: "";
|
||||
display-filebrowser: "";
|
||||
display-window: "";
|
||||
drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
|
||||
window-format: "{w} · {c} · {t}";
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
/*
|
||||
USE_ICON=NO
|
||||
*/
|
||||
|
||||
* {
|
||||
border-colour: var(selected);
|
||||
handle-colour: var(selected);
|
||||
background-colour: var(background);
|
||||
foreground-colour: var(foreground);
|
||||
alternate-background: var(background-alt);
|
||||
normal-background: var(background);
|
||||
normal-foreground: var(foreground);
|
||||
urgent-background: var(urgent);
|
||||
urgent-foreground: var(background);
|
||||
active-background: var(active);
|
||||
active-foreground: var(background);
|
||||
selected-normal-background: var(selected);
|
||||
selected-normal-foreground: var(background);
|
||||
selected-urgent-background: var(active);
|
||||
selected-urgent-foreground: var(background);
|
||||
selected-active-background: var(urgent);
|
||||
selected-active-foreground: var(background);
|
||||
alternate-normal-background: var(background);
|
||||
alternate-normal-foreground: var(foreground);
|
||||
alternate-urgent-background: var(urgent);
|
||||
alternate-urgent-foreground: var(background);
|
||||
alternate-active-background: var(active);
|
||||
alternate-active-foreground: var(background);
|
||||
}
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
/* properties for window widget */
|
||||
transparency: "real";
|
||||
location: south;
|
||||
anchor: south;
|
||||
fullscreen: false;
|
||||
width: 350px;
|
||||
x-offset: 0px;
|
||||
y-offset: -58px;
|
||||
|
||||
/* properties for all widgets */
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
cursor: "default";
|
||||
/* Backgroud Colors */
|
||||
background-color: @background-colour;
|
||||
/* Backgroud Image */
|
||||
//background-image: url("/path/to/image.png", none);
|
||||
/* Simple Linear Gradient */
|
||||
//background-image: linear-gradient(red, orange, pink, purple);
|
||||
/* Directional Linear Gradient */
|
||||
//background-image: linear-gradient(to bottom, pink, yellow, magenta);
|
||||
/* Angle Linear Gradient */
|
||||
//background-image: linear-gradient(45, cyan, purple, indigo);
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 30px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar", "message", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
children: [ "textbox-prompt-colon", "prompt" ];
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
entry {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
cursor: text;
|
||||
placeholder: "";
|
||||
placeholder-color: inherit;
|
||||
}
|
||||
num-filtered-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-num-sep {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "/";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
num-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
case-indicator {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 1;
|
||||
lines: 6;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
fixed-height: true;
|
||||
fixed-columns: true;
|
||||
|
||||
spacing: 5px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: "default";
|
||||
}
|
||||
scrollbar {
|
||||
handle-width: 5px ;
|
||||
handle-color: @handle-colour;
|
||||
border-radius: 0px;
|
||||
background-color: @alternate-background;
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 0px;
|
||||
margin: 0px;
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: pointer;
|
||||
}
|
||||
element normal.normal {
|
||||
background-color: var(normal-background);
|
||||
text-color: var(normal-foreground);
|
||||
}
|
||||
element normal.urgent {
|
||||
background-color: var(urgent-background);
|
||||
text-color: var(urgent-foreground);
|
||||
}
|
||||
element normal.active {
|
||||
background-color: var(active-background);
|
||||
text-color: var(active-foreground);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected);
|
||||
text-color: var(normal-background);
|
||||
}
|
||||
element selected.urgent {
|
||||
background-color: var(selected-urgent-background);
|
||||
text-color: var(selected-urgent-foreground);
|
||||
}
|
||||
element selected.active {
|
||||
background-color: var(selected-active-background);
|
||||
text-color: var(selected-active-foreground);
|
||||
}
|
||||
element alternate.normal {
|
||||
background-color: var(alternate-normal-background);
|
||||
text-color: var(alternate-normal-foreground);
|
||||
}
|
||||
element alternate.urgent {
|
||||
background-color: var(alternate-urgent-background);
|
||||
text-color: var(alternate-urgent-foreground);
|
||||
}
|
||||
element alternate.active {
|
||||
background-color: var(alternate-active-background);
|
||||
text-color: var(alternate-active-foreground);
|
||||
}
|
||||
element-icon {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
size: 24px;
|
||||
cursor: inherit;
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
highlight: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
/*****----- Mode Switcher -----*****/
|
||||
mode-switcher{
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
button {
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: inherit;
|
||||
cursor: pointer;
|
||||
}
|
||||
button selected {
|
||||
background-color: var(selected-normal-background);
|
||||
text-color: var(selected-normal-foreground);
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
textbox {
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: @foreground-colour;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
highlight: none;
|
||||
placeholder-color: @foreground-colour;
|
||||
blink: true;
|
||||
markup: true;
|
||||
}
|
||||
error-message {
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @background-colour;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
303
config/i3/themes/beach/rofi/networkmenu.rasi
Normal file
303
config/i3/themes/beach/rofi/networkmenu.rasi
Normal file
@ -0,0 +1,303 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
modi: "run";
|
||||
show-icons: false;
|
||||
display-drun: "";
|
||||
display-run: "";
|
||||
display-filebrowser: "";
|
||||
display-window: "";
|
||||
drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
|
||||
window-format: "{w} · {c} · {t}";
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
* {
|
||||
border-colour: var(selected);
|
||||
handle-colour: var(selected);
|
||||
background-colour: var(background);
|
||||
foreground-colour: var(foreground);
|
||||
alternate-background: var(background-alt);
|
||||
normal-background: var(background);
|
||||
normal-foreground: var(foreground);
|
||||
urgent-background: var(urgent);
|
||||
urgent-foreground: var(background);
|
||||
active-background: var(active);
|
||||
active-foreground: var(background);
|
||||
selected-normal-background: var(selected);
|
||||
selected-normal-foreground: var(background);
|
||||
selected-urgent-background: var(active);
|
||||
selected-urgent-foreground: var(background);
|
||||
selected-active-background: var(urgent);
|
||||
selected-active-foreground: var(background);
|
||||
alternate-normal-background: var(background);
|
||||
alternate-normal-foreground: var(foreground);
|
||||
alternate-urgent-background: var(urgent);
|
||||
alternate-urgent-foreground: var(background);
|
||||
alternate-active-background: var(active);
|
||||
alternate-active-foreground: var(background);
|
||||
}
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
/* properties for window widget */
|
||||
transparency: "real";
|
||||
location: southeast;
|
||||
anchor: southeast;
|
||||
fullscreen: false;
|
||||
width: 450px;
|
||||
height: 400px;
|
||||
x-offset: -20px;
|
||||
y-offset: -58px;
|
||||
|
||||
/* properties for all widgets */
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
cursor: "default";
|
||||
/* Backgroud Colors */
|
||||
background-color: @background-colour;
|
||||
/* Backgroud Image */
|
||||
//background-image: url("/path/to/image.png", none);
|
||||
/* Simple Linear Gradient */
|
||||
//background-image: linear-gradient(red, orange, pink, purple);
|
||||
/* Directional Linear Gradient */
|
||||
//background-image: linear-gradient(to bottom, pink, yellow, magenta);
|
||||
/* Angle Linear Gradient */
|
||||
//background-image: linear-gradient(45, cyan, purple, indigo);
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 30px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar", "message", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
children: [ "textbox-prompt-colon", "prompt", "entry" ];
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "直";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
entry {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
cursor: text;
|
||||
placeholder: "";
|
||||
placeholder-color: inherit;
|
||||
}
|
||||
num-filtered-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-num-sep {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "/";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
num-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
case-indicator {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 1;
|
||||
lines: 6;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: true;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
fixed-height: true;
|
||||
fixed-columns: true;
|
||||
|
||||
spacing: 5px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: "default";
|
||||
}
|
||||
scrollbar {
|
||||
handle-width: 5px ;
|
||||
handle-color: @handle-colour;
|
||||
border-radius: 0px;
|
||||
background-color: @alternate-background;
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 0px;
|
||||
margin: 0px;
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: pointer;
|
||||
}
|
||||
element normal.normal {
|
||||
background-color: var(normal-background);
|
||||
text-color: var(normal-foreground);
|
||||
}
|
||||
element normal.urgent {
|
||||
background-color: var(urgent-background);
|
||||
text-color: var(urgent-foreground);
|
||||
}
|
||||
element normal.active {
|
||||
background-color: var(active-background);
|
||||
text-color: var(active-foreground);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected);
|
||||
text-color: var(normal-background);
|
||||
}
|
||||
element selected.urgent {
|
||||
background-color: var(selected-urgent-background);
|
||||
text-color: var(selected-urgent-foreground);
|
||||
}
|
||||
element selected.active {
|
||||
background-color: var(selected-active-background);
|
||||
text-color: var(selected-active-foreground);
|
||||
}
|
||||
element alternate.normal {
|
||||
background-color: var(alternate-normal-background);
|
||||
text-color: var(alternate-normal-foreground);
|
||||
}
|
||||
element alternate.urgent {
|
||||
background-color: var(alternate-urgent-background);
|
||||
text-color: var(alternate-urgent-foreground);
|
||||
}
|
||||
element alternate.active {
|
||||
background-color: var(alternate-active-background);
|
||||
text-color: var(alternate-active-foreground);
|
||||
}
|
||||
element-icon {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
size: 24px;
|
||||
cursor: inherit;
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
highlight: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
/*****----- Mode Switcher -----*****/
|
||||
mode-switcher{
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
button {
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: inherit;
|
||||
cursor: pointer;
|
||||
}
|
||||
button selected {
|
||||
background-color: var(selected-normal-background);
|
||||
text-color: var(selected-normal-foreground);
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
textbox {
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: @foreground-colour;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
highlight: none;
|
||||
placeholder-color: @foreground-colour;
|
||||
blink: true;
|
||||
markup: true;
|
||||
}
|
||||
error-message {
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @background-colour;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
306
config/i3/themes/beach/rofi/powermenu.rasi
Normal file
306
config/i3/themes/beach/rofi/powermenu.rasi
Normal file
@ -0,0 +1,306 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
modi: "run";
|
||||
show-icons: false;
|
||||
display-drun: "";
|
||||
display-run: "";
|
||||
display-filebrowser: "";
|
||||
display-window: "";
|
||||
drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
|
||||
window-format: "{w} · {c} · {t}";
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
/*
|
||||
USE_ICON=NO
|
||||
*/
|
||||
|
||||
* {
|
||||
border-colour: var(selected);
|
||||
handle-colour: var(selected);
|
||||
background-colour: var(background);
|
||||
foreground-colour: var(foreground);
|
||||
alternate-background: var(background-alt);
|
||||
normal-background: var(background);
|
||||
normal-foreground: var(foreground);
|
||||
urgent-background: var(urgent);
|
||||
urgent-foreground: var(background);
|
||||
active-background: var(active);
|
||||
active-foreground: var(background);
|
||||
selected-normal-background: var(selected);
|
||||
selected-normal-foreground: var(background);
|
||||
selected-urgent-background: var(active);
|
||||
selected-urgent-foreground: var(background);
|
||||
selected-active-background: var(urgent);
|
||||
selected-active-foreground: var(background);
|
||||
alternate-normal-background: var(background);
|
||||
alternate-normal-foreground: var(foreground);
|
||||
alternate-urgent-background: var(urgent);
|
||||
alternate-urgent-foreground: var(background);
|
||||
alternate-active-background: var(active);
|
||||
alternate-active-foreground: var(background);
|
||||
}
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
/* properties for window widget */
|
||||
transparency: "real";
|
||||
location: southeast;
|
||||
anchor: southeast;
|
||||
fullscreen: false;
|
||||
width: 350px;
|
||||
x-offset: -20px;
|
||||
y-offset: -58px;
|
||||
|
||||
/* properties for all widgets */
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
cursor: "default";
|
||||
/* Backgroud Colors */
|
||||
background-color: @background-colour;
|
||||
/* Backgroud Image */
|
||||
//background-image: url("/path/to/image.png", none);
|
||||
/* Simple Linear Gradient */
|
||||
//background-image: linear-gradient(red, orange, pink, purple);
|
||||
/* Directional Linear Gradient */
|
||||
//background-image: linear-gradient(to bottom, pink, yellow, magenta);
|
||||
/* Angle Linear Gradient */
|
||||
//background-image: linear-gradient(45, cyan, purple, indigo);
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 30px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar", "message", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
children: [ "textbox-prompt-colon", "prompt" ];
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
entry {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
cursor: text;
|
||||
placeholder: "";
|
||||
placeholder-color: inherit;
|
||||
}
|
||||
num-filtered-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-num-sep {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "/";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
num-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
case-indicator {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 1;
|
||||
lines: 6;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
fixed-height: true;
|
||||
fixed-columns: true;
|
||||
|
||||
spacing: 5px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: "default";
|
||||
}
|
||||
scrollbar {
|
||||
handle-width: 5px ;
|
||||
handle-color: @handle-colour;
|
||||
border-radius: 0px;
|
||||
background-color: @alternate-background;
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 0px;
|
||||
margin: 0px;
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: pointer;
|
||||
}
|
||||
element normal.normal {
|
||||
background-color: var(normal-background);
|
||||
text-color: var(normal-foreground);
|
||||
}
|
||||
element normal.urgent {
|
||||
background-color: var(urgent-background);
|
||||
text-color: var(urgent-foreground);
|
||||
}
|
||||
element normal.active {
|
||||
background-color: var(active-background);
|
||||
text-color: var(active-foreground);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected);
|
||||
text-color: var(normal-background);
|
||||
}
|
||||
element selected.urgent {
|
||||
background-color: var(selected-urgent-background);
|
||||
text-color: var(selected-urgent-foreground);
|
||||
}
|
||||
element selected.active {
|
||||
background-color: var(selected-active-background);
|
||||
text-color: var(selected-active-foreground);
|
||||
}
|
||||
element alternate.normal {
|
||||
background-color: var(alternate-normal-background);
|
||||
text-color: var(alternate-normal-foreground);
|
||||
}
|
||||
element alternate.urgent {
|
||||
background-color: var(alternate-urgent-background);
|
||||
text-color: var(alternate-urgent-foreground);
|
||||
}
|
||||
element alternate.active {
|
||||
background-color: var(alternate-active-background);
|
||||
text-color: var(alternate-active-foreground);
|
||||
}
|
||||
element-icon {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
size: 24px;
|
||||
cursor: inherit;
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
highlight: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
/*****----- Mode Switcher -----*****/
|
||||
mode-switcher{
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
button {
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: inherit;
|
||||
cursor: pointer;
|
||||
}
|
||||
button selected {
|
||||
background-color: var(selected-normal-background);
|
||||
text-color: var(selected-normal-foreground);
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
textbox {
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: @foreground-colour;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
highlight: none;
|
||||
placeholder-color: @foreground-colour;
|
||||
blink: true;
|
||||
markup: true;
|
||||
}
|
||||
error-message {
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @background-colour;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
302
config/i3/themes/beach/rofi/runner.rasi
Normal file
302
config/i3/themes/beach/rofi/runner.rasi
Normal file
@ -0,0 +1,302 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
modi: "run";
|
||||
show-icons: true;
|
||||
display-drun: "";
|
||||
display-run: "";
|
||||
display-filebrowser: "";
|
||||
display-window: "";
|
||||
drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
|
||||
window-format: "{w} · {c} · {t}";
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
* {
|
||||
border-colour: var(selected);
|
||||
handle-colour: var(selected);
|
||||
background-colour: var(background);
|
||||
foreground-colour: var(foreground);
|
||||
alternate-background: var(background-alt);
|
||||
normal-background: var(background);
|
||||
normal-foreground: var(foreground);
|
||||
urgent-background: var(urgent);
|
||||
urgent-foreground: var(background);
|
||||
active-background: var(active);
|
||||
active-foreground: var(background);
|
||||
selected-normal-background: var(selected);
|
||||
selected-normal-foreground: var(background);
|
||||
selected-urgent-background: var(active);
|
||||
selected-urgent-foreground: var(background);
|
||||
selected-active-background: var(urgent);
|
||||
selected-active-foreground: var(background);
|
||||
alternate-normal-background: var(background);
|
||||
alternate-normal-foreground: var(foreground);
|
||||
alternate-urgent-background: var(urgent);
|
||||
alternate-urgent-foreground: var(background);
|
||||
alternate-active-background: var(active);
|
||||
alternate-active-foreground: var(background);
|
||||
}
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
/* properties for window widget */
|
||||
transparency: "real";
|
||||
location: southwest;
|
||||
anchor: southwest;
|
||||
fullscreen: false;
|
||||
width: 400px;
|
||||
x-offset: 20px;
|
||||
y-offset: -58px;
|
||||
|
||||
/* properties for all widgets */
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
cursor: "default";
|
||||
/* Backgroud Colors */
|
||||
background-color: @background-colour;
|
||||
/* Backgroud Image */
|
||||
//background-image: url("/path/to/image.png", none);
|
||||
/* Simple Linear Gradient */
|
||||
//background-image: linear-gradient(red, orange, pink, purple);
|
||||
/* Directional Linear Gradient */
|
||||
//background-image: linear-gradient(to bottom, pink, yellow, magenta);
|
||||
/* Angle Linear Gradient */
|
||||
//background-image: linear-gradient(45, cyan, purple, indigo);
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 30px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar", "message", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
children: [ "prompt", "entry" ];
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "::";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
entry {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
cursor: text;
|
||||
placeholder: "search...";
|
||||
placeholder-color: inherit;
|
||||
}
|
||||
num-filtered-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-num-sep {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "/";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
num-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
case-indicator {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 1;
|
||||
lines: 6;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
fixed-height: true;
|
||||
fixed-columns: true;
|
||||
|
||||
spacing: 5px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: "default";
|
||||
}
|
||||
scrollbar {
|
||||
handle-width: 5px ;
|
||||
handle-color: @handle-colour;
|
||||
border-radius: 0px;
|
||||
background-color: @alternate-background;
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 8px;
|
||||
margin: 0px;
|
||||
padding: 6px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: pointer;
|
||||
}
|
||||
element normal.normal {
|
||||
background-color: var(normal-background);
|
||||
text-color: var(normal-foreground);
|
||||
}
|
||||
element normal.urgent {
|
||||
background-color: var(urgent-background);
|
||||
text-color: var(urgent-foreground);
|
||||
}
|
||||
element normal.active {
|
||||
background-color: var(active-background);
|
||||
text-color: var(active-foreground);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected);
|
||||
text-color: var(normal-background);
|
||||
}
|
||||
element selected.urgent {
|
||||
background-color: var(selected-urgent-background);
|
||||
text-color: var(selected-urgent-foreground);
|
||||
}
|
||||
element selected.active {
|
||||
background-color: var(selected-active-background);
|
||||
text-color: var(selected-active-foreground);
|
||||
}
|
||||
element alternate.normal {
|
||||
background-color: var(alternate-normal-background);
|
||||
text-color: var(alternate-normal-foreground);
|
||||
}
|
||||
element alternate.urgent {
|
||||
background-color: var(alternate-urgent-background);
|
||||
text-color: var(alternate-urgent-foreground);
|
||||
}
|
||||
element alternate.active {
|
||||
background-color: var(alternate-active-background);
|
||||
text-color: var(alternate-active-foreground);
|
||||
}
|
||||
element-icon {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
size: 24px;
|
||||
cursor: inherit;
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
highlight: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
/*****----- Mode Switcher -----*****/
|
||||
mode-switcher{
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
button {
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: inherit;
|
||||
cursor: pointer;
|
||||
}
|
||||
button selected {
|
||||
background-color: var(selected-normal-background);
|
||||
text-color: var(selected-normal-foreground);
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
textbox {
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: @foreground-colour;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
highlight: none;
|
||||
placeholder-color: @foreground-colour;
|
||||
blink: true;
|
||||
markup: true;
|
||||
}
|
||||
error-message {
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @background-colour;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
306
config/i3/themes/beach/rofi/screenshot.rasi
Normal file
306
config/i3/themes/beach/rofi/screenshot.rasi
Normal file
@ -0,0 +1,306 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
modi: "run";
|
||||
show-icons: false;
|
||||
display-drun: "";
|
||||
display-run: "";
|
||||
display-filebrowser: "";
|
||||
display-window: "";
|
||||
drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
|
||||
window-format: "{w} · {c} · {t}";
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
/*
|
||||
USE_ICON=NO
|
||||
*/
|
||||
|
||||
* {
|
||||
border-colour: var(selected);
|
||||
handle-colour: var(selected);
|
||||
background-colour: var(background);
|
||||
foreground-colour: var(foreground);
|
||||
alternate-background: var(background-alt);
|
||||
normal-background: var(background);
|
||||
normal-foreground: var(foreground);
|
||||
urgent-background: var(urgent);
|
||||
urgent-foreground: var(background);
|
||||
active-background: var(active);
|
||||
active-foreground: var(background);
|
||||
selected-normal-background: var(selected);
|
||||
selected-normal-foreground: var(background);
|
||||
selected-urgent-background: var(active);
|
||||
selected-urgent-foreground: var(background);
|
||||
selected-active-background: var(urgent);
|
||||
selected-active-foreground: var(background);
|
||||
alternate-normal-background: var(background);
|
||||
alternate-normal-foreground: var(foreground);
|
||||
alternate-urgent-background: var(urgent);
|
||||
alternate-urgent-foreground: var(background);
|
||||
alternate-active-background: var(active);
|
||||
alternate-active-foreground: var(background);
|
||||
}
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
/* properties for window widget */
|
||||
transparency: "real";
|
||||
location: southeast;
|
||||
anchor: southeast;
|
||||
fullscreen: false;
|
||||
width: 410px;
|
||||
x-offset: -20px;
|
||||
y-offset: -58px;
|
||||
|
||||
/* properties for all widgets */
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
cursor: "default";
|
||||
/* Backgroud Colors */
|
||||
background-color: @background-colour;
|
||||
/* Backgroud Image */
|
||||
//background-image: url("/path/to/image.png", none);
|
||||
/* Simple Linear Gradient */
|
||||
//background-image: linear-gradient(red, orange, pink, purple);
|
||||
/* Directional Linear Gradient */
|
||||
//background-image: linear-gradient(to bottom, pink, yellow, magenta);
|
||||
/* Angle Linear Gradient */
|
||||
//background-image: linear-gradient(45, cyan, purple, indigo);
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 30px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar", "message", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
children: [ "textbox-prompt-colon", "prompt" ];
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
entry {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
cursor: text;
|
||||
placeholder: "";
|
||||
placeholder-color: inherit;
|
||||
}
|
||||
num-filtered-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-num-sep {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "/";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
num-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
case-indicator {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 1;
|
||||
lines: 5;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
fixed-height: true;
|
||||
fixed-columns: true;
|
||||
|
||||
spacing: 5px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: "default";
|
||||
}
|
||||
scrollbar {
|
||||
handle-width: 5px ;
|
||||
handle-color: @handle-colour;
|
||||
border-radius: 0px;
|
||||
background-color: @alternate-background;
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 0px;
|
||||
margin: 0px;
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: pointer;
|
||||
}
|
||||
element normal.normal {
|
||||
background-color: var(normal-background);
|
||||
text-color: var(normal-foreground);
|
||||
}
|
||||
element normal.urgent {
|
||||
background-color: var(urgent-background);
|
||||
text-color: var(urgent-foreground);
|
||||
}
|
||||
element normal.active {
|
||||
background-color: var(active-background);
|
||||
text-color: var(active-foreground);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected);
|
||||
text-color: var(normal-background);
|
||||
}
|
||||
element selected.urgent {
|
||||
background-color: var(selected-urgent-background);
|
||||
text-color: var(selected-urgent-foreground);
|
||||
}
|
||||
element selected.active {
|
||||
background-color: var(selected-active-background);
|
||||
text-color: var(selected-active-foreground);
|
||||
}
|
||||
element alternate.normal {
|
||||
background-color: var(alternate-normal-background);
|
||||
text-color: var(alternate-normal-foreground);
|
||||
}
|
||||
element alternate.urgent {
|
||||
background-color: var(alternate-urgent-background);
|
||||
text-color: var(alternate-urgent-foreground);
|
||||
}
|
||||
element alternate.active {
|
||||
background-color: var(alternate-active-background);
|
||||
text-color: var(alternate-active-foreground);
|
||||
}
|
||||
element-icon {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
size: 24px;
|
||||
cursor: inherit;
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
highlight: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
/*****----- Mode Switcher -----*****/
|
||||
mode-switcher{
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
button {
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: inherit;
|
||||
cursor: pointer;
|
||||
}
|
||||
button selected {
|
||||
background-color: var(selected-normal-background);
|
||||
text-color: var(selected-normal-foreground);
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
textbox {
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: @foreground-colour;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
highlight: none;
|
||||
placeholder-color: @foreground-colour;
|
||||
blink: true;
|
||||
markup: true;
|
||||
}
|
||||
error-message {
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @background-colour;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
8
config/i3/themes/beach/rofi/shared/colors.rasi
Normal file
8
config/i3/themes/beach/rofi/shared/colors.rasi
Normal file
@ -0,0 +1,8 @@
|
||||
* {
|
||||
background: #141c21;
|
||||
background-alt: #1a242b;
|
||||
foreground: #93a1a1;
|
||||
selected: #5294E2;
|
||||
active: #819400;
|
||||
urgent: #d12f2c;
|
||||
}
|
||||
7
config/i3/themes/beach/rofi/shared/fonts.rasi
Normal file
7
config/i3/themes/beach/rofi/shared/fonts.rasi
Normal file
@ -0,0 +1,7 @@
|
||||
/* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com> */
|
||||
|
||||
/* Text Font */
|
||||
|
||||
* {
|
||||
font: "Iosevka 10";
|
||||
}
|
||||
306
config/i3/themes/beach/rofi/themes.rasi
Normal file
306
config/i3/themes/beach/rofi/themes.rasi
Normal file
@ -0,0 +1,306 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
modi: "run";
|
||||
show-icons: false;
|
||||
display-drun: "";
|
||||
display-run: "";
|
||||
display-filebrowser: "";
|
||||
display-window: "";
|
||||
drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
|
||||
window-format: "{w} · {c} · {t}";
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
/*
|
||||
USE_ICON=NO
|
||||
*/
|
||||
|
||||
* {
|
||||
border-colour: var(selected);
|
||||
handle-colour: var(selected);
|
||||
background-colour: var(background);
|
||||
foreground-colour: var(foreground);
|
||||
alternate-background: var(background-alt);
|
||||
normal-background: var(background);
|
||||
normal-foreground: var(foreground);
|
||||
urgent-background: var(urgent);
|
||||
urgent-foreground: var(background);
|
||||
active-background: var(active);
|
||||
active-foreground: var(background);
|
||||
selected-normal-background: var(selected);
|
||||
selected-normal-foreground: var(background);
|
||||
selected-urgent-background: var(active);
|
||||
selected-urgent-foreground: var(background);
|
||||
selected-active-background: var(urgent);
|
||||
selected-active-foreground: var(background);
|
||||
alternate-normal-background: var(background);
|
||||
alternate-normal-foreground: var(foreground);
|
||||
alternate-urgent-background: var(urgent);
|
||||
alternate-urgent-foreground: var(background);
|
||||
alternate-active-background: var(active);
|
||||
alternate-active-foreground: var(background);
|
||||
}
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
/* properties for window widget */
|
||||
transparency: "real";
|
||||
location: south;
|
||||
anchor: south;
|
||||
fullscreen: false;
|
||||
width: 350px;
|
||||
x-offset: 0px;
|
||||
y-offset: -58px;
|
||||
|
||||
/* properties for all widgets */
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
cursor: "default";
|
||||
/* Backgroud Colors */
|
||||
background-color: @background-colour;
|
||||
/* Backgroud Image */
|
||||
//background-image: url("/path/to/image.png", none);
|
||||
/* Simple Linear Gradient */
|
||||
//background-image: linear-gradient(red, orange, pink, purple);
|
||||
/* Directional Linear Gradient */
|
||||
//background-image: linear-gradient(to bottom, pink, yellow, magenta);
|
||||
/* Angle Linear Gradient */
|
||||
//background-image: linear-gradient(45, cyan, purple, indigo);
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 30px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar", "message", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
children: [ "textbox-prompt-colon", "prompt" ];
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
entry {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
cursor: text;
|
||||
placeholder: "";
|
||||
placeholder-color: inherit;
|
||||
}
|
||||
num-filtered-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-num-sep {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "/";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
num-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
case-indicator {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 1;
|
||||
lines: 6;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
fixed-height: true;
|
||||
fixed-columns: true;
|
||||
|
||||
spacing: 5px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: "default";
|
||||
}
|
||||
scrollbar {
|
||||
handle-width: 5px ;
|
||||
handle-color: @handle-colour;
|
||||
border-radius: 0px;
|
||||
background-color: @alternate-background;
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 0px;
|
||||
margin: 0px;
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: pointer;
|
||||
}
|
||||
element normal.normal {
|
||||
background-color: var(normal-background);
|
||||
text-color: var(normal-foreground);
|
||||
}
|
||||
element normal.urgent {
|
||||
background-color: var(urgent-background);
|
||||
text-color: var(urgent-foreground);
|
||||
}
|
||||
element normal.active {
|
||||
background-color: var(active-background);
|
||||
text-color: var(active-foreground);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected);
|
||||
text-color: var(normal-background);
|
||||
}
|
||||
element selected.urgent {
|
||||
background-color: var(selected-urgent-background);
|
||||
text-color: var(selected-urgent-foreground);
|
||||
}
|
||||
element selected.active {
|
||||
background-color: var(selected-active-background);
|
||||
text-color: var(selected-active-foreground);
|
||||
}
|
||||
element alternate.normal {
|
||||
background-color: var(alternate-normal-background);
|
||||
text-color: var(alternate-normal-foreground);
|
||||
}
|
||||
element alternate.urgent {
|
||||
background-color: var(alternate-urgent-background);
|
||||
text-color: var(alternate-urgent-foreground);
|
||||
}
|
||||
element alternate.active {
|
||||
background-color: var(alternate-active-background);
|
||||
text-color: var(alternate-active-foreground);
|
||||
}
|
||||
element-icon {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
size: 24px;
|
||||
cursor: inherit;
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
highlight: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
/*****----- Mode Switcher -----*****/
|
||||
mode-switcher{
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
button {
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: inherit;
|
||||
cursor: pointer;
|
||||
}
|
||||
button selected {
|
||||
background-color: var(selected-normal-background);
|
||||
text-color: var(selected-normal-foreground);
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
textbox {
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: @foreground-colour;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
highlight: none;
|
||||
placeholder-color: @foreground-colour;
|
||||
blink: true;
|
||||
markup: true;
|
||||
}
|
||||
error-message {
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @background-colour;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
302
config/i3/themes/beach/rofi/windows.rasi
Normal file
302
config/i3/themes/beach/rofi/windows.rasi
Normal file
@ -0,0 +1,302 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
modi: "window";
|
||||
show-icons: true;
|
||||
display-drun: "";
|
||||
display-run: "";
|
||||
display-filebrowser: "";
|
||||
display-window: "";
|
||||
drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
|
||||
window-format: "{c} · {t}";
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
* {
|
||||
border-colour: var(selected);
|
||||
handle-colour: var(selected);
|
||||
background-colour: var(background);
|
||||
foreground-colour: var(foreground);
|
||||
alternate-background: var(background-alt);
|
||||
normal-background: var(background);
|
||||
normal-foreground: var(foreground);
|
||||
urgent-background: var(urgent);
|
||||
urgent-foreground: var(background);
|
||||
active-background: var(active);
|
||||
active-foreground: var(background);
|
||||
selected-normal-background: var(selected);
|
||||
selected-normal-foreground: var(background);
|
||||
selected-urgent-background: var(active);
|
||||
selected-urgent-foreground: var(background);
|
||||
selected-active-background: var(urgent);
|
||||
selected-active-foreground: var(background);
|
||||
alternate-normal-background: var(background);
|
||||
alternate-normal-foreground: var(foreground);
|
||||
alternate-urgent-background: var(urgent);
|
||||
alternate-urgent-foreground: var(background);
|
||||
alternate-active-background: var(active);
|
||||
alternate-active-foreground: var(background);
|
||||
}
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
/* properties for window widget */
|
||||
transparency: "real";
|
||||
location: southwest;
|
||||
anchor: southwest;
|
||||
fullscreen: false;
|
||||
width: 500px;
|
||||
x-offset: 20px;
|
||||
y-offset: -58px;
|
||||
|
||||
/* properties for all widgets */
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
cursor: "default";
|
||||
/* Backgroud Colors */
|
||||
background-color: @background-colour;
|
||||
/* Backgroud Image */
|
||||
//background-image: url("/path/to/image.png", none);
|
||||
/* Simple Linear Gradient */
|
||||
//background-image: linear-gradient(red, orange, pink, purple);
|
||||
/* Directional Linear Gradient */
|
||||
//background-image: linear-gradient(to bottom, pink, yellow, magenta);
|
||||
/* Angle Linear Gradient */
|
||||
//background-image: linear-gradient(45, cyan, purple, indigo);
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 30px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar", "message", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
children: [ "prompt", "entry" ];
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "::";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
entry {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
cursor: text;
|
||||
placeholder: "filter...";
|
||||
placeholder-color: inherit;
|
||||
}
|
||||
num-filtered-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-num-sep {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "/";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
num-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
case-indicator {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 1;
|
||||
lines: 6;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
fixed-height: true;
|
||||
fixed-columns: true;
|
||||
|
||||
spacing: 5px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: "default";
|
||||
}
|
||||
scrollbar {
|
||||
handle-width: 5px ;
|
||||
handle-color: @handle-colour;
|
||||
border-radius: 0px;
|
||||
background-color: @alternate-background;
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 8px;
|
||||
margin: 0px;
|
||||
padding: 6px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: pointer;
|
||||
}
|
||||
element normal.normal {
|
||||
background-color: var(normal-background);
|
||||
text-color: var(normal-foreground);
|
||||
}
|
||||
element normal.urgent {
|
||||
background-color: var(urgent-background);
|
||||
text-color: var(urgent-foreground);
|
||||
}
|
||||
element normal.active {
|
||||
background-color: var(active-background);
|
||||
text-color: var(active-foreground);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected);
|
||||
text-color: var(normal-background);
|
||||
}
|
||||
element selected.urgent {
|
||||
background-color: var(selected-urgent-background);
|
||||
text-color: var(selected-urgent-foreground);
|
||||
}
|
||||
element selected.active {
|
||||
background-color: var(selected-active-background);
|
||||
text-color: var(selected-active-foreground);
|
||||
}
|
||||
element alternate.normal {
|
||||
background-color: var(alternate-normal-background);
|
||||
text-color: var(alternate-normal-foreground);
|
||||
}
|
||||
element alternate.urgent {
|
||||
background-color: var(alternate-urgent-background);
|
||||
text-color: var(alternate-urgent-foreground);
|
||||
}
|
||||
element alternate.active {
|
||||
background-color: var(alternate-active-background);
|
||||
text-color: var(alternate-active-foreground);
|
||||
}
|
||||
element-icon {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
size: 24px;
|
||||
cursor: inherit;
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
highlight: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
/*****----- Mode Switcher -----*****/
|
||||
mode-switcher{
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
button {
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: inherit;
|
||||
cursor: pointer;
|
||||
}
|
||||
button selected {
|
||||
background-color: var(selected-normal-background);
|
||||
text-color: var(selected-normal-foreground);
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
textbox {
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: @foreground-colour;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
highlight: none;
|
||||
placeholder-color: @foreground-colour;
|
||||
blink: true;
|
||||
markup: true;
|
||||
}
|
||||
error-message {
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @background-colour;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
81
config/i3/themes/beach/theme.bash
Normal file
81
config/i3/themes/beach/theme.bash
Normal file
@ -0,0 +1,81 @@
|
||||
# ------------------------------------------------------------------------------
|
||||
# Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
#
|
||||
# Beach Theme
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
# Colors
|
||||
background='#141c21'
|
||||
foreground='#93a1a1'
|
||||
color0='#263640'
|
||||
color1='#d12f2c'
|
||||
color2='#819400'
|
||||
color3='#b08500'
|
||||
color4='#2587cc'
|
||||
color5='#696ebf'
|
||||
color6='#289c93'
|
||||
color7='#bfbaac'
|
||||
color8='#4a697d'
|
||||
color9='#fa3935'
|
||||
color10='#a4bd00'
|
||||
color11='#d9a400'
|
||||
color12='#2ca2f5'
|
||||
color13='#8086e8'
|
||||
color14='#33c5ba'
|
||||
color15='#fdf6e3'
|
||||
|
||||
accent='#5294E2'
|
||||
light_value='0.03'
|
||||
dark_value='0.30'
|
||||
|
||||
# Wallpaper
|
||||
wdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||
wallpaper="$wdir/wallpaper"
|
||||
|
||||
# Polybar
|
||||
polybar_font='Iosevka Nerd Font:size=10;3'
|
||||
|
||||
# Rofi
|
||||
rofi_font='Iosevka 10'
|
||||
rofi_icon='Numix-Apps'
|
||||
|
||||
# Terminal
|
||||
terminal_font_name='JetBrainsMono Nerd Font'
|
||||
terminal_font_size='10'
|
||||
|
||||
# Geany
|
||||
geany_colors='beach.conf'
|
||||
geany_font='JetBrains Mono 10'
|
||||
|
||||
# Appearance
|
||||
gtk_font='Noto Sans 9'
|
||||
gtk_theme='Arc'
|
||||
icon_theme='Arc-Circle'
|
||||
cursor_theme='Future'
|
||||
|
||||
# Dunst
|
||||
dunst_width='300'
|
||||
dunst_height='80'
|
||||
dunst_offset='20x58'
|
||||
dunst_origin='bottom-right'
|
||||
dunst_font='Iosevka 10'
|
||||
dunst_border='0'
|
||||
dunst_separator='2'
|
||||
|
||||
# Picom
|
||||
picom_backend='glx'
|
||||
picom_corner='0'
|
||||
picom_shadow_r='14'
|
||||
picom_shadow_o='0.30'
|
||||
picom_shadow_x='-12'
|
||||
picom_shadow_y='-12'
|
||||
picom_blur_method='none'
|
||||
picom_blur_strength='0'
|
||||
|
||||
# I3WM
|
||||
i3wm_fonts='JetBrainsMono Nerd Font 10'
|
||||
i3wm_border_size='2'
|
||||
i3wm_border_style='pixel'
|
||||
i3wm_gaps_inner='20'
|
||||
i3wm_gaps_outer='0'
|
||||
i3wm_gaps_smart='off'
|
||||
1
config/i3/themes/beach/wallpaper
Symbolic link
1
config/i3/themes/beach/wallpaper
Symbolic link
@ -0,0 +1 @@
|
||||
/usr/share/backgrounds/beach.jpg
|
||||
308
config/i3/themes/bouquet/apply.sh
Executable file
308
config/i3/themes/bouquet/apply.sh
Executable file
@ -0,0 +1,308 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
##
|
||||
## Script To Apply Themes
|
||||
|
||||
## Theme ------------------------------------
|
||||
IDIR="$HOME/.config/i3"
|
||||
TDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||
THEME="${TDIR##*/}"
|
||||
|
||||
source "$IDIR"/themes/"$THEME"/theme.bash
|
||||
altbackground="`pastel color $background | pastel lighten $light_value | pastel format hex`"
|
||||
altforeground="`pastel color $foreground | pastel darken $dark_value | pastel format hex`"
|
||||
|
||||
## Directories ------------------------------
|
||||
PATH_CONF="$HOME/.config"
|
||||
PATH_GEANY="$PATH_CONF/geany"
|
||||
PATH_I3WM="$PATH_CONF/i3"
|
||||
PATH_TERM="$PATH_I3WM/alacritty"
|
||||
PATH_PBAR="$PATH_I3WM/themes/$THEME/polybar"
|
||||
PATH_ROFI="$PATH_I3WM/themes/$THEME/rofi"
|
||||
|
||||
## Wallpaper ---------------------------------
|
||||
apply_wallpaper() {
|
||||
sed -i -e "s#WALLPAPER=.*#WALLPAPER='$wallpaper'#g" ${PATH_I3WM}/themes/wallpaper.sh
|
||||
}
|
||||
|
||||
## Polybar -----------------------------------
|
||||
apply_polybar() {
|
||||
# modify polybar launch script
|
||||
sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" ${PATH_I3WM}/themes/polybar.sh
|
||||
|
||||
# apply default theme fonts
|
||||
sed -i -e "s/font-0 = .*/font-0 = \"$polybar_font\"/g" ${PATH_PBAR}/config.ini
|
||||
|
||||
# rewrite colors file
|
||||
cat > ${PATH_PBAR}/colors.ini <<- EOF
|
||||
[color]
|
||||
|
||||
BACKGROUND = ${background}
|
||||
FOREGROUND = ${foreground}
|
||||
ALTBACKGROUND = ${altbackground}
|
||||
ALTFOREGROUND = ${altforeground}
|
||||
ACCENT = ${accent}
|
||||
|
||||
BLACK = ${color0}
|
||||
RED = ${color1}
|
||||
GREEN = ${color2}
|
||||
YELLOW = ${color3}
|
||||
BLUE = ${color4}
|
||||
MAGENTA = ${color5}
|
||||
CYAN = ${color6}
|
||||
WHITE = ${color7}
|
||||
ALTBLACK = ${color8}
|
||||
ALTRED = ${color9}
|
||||
ALTGREEN = ${color10}
|
||||
ALTYELLOW = ${color11}
|
||||
ALTBLUE = ${color12}
|
||||
ALTMAGENTA = ${color13}
|
||||
ALTCYAN = ${color14}
|
||||
ALTWHITE = ${color15}
|
||||
EOF
|
||||
}
|
||||
|
||||
# Rofi --------------------------------------
|
||||
apply_rofi() {
|
||||
# modify rofi scripts
|
||||
sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" \
|
||||
${PATH_I3WM}/scripts/rofi_askpass \
|
||||
${PATH_I3WM}/scripts/rofi_asroot \
|
||||
${PATH_I3WM}/scripts/rofi_launcher \
|
||||
${PATH_I3WM}/scripts/rofi_music \
|
||||
${PATH_I3WM}/scripts/rofi_powermenu \
|
||||
${PATH_I3WM}/scripts/rofi_runner \
|
||||
${PATH_I3WM}/scripts/rofi_screenshot \
|
||||
${PATH_I3WM}/scripts/rofi_themes \
|
||||
${PATH_I3WM}/scripts/rofi_windows
|
||||
|
||||
# apply default theme fonts
|
||||
sed -i -e "s/font:.*/font: \"$rofi_font\";/g" ${PATH_ROFI}/shared/fonts.rasi
|
||||
|
||||
# rewrite colors file
|
||||
cat > ${PATH_ROFI}/shared/colors.rasi <<- EOF
|
||||
* {
|
||||
background: ${background};
|
||||
background-alt: ${altbackground};
|
||||
foreground: ${foreground};
|
||||
selected: ${accent};
|
||||
active: ${color2};
|
||||
urgent: ${color1};
|
||||
}
|
||||
EOF
|
||||
|
||||
# modify icon theme
|
||||
if [[ -f "$PATH_CONF"/rofi/config.rasi ]]; then
|
||||
sed -i -e "s/icon-theme:.*/icon-theme: \"$rofi_icon\";/g" ${PATH_CONF}/rofi/config.rasi
|
||||
fi
|
||||
}
|
||||
|
||||
# Network Menu ------------------------------
|
||||
apply_netmenu() {
|
||||
if [[ -f "$PATH_I3WM"/themes/networkmenu_config.ini ]]; then
|
||||
sed -i -e "s#dmenu_command = .*#dmenu_command = rofi -dmenu -theme $PATH_ROFI/networkmenu.rasi#g" ${PATH_I3WM}/themes/networkmenu_config.ini
|
||||
fi
|
||||
}
|
||||
|
||||
# Terminal ----------------------------------
|
||||
apply_terminal() {
|
||||
# alacritty : fonts
|
||||
sed -i ${PATH_TERM}/fonts.yml \
|
||||
-e "s/family: .*/family: \"$terminal_font_name\"/g" \
|
||||
-e "s/size: .*/size: $terminal_font_size/g"
|
||||
|
||||
# alacritty : colors
|
||||
cat > ${PATH_TERM}/colors.yml <<- _EOF_
|
||||
## Colors configuration
|
||||
colors:
|
||||
# Default colors
|
||||
primary:
|
||||
background: '${background}'
|
||||
foreground: '${foreground}'
|
||||
|
||||
# Normal colors
|
||||
normal:
|
||||
black: '${color0}'
|
||||
red: '${color1}'
|
||||
green: '${color2}'
|
||||
yellow: '${color3}'
|
||||
blue: '${color4}'
|
||||
magenta: '${color5}'
|
||||
cyan: '${color6}'
|
||||
white: '${color7}'
|
||||
|
||||
# Bright colors
|
||||
bright:
|
||||
black: '${color8}'
|
||||
red: '${color9}'
|
||||
green: '${color10}'
|
||||
yellow: '${color11}'
|
||||
blue: '${color12}'
|
||||
magenta: '${color13}'
|
||||
cyan: '${color14}'
|
||||
white: '${color15}'
|
||||
_EOF_
|
||||
}
|
||||
|
||||
# Geany -------------------------------------
|
||||
apply_geany() {
|
||||
sed -i ${PATH_GEANY}/geany.conf \
|
||||
-e "s/color_scheme=.*/color_scheme=$geany_colors/g" \
|
||||
-e "s/editor_font=.*/editor_font=$geany_font/g"
|
||||
}
|
||||
|
||||
# Appearance --------------------------------
|
||||
apply_appearance() {
|
||||
XFILE="$PATH_I3WM/xsettingsd"
|
||||
GTK2FILE="$HOME/.gtkrc-2.0"
|
||||
GTK3FILE="$PATH_CONF/gtk-3.0/settings.ini"
|
||||
|
||||
# apply gtk theme, icons, cursor & fonts
|
||||
if [[ `pidof xsettingsd` ]]; then
|
||||
sed -i -e "s|Net/ThemeName .*|Net/ThemeName \"$gtk_theme\"|g" ${XFILE}
|
||||
sed -i -e "s|Net/IconThemeName .*|Net/IconThemeName \"$icon_theme\"|g" ${XFILE}
|
||||
sed -i -e "s|Gtk/CursorThemeName .*|Gtk/CursorThemeName \"$cursor_theme\"|g" ${XFILE}
|
||||
else
|
||||
sed -i -e "s/gtk-font-name=.*/gtk-font-name=\"$gtk_font\"/g" ${GTK2FILE}
|
||||
sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=\"$gtk_theme\"/g" ${GTK2FILE}
|
||||
sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=\"$icon_theme\"/g" ${GTK2FILE}
|
||||
sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=\"$cursor_theme\"/g" ${GTK2FILE}
|
||||
|
||||
sed -i -e "s/gtk-font-name=.*/gtk-font-name=$gtk_font/g" ${GTK3FILE}
|
||||
sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=$gtk_theme/g" ${GTK3FILE}
|
||||
sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=$icon_theme/g" ${GTK3FILE}
|
||||
sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=$cursor_theme/g" ${GTK3FILE}
|
||||
fi
|
||||
|
||||
# inherit cursor theme
|
||||
if [[ -f "$HOME"/.icons/default/index.theme ]]; then
|
||||
sed -i -e "s/Inherits=.*/Inherits=$cursor_theme/g" "$HOME"/.icons/default/index.theme
|
||||
fi
|
||||
}
|
||||
|
||||
# Dunst -------------------------------------
|
||||
apply_dunst() {
|
||||
# modify dunst config
|
||||
sed -i ${PATH_I3WM}/dunstrc \
|
||||
-e "s/width = .*/width = $dunst_width/g" \
|
||||
-e "s/height = .*/height = $dunst_height/g" \
|
||||
-e "s/offset = .*/offset = $dunst_offset/g" \
|
||||
-e "s/origin = .*/origin = $dunst_origin/g" \
|
||||
-e "s/font = .*/font = $dunst_font/g" \
|
||||
-e "s/frame_width = .*/frame_width = $dunst_border/g" \
|
||||
-e "s/separator_height = .*/separator_height = $dunst_separator/g" \
|
||||
-e "s/line_height = .*/line_height = $dunst_separator/g"
|
||||
|
||||
# modify colors
|
||||
sed -i '/urgency_low/Q' ${PATH_I3WM}/dunstrc
|
||||
cat >> ${PATH_I3WM}/dunstrc <<- _EOF_
|
||||
[urgency_low]
|
||||
timeout = 2
|
||||
background = "${background}"
|
||||
foreground = "${foreground}"
|
||||
frame_color = "${accent}"
|
||||
|
||||
[urgency_normal]
|
||||
timeout = 5
|
||||
background = "${background}"
|
||||
foreground = "${foreground}"
|
||||
frame_color = "${accent}"
|
||||
|
||||
[urgency_critical]
|
||||
timeout = 0
|
||||
background = "${background}"
|
||||
foreground = "${color1}"
|
||||
frame_color = "${color1}"
|
||||
_EOF_
|
||||
}
|
||||
|
||||
# Compositor --------------------------------
|
||||
apply_compositor() {
|
||||
picom_cfg="$PATH_I3WM/picom.conf"
|
||||
|
||||
# modify picom config
|
||||
sed -i "$picom_cfg" \
|
||||
-e "s/backend = .*/backend = \"$picom_backend\";/g" \
|
||||
-e "s/corner-radius = .*/corner-radius = $picom_corner;/g" \
|
||||
-e "s/shadow-radius = .*/shadow-radius = $picom_shadow_r;/g" \
|
||||
-e "s/shadow-opacity = .*/shadow-opacity = $picom_shadow_o;/g" \
|
||||
-e "s/shadow-offset-x = .*/shadow-offset-x = $picom_shadow_x;/g" \
|
||||
-e "s/shadow-offset-y = .*/shadow-offset-y = $picom_shadow_y;/g" \
|
||||
-e "s/method = .*/method = \"$picom_blur_method\";/g" \
|
||||
-e "s/strength = .*/strength = $picom_blur_strength;/g"
|
||||
}
|
||||
|
||||
# I3WM -------------------------------------
|
||||
apply_i3wm() {
|
||||
# modify i3theme file
|
||||
sed -i ${PATH_I3WM}/config.d/01_theme.conf \
|
||||
-e "s/set \$i3_fonts.*/set \$i3_fonts $i3wm_fonts/g" \
|
||||
\
|
||||
-e "s/set \$i3_border_size.*/set \$i3_border_size $i3wm_border_size/g" \
|
||||
-e "s/set \$i3_border_style.*/set \$i3_border_style $i3wm_border_style/g" \
|
||||
\
|
||||
-e "s/set \$i3_gaps_inner.*/set \$i3_gaps_inner $i3wm_gaps_inner/g" \
|
||||
-e "s/set \$i3_gaps_outer.*/set \$i3_gaps_outer $i3wm_gaps_outer/g" \
|
||||
-e "s/set \$i3_gaps_smart.*/set \$i3_gaps_smart $i3wm_gaps_smart/g" \
|
||||
\
|
||||
-e "s/set \$i3_cl_col_bg.*/set \$i3_cl_col_bg $background/g" \
|
||||
-e "s/set \$i3_cl_col_fg.*/set \$i3_cl_col_fg $foreground/g" \
|
||||
-e "s/set \$i3_cl_col_in.*/set \$i3_cl_col_in $color2/g" \
|
||||
-e "s/set \$i3_cl_col_afoc.*/set \$i3_cl_col_afoc $accent/g" \
|
||||
-e "s/set \$i3_cl_col_ifoc.*/set \$i3_cl_col_ifoc $color4/g" \
|
||||
-e "s/set \$i3_cl_col_ufoc.*/set \$i3_cl_col_ufoc $altbackground/g" \
|
||||
-e "s/set \$i3_cl_col_urgt.*/set \$i3_cl_col_urgt $color5/g" \
|
||||
-e "s/set \$i3_cl_col_phol.*/set \$i3_cl_col_phol $background/g"
|
||||
|
||||
# modify i3bar file
|
||||
sed -i ${PATH_I3WM}/i3status/statusbar.conf \
|
||||
-e "s/set \$i3_bar_fonts.*/set \$i3_bar_fonts $i3wm_fonts/g" \
|
||||
\
|
||||
-e "s/set \$i3_bar_bg.*/set \$i3_bar_bg $background/g" \
|
||||
-e "s/set \$i3_bar_fg.*/set \$i3_bar_fg $foreground/g" \
|
||||
-e "s/set \$i3_bar_sep.*/set \$i3_bar_sep $altbackground/g" \
|
||||
-e "s/set \$i3_bar_foc.*/set \$i3_bar_foc $accent/g" \
|
||||
-e "s/set \$i3_bar_act.*/set \$i3_bar_act $color4/g" \
|
||||
-e "s/set \$i3_bar_ina.*/set \$i3_bar_ina $altbackground/g" \
|
||||
-e "s/set \$i3_bar_urg.*/set \$i3_bar_urg $color5/g" \
|
||||
-e "s/set \$i3_bar_mod.*/set \$i3_bar_mod $color2/g"
|
||||
|
||||
# modify i3status file
|
||||
sed -i ${PATH_I3WM}/i3status/config \
|
||||
-e "s/color_good =.*/color_good = \"$color2\"/g" \
|
||||
-e "s/color_degraded =.*/color_degraded = \"$color3\"/g" \
|
||||
-e "s/color_bad =.*/color_bad = \"$color1\"/g" \
|
||||
-e "s/color_separator =.*/color_separator = \"$altbackground\"/g"
|
||||
|
||||
# restart i3wm
|
||||
i3-msg restart
|
||||
}
|
||||
|
||||
# Create Theme File -------------------------
|
||||
create_file() {
|
||||
theme_file="$PATH_I3WM/themes/.current"
|
||||
if [[ ! -f "$theme_file" ]]; then
|
||||
touch ${theme_file}
|
||||
fi
|
||||
echo "$THEME" > ${theme_file}
|
||||
}
|
||||
|
||||
# Notify User -------------------------------
|
||||
notify_user() {
|
||||
dunstify -u normal -h string:x-dunst-stack-tag:applytheme -i /usr/share/archcraft/icons/dunst/themes.png "Applying Style : $THEME"
|
||||
}
|
||||
|
||||
## Execute Script ---------------------------
|
||||
notify_user
|
||||
create_file
|
||||
apply_wallpaper
|
||||
apply_polybar
|
||||
apply_rofi
|
||||
apply_netmenu
|
||||
apply_terminal
|
||||
apply_geany
|
||||
apply_appearance
|
||||
apply_dunst
|
||||
apply_compositor
|
||||
apply_i3wm
|
||||
24
config/i3/themes/bouquet/polybar/colors.ini
Normal file
24
config/i3/themes/bouquet/polybar/colors.ini
Normal file
@ -0,0 +1,24 @@
|
||||
[color]
|
||||
|
||||
BACKGROUND = #091927
|
||||
FOREGROUND = #e1e7ee
|
||||
ALTBACKGROUND = #0c2133
|
||||
ALTFOREGROUND = #7f99b7
|
||||
ACCENT = #8DA2B3
|
||||
|
||||
BLACK = #091927
|
||||
RED = #77A7D6
|
||||
GREEN = #7FB2E1
|
||||
YELLOW = #8DA2B3
|
||||
BLUE = #8DB5DE
|
||||
MAGENTA = #A7C3E0
|
||||
CYAN = #ADD0EC
|
||||
WHITE = #e1e7ee
|
||||
ALTBLACK = #9da1a6
|
||||
ALTRED = #77A7D6
|
||||
ALTGREEN = #7FB2E1
|
||||
ALTYELLOW = #8DA2B3
|
||||
ALTBLUE = #8DB5DE
|
||||
ALTMAGENTA = #A7C3E0
|
||||
ALTCYAN = #ADD0EC
|
||||
ALTWHITE = #e1e7ee
|
||||
306
config/i3/themes/bouquet/polybar/config.ini
Normal file
306
config/i3/themes/bouquet/polybar/config.ini
Normal file
@ -0,0 +1,306 @@
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
|
||||
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
||||
|
||||
;; Global WM Settings
|
||||
|
||||
[global/wm]
|
||||
; Adjust the _NET_WM_STRUT_PARTIAL top value
|
||||
; Used for top aligned bars
|
||||
margin-bottom = 0
|
||||
|
||||
; Adjust the _NET_WM_STRUT_PARTIAL bottom value
|
||||
; Used for bottom aligned bars
|
||||
margin-top = 0
|
||||
|
||||
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
||||
|
||||
;; File Inclusion
|
||||
; include an external file, like module file, etc.
|
||||
|
||||
include-file = ../../system.ini
|
||||
include-file = ./colors.ini
|
||||
include-file = ./modules.ini
|
||||
|
||||
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
||||
|
||||
;; Bar Settings
|
||||
|
||||
[bar/main]
|
||||
; Use either of the following command to list available outputs:
|
||||
; If unspecified, the application will pick the first one it finds.
|
||||
; $ polybar -m | cut -d ':' -f 1
|
||||
; $ xrandr -q | grep " connected" | cut -d ' ' -f1
|
||||
monitor = ${env:MONITOR:}
|
||||
|
||||
; Use the specified monitor as a fallback if the main one is not found.
|
||||
monitor-fallback =
|
||||
|
||||
; Require the monitor to be in connected state
|
||||
; XRandR sometimes reports my monitor as being disconnected (when in use)
|
||||
monitor-strict = false
|
||||
|
||||
; Tell the Window Manager not to configure the window.
|
||||
; Use this to detach the bar if your WM is locking its size/position.
|
||||
override-redirect = false
|
||||
|
||||
; Put the bar at the bottom of the screen
|
||||
bottom = true
|
||||
|
||||
; Prefer fixed center position for the `modules-center` block
|
||||
; When false, the center position will be based on the size of the other blocks.
|
||||
fixed-center = true
|
||||
|
||||
; Dimension defined as pixel value (e.g. 35) or percentage (e.g. 50%),
|
||||
; the percentage can optionally be extended with a pixel offset like so:
|
||||
; 50%:-10, this will result in a width or height of 50% minus 10 pixels
|
||||
width = 100%
|
||||
height = 36
|
||||
|
||||
; Offset defined as pixel value (e.g. 35) or percentage (e.g. 50%)
|
||||
; the percentage can optionally be extended with a pixel offset like so:
|
||||
; 50%:-10, this will result in an offset in the x or y direction
|
||||
; of 50% minus 10 pixels
|
||||
offset-x = 0%
|
||||
offset-y = 0%
|
||||
|
||||
; Background ARGB color (e.g. #f00, #ff992a, #ddff1023)
|
||||
background = ${color.BACKGROUND}
|
||||
|
||||
; Foreground ARGB color (e.g. #f00, #ff992a, #ddff1023)
|
||||
foreground = ${color.FOREGROUND}
|
||||
|
||||
; Background gradient (vertical steps)
|
||||
; background-[0-9]+ = #aarrggbb
|
||||
;;background-0 =
|
||||
|
||||
; Value used for drawing rounded corners
|
||||
; Note: This shouldn't be used together with border-size because the border
|
||||
; doesn't get rounded
|
||||
; Individual top/bottom values can be defined using:
|
||||
; radius-{top,bottom}
|
||||
radius-top = 0.0
|
||||
radius-bottom = 0.0
|
||||
|
||||
; Under-/overline pixel size and argb color
|
||||
; Individual values can be defined using:
|
||||
; {overline,underline}-size
|
||||
; {overline,underline}-color
|
||||
line-size = 2
|
||||
line-color = ${color.ACCENT}
|
||||
|
||||
; Values applied to all borders
|
||||
; Individual side values can be defined using:
|
||||
; border-{left,top,right,bottom}-size
|
||||
; border-{left,top,right,bottom}-color
|
||||
; The top and bottom borders are added to the bar height, so the effective
|
||||
; window height is:
|
||||
; height + border-top-size + border-bottom-size
|
||||
; Meanwhile the effective window width is defined entirely by the width key and
|
||||
; the border is placed withing this area. So you effectively only have the
|
||||
; following horizontal space on the bar:
|
||||
; width - border-right-size - border-left-size
|
||||
border-top-size = 0
|
||||
border-color = ${color.ACCENT}
|
||||
|
||||
; Number of spaces to add at the beginning/end of the bar
|
||||
; Individual side values can be defined using:
|
||||
; padding-{left,right}
|
||||
padding = 2
|
||||
|
||||
; Number of spaces to add before/after each module
|
||||
; Individual side values can be defined using:
|
||||
; module-margin-{left,right}
|
||||
module-margin-left = 0
|
||||
module-margin-right = 0
|
||||
|
||||
; Fonts are defined using <font-name>;<vertical-offset>
|
||||
; Font names are specified using a fontconfig pattern.
|
||||
; font-0 = "Iosevka Nerd Font:size=10;3"
|
||||
; font-1 = MaterialIcons:size=10
|
||||
; font-2 = Termsynu:size=8;-1
|
||||
; font-3 = FontAwesome:size=10
|
||||
; See the Fonts wiki page for more details
|
||||
|
||||
font-0 = "Iosevka Nerd Font:size=10;3"
|
||||
font-1 = "Iosevka Nerd Font:size=12;3"
|
||||
font-2 = "Iosevka:style=bold:size=12;3"
|
||||
|
||||
; Modules are added to one of the available blocks
|
||||
; modules-left = cpu ram
|
||||
; modules-center = xwindow xbacklight
|
||||
; modules-right = ipc clock
|
||||
|
||||
# Default
|
||||
modules-left = menu sep i3 sep cpu sep used-memory sep filesystem
|
||||
modules-center = mpd
|
||||
modules-right = volume sep backlight sep battery sep network sep date sep sysmenu
|
||||
# Alternate
|
||||
;modules-left = openbox 2LD cpu 3LD memory 4LD filesystem 5LD
|
||||
;modules-center = mpd
|
||||
;modules-right = 2RD volume 3RD backlight 4RD battery 5RD network 6RD date sep
|
||||
|
||||
; The separator will be inserted between the output of each module
|
||||
separator =
|
||||
|
||||
; This value is used to add extra spacing between elements
|
||||
; @deprecated: This parameter will be removed in an upcoming version
|
||||
spacing = 0
|
||||
|
||||
; Opacity value between 0.0 and 1.0 used on fade in/out
|
||||
dim-value = 1.0
|
||||
|
||||
; Value to be used to set the WM_NAME atom
|
||||
; If the value is empty or undefined, the atom value
|
||||
; will be created from the following template: polybar-[BAR]_[MONITOR]
|
||||
; NOTE: The placeholders are not available for custom values
|
||||
wm-name = i3
|
||||
|
||||
; Locale used to localize various module data (e.g. date)
|
||||
; Expects a valid libc locale, for example: sv_SE.UTF-8
|
||||
locale =
|
||||
|
||||
; Position of the system tray window
|
||||
; If empty or undefined, tray support will be disabled
|
||||
; NOTE: A center aligned tray will cover center aligned modules
|
||||
;
|
||||
; Available positions:
|
||||
; left
|
||||
; center
|
||||
; right
|
||||
; none
|
||||
tray-position = right
|
||||
|
||||
; If true, the bar will not shift its
|
||||
; contents when the tray changes
|
||||
tray-detached = false
|
||||
|
||||
; Tray icon max size
|
||||
tray-maxsize = 16
|
||||
|
||||
; DEPRECATED! Since 3.3.0 the tray always uses pseudo-transparency
|
||||
; Enable pseudo transparency
|
||||
; Will automatically be enabled if a fully transparent
|
||||
; background color is defined using `tray-background`
|
||||
; tray-transparent = false
|
||||
|
||||
; Background color for the tray container
|
||||
; ARGB color (e.g. #f00, #ff992a, #ddff1023)
|
||||
; By default the tray container will use the bar
|
||||
; background color.
|
||||
tray-background = ${color.BACKGROUND}
|
||||
|
||||
; Tray offset defined as pixel value (e.g. 35) or percentage (e.g. 50%)
|
||||
tray-offset-x = 0
|
||||
tray-offset-y = 0
|
||||
|
||||
; Pad the sides of each tray icon
|
||||
tray-padding = 0
|
||||
|
||||
; Scale factor for tray clients
|
||||
tray-scale = 1.0
|
||||
|
||||
; Restack the bar window and put it above the
|
||||
; selected window manager's root
|
||||
;
|
||||
; Fixes the issue where the bar is being drawn
|
||||
; on top of fullscreen window's
|
||||
;
|
||||
; Currently supported WM's:
|
||||
; bspwm
|
||||
; i3 (requires: `override-redirect = true`)
|
||||
wm-restack = i3
|
||||
|
||||
; Set a DPI values used when rendering text
|
||||
; This only affects scalable fonts
|
||||
; dpi =
|
||||
|
||||
; Enable support for inter-process messaging
|
||||
; See the Messaging wiki page for more details.
|
||||
enable-ipc = true
|
||||
|
||||
; Fallback click handlers that will be called if
|
||||
; there's no matching module handler found.
|
||||
click-left =
|
||||
click-middle =
|
||||
click-right =
|
||||
scroll-up =
|
||||
scroll-down =
|
||||
double-click-left =
|
||||
double-click-middle =
|
||||
double-click-right =
|
||||
|
||||
; Requires polybar to be built with xcursor support (xcb-util-cursor)
|
||||
; Possible values are:
|
||||
; - default : The default pointer as before, can also be an empty string (default)
|
||||
; - pointer : Typically in the form of a hand
|
||||
; - ns-resize : Up and down arrows, can be used to indicate scrolling
|
||||
cursor-click =
|
||||
cursor-scroll =
|
||||
|
||||
;; WM Workspace Specific
|
||||
|
||||
; bspwm
|
||||
;;scroll-up = bspwm-desknext
|
||||
;;scroll-down = bspwm-deskprev
|
||||
;;scroll-up = bspc desktop -f prev.local
|
||||
;;scroll-down = bspc desktop -f next.local
|
||||
|
||||
;i3
|
||||
;;scroll-up = i3wm-wsnext
|
||||
;;scroll-down = i3wm-wsprev
|
||||
;;scroll-up = i3-msg workspace next_on_output
|
||||
;;scroll-down = i3-msg workspace prev_on_output
|
||||
|
||||
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
||||
|
||||
;; Application Settings
|
||||
|
||||
[settings]
|
||||
; The throttle settings lets the eventloop swallow up til X events
|
||||
; if they happen within Y millisecond after first event was received.
|
||||
; This is done to prevent flood of update event.
|
||||
;
|
||||
; For example if 5 modules emit an update event at the same time, we really
|
||||
; just care about the last one. But if we wait too long for events to swallow
|
||||
; the bar would appear sluggish so we continue if timeout
|
||||
; expires or limit is reached.
|
||||
throttle-output = 5
|
||||
throttle-output-for = 10
|
||||
|
||||
; Time in milliseconds that the input handler will wait between processing events
|
||||
;throttle-input-for = 30
|
||||
|
||||
; Reload upon receiving XCB_RANDR_SCREEN_CHANGE_NOTIFY events
|
||||
screenchange-reload = false
|
||||
|
||||
; Compositing operators
|
||||
; @see: https://www.cairographics.org/manual/cairo-cairo-t.html#cairo-operator-t
|
||||
compositing-background = source
|
||||
compositing-foreground = over
|
||||
compositing-overline = over
|
||||
compositing-underline = over
|
||||
compositing-border = over
|
||||
|
||||
; Define fallback values used by all module formats
|
||||
;format-foreground =
|
||||
;format-background =
|
||||
;format-underline =
|
||||
;format-overline =
|
||||
;format-spacing =
|
||||
;format-padding =
|
||||
;format-margin =
|
||||
;format-offset =
|
||||
|
||||
; Enables pseudo-transparency for the bar
|
||||
; If set to true the bar can be transparent without a compositor.
|
||||
pseudo-transparency = false
|
||||
|
||||
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
||||
;; __________ ______
|
||||
;; / ____/ __ \/ ____/
|
||||
;; / __/ / / / / /_
|
||||
;; / /___/ /_/ / __/
|
||||
;; /_____/\____/_/
|
||||
;;
|
||||
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
||||
42
config/i3/themes/bouquet/polybar/launch.sh
Executable file
42
config/i3/themes/bouquet/polybar/launch.sh
Executable file
@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||
CARD="$(light -L | grep 'backlight' | head -n1 | cut -d'/' -f3)"
|
||||
INTERFACE="$(ip link | awk '/state UP/ {print $2}' | tr -d :)"
|
||||
RFILE="$DIR/.module"
|
||||
|
||||
# Fix backlight and network modules
|
||||
fix_modules() {
|
||||
if [[ -z "$CARD" ]]; then
|
||||
sed -i -e 's/backlight/bna/g' "$DIR"/config.ini
|
||||
elif [[ "$CARD" != *"intel_"* ]]; then
|
||||
sed -i -e 's/backlight/brightness/g' "$DIR"/config.ini
|
||||
fi
|
||||
|
||||
if [[ "$INTERFACE" == e* ]]; then
|
||||
sed -i -e 's/network/ethernet/g' "$DIR"/config.ini
|
||||
fi
|
||||
}
|
||||
|
||||
# Launch the bar
|
||||
launch_bar() {
|
||||
# Terminate already running bar instances
|
||||
killall -q polybar
|
||||
|
||||
# Wait until the processes have been shut down
|
||||
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
|
||||
|
||||
# Launch the bar
|
||||
for mon in $(polybar --list-monitors | cut -d":" -f1); do
|
||||
MONITOR=$mon polybar -q main -c "$DIR"/config.ini &
|
||||
done
|
||||
}
|
||||
|
||||
# Execute functions
|
||||
if [[ ! -f "$RFILE" ]]; then
|
||||
fix_modules
|
||||
touch "$RFILE"
|
||||
fi
|
||||
launch_bar
|
||||
1240
config/i3/themes/bouquet/polybar/modules.ini
Normal file
1240
config/i3/themes/bouquet/polybar/modules.ini
Normal file
File diff suppressed because it is too large
Load Diff
210
config/i3/themes/bouquet/random.sh
Executable file
210
config/i3/themes/bouquet/random.sh
Executable file
@ -0,0 +1,210 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
##
|
||||
## Apply Random Theme With Pywal
|
||||
|
||||
## Theme ------------------------------------
|
||||
TDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||
THEME="${TDIR##*/}"
|
||||
|
||||
# Set you wallpaper directory here.
|
||||
WALLDIR="`xdg-user-dir PICTURES`/wallpapers"
|
||||
WALFILE="$HOME/.cache/wal/colors.sh"
|
||||
|
||||
## Directories ------------------------------
|
||||
PATH_CONF="$HOME/.config"
|
||||
PATH_I3WM="$PATH_CONF/i3"
|
||||
PATH_TERM="$PATH_I3WM/alacritty"
|
||||
PATH_PBAR="$PATH_I3WM/themes/$THEME/polybar"
|
||||
PATH_ROFI="$PATH_I3WM/themes/$THEME/rofi"
|
||||
|
||||
## Pywal ------------------------------------
|
||||
check_wallpaper() {
|
||||
if [[ -d "$WALLDIR" ]]; then
|
||||
WFILES="`ls --format=single-column $WALLDIR | wc -l`"
|
||||
if [[ "$WFILES" == 0 ]]; then
|
||||
dunstify -u normal -h string:x-dunst-stack-tag:noimage -i /usr/share/archcraft/icons/dunst/picture.png "There are no wallpapers in : $WALLDIR"
|
||||
exit
|
||||
fi
|
||||
else
|
||||
mkdir -p "$WALLDIR"
|
||||
dunstify -u normal -h string:x-dunst-stack-tag:noimage -i /usr/share/archcraft/icons/dunst/picture.png "Put some wallpapers in : $WALLDIR"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
generate_colors() {
|
||||
check_wallpaper
|
||||
if [[ `which wal` ]]; then
|
||||
dunstify -t 50000 -h string:x-dunst-stack-tag:runpywal -i /usr/share/archcraft/icons/dunst/hourglass.png "Generating Colorscheme. Please wait..."
|
||||
wal -q -n -s -t -e -i "$WALLDIR"
|
||||
if [[ "$?" != 0 ]]; then
|
||||
dunstify -u normal -h string:x-dunst-stack-tag:runpywal -i /usr/share/archcraft/icons/dunst/palette.png "Failed to generate colorscheme."
|
||||
exit
|
||||
fi
|
||||
else
|
||||
dunstify -u normal -h string:x-dunst-stack-tag:runpywal -i /usr/share/archcraft/icons/dunst/palette.png "'pywal' is not installed."
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
generate_colors
|
||||
source "$WALFILE"
|
||||
altbackground="`pastel color $background | pastel lighten 0.03 | pastel format hex`"
|
||||
altforeground="`pastel color $foreground | pastel darken 0.30 | pastel format hex`"
|
||||
accent="$color3"
|
||||
|
||||
## Wallpaper ---------------------------------
|
||||
apply_wallpaper() {
|
||||
sed -i -e "s#WALLPAPER=.*#WALLPAPER='$wallpaper'#g" ${PATH_I3WM}/themes/wallpaper.sh
|
||||
}
|
||||
|
||||
## Polybar -----------------------------------
|
||||
apply_polybar() {
|
||||
# rewrite colors file
|
||||
cat > ${PATH_PBAR}/colors.ini <<- EOF
|
||||
[color]
|
||||
|
||||
BACKGROUND = ${background}
|
||||
FOREGROUND = ${foreground}
|
||||
ALTBACKGROUND = ${altbackground}
|
||||
ALTFOREGROUND = ${altforeground}
|
||||
ACCENT = ${accent}
|
||||
|
||||
BLACK = ${color0}
|
||||
RED = ${color1}
|
||||
GREEN = ${color2}
|
||||
YELLOW = ${color3}
|
||||
BLUE = ${color4}
|
||||
MAGENTA = ${color5}
|
||||
CYAN = ${color6}
|
||||
WHITE = ${color7}
|
||||
ALTBLACK = ${color8}
|
||||
ALTRED = ${color9}
|
||||
ALTGREEN = ${color10}
|
||||
ALTYELLOW = ${color11}
|
||||
ALTBLUE = ${color12}
|
||||
ALTMAGENTA = ${color13}
|
||||
ALTCYAN = ${color14}
|
||||
ALTWHITE = ${color15}
|
||||
EOF
|
||||
}
|
||||
|
||||
# Rofi --------------------------------------
|
||||
apply_rofi() {
|
||||
# rewrite colors file
|
||||
cat > ${PATH_ROFI}/shared/colors.rasi <<- EOF
|
||||
* {
|
||||
background: ${background};
|
||||
background-alt: ${altbackground};
|
||||
foreground: ${foreground};
|
||||
selected: ${accent};
|
||||
active: ${color2};
|
||||
urgent: ${color1};
|
||||
}
|
||||
EOF
|
||||
}
|
||||
|
||||
# Terminal ----------------------------------
|
||||
apply_terminal() {
|
||||
# alacritty : colors
|
||||
cat > ${PATH_TERM}/colors.yml <<- _EOF_
|
||||
## Colors configuration
|
||||
colors:
|
||||
# Default colors
|
||||
primary:
|
||||
background: '${background}'
|
||||
foreground: '${foreground}'
|
||||
|
||||
# Normal colors
|
||||
normal:
|
||||
black: '${color0}'
|
||||
red: '${color1}'
|
||||
green: '${color2}'
|
||||
yellow: '${color3}'
|
||||
blue: '${color4}'
|
||||
magenta: '${color5}'
|
||||
cyan: '${color6}'
|
||||
white: '${color7}'
|
||||
|
||||
# Bright colors
|
||||
bright:
|
||||
black: '${color8}'
|
||||
red: '${color9}'
|
||||
green: '${color10}'
|
||||
yellow: '${color11}'
|
||||
blue: '${color12}'
|
||||
magenta: '${color13}'
|
||||
cyan: '${color14}'
|
||||
white: '${color15}'
|
||||
_EOF_
|
||||
}
|
||||
|
||||
# Dunst -------------------------------------
|
||||
apply_dunst() {
|
||||
# modify colors
|
||||
sed -i '/urgency_low/Q' ${PATH_I3WM}/dunstrc
|
||||
cat >> ${PATH_I3WM}/dunstrc <<- _EOF_
|
||||
[urgency_low]
|
||||
timeout = 2
|
||||
background = "${background}"
|
||||
foreground = "${foreground}"
|
||||
frame_color = "${accent}"
|
||||
|
||||
[urgency_normal]
|
||||
timeout = 5
|
||||
background = "${background}"
|
||||
foreground = "${foreground}"
|
||||
frame_color = "${accent}"
|
||||
|
||||
[urgency_critical]
|
||||
timeout = 0
|
||||
background = "${background}"
|
||||
foreground = "${color1}"
|
||||
frame_color = "${color1}"
|
||||
_EOF_
|
||||
}
|
||||
|
||||
# I3WM -------------------------------------
|
||||
apply_i3wm() {
|
||||
# modify i3theme file
|
||||
sed -i ${PATH_I3WM}/config.d/01_theme.conf \
|
||||
-e "s/set \$i3_cl_col_bg.*/set \$i3_cl_col_bg $background/g" \
|
||||
-e "s/set \$i3_cl_col_fg.*/set \$i3_cl_col_fg $foreground/g" \
|
||||
-e "s/set \$i3_cl_col_in.*/set \$i3_cl_col_in $color2/g" \
|
||||
-e "s/set \$i3_cl_col_afoc.*/set \$i3_cl_col_afoc $accent/g" \
|
||||
-e "s/set \$i3_cl_col_ifoc.*/set \$i3_cl_col_ifoc $color4/g" \
|
||||
-e "s/set \$i3_cl_col_ufoc.*/set \$i3_cl_col_ufoc $altbackground/g" \
|
||||
-e "s/set \$i3_cl_col_urgt.*/set \$i3_cl_col_urgt $color5/g" \
|
||||
-e "s/set \$i3_cl_col_phol.*/set \$i3_cl_col_phol $background/g"
|
||||
|
||||
# modify i3bar file
|
||||
sed -i ${PATH_I3WM}/i3status/statusbar.conf \
|
||||
-e "s/set \$i3_bar_bg.*/set \$i3_bar_bg $background/g" \
|
||||
-e "s/set \$i3_bar_fg.*/set \$i3_bar_fg $foreground/g" \
|
||||
-e "s/set \$i3_bar_sep.*/set \$i3_bar_sep $altbackground/g" \
|
||||
-e "s/set \$i3_bar_foc.*/set \$i3_bar_foc $accent/g" \
|
||||
-e "s/set \$i3_bar_act.*/set \$i3_bar_act $color4/g" \
|
||||
-e "s/set \$i3_bar_ina.*/set \$i3_bar_ina $altbackground/g" \
|
||||
-e "s/set \$i3_bar_urg.*/set \$i3_bar_urg $color5/g" \
|
||||
-e "s/set \$i3_bar_mod.*/set \$i3_bar_mod $color2/g"
|
||||
|
||||
# modify i3status file
|
||||
sed -i ${PATH_I3WM}/i3status/config \
|
||||
-e "s/color_good =.*/color_good = \"$color2\"/g" \
|
||||
-e "s/color_degraded =.*/color_degraded = \"$color3\"/g" \
|
||||
-e "s/color_bad =.*/color_bad = \"$color1\"/g" \
|
||||
-e "s/color_separator =.*/color_separator = \"$altbackground\"/g"
|
||||
|
||||
# restart i3wm
|
||||
i3-msg restart
|
||||
}
|
||||
|
||||
## Execute Script ---------------------------
|
||||
apply_wallpaper
|
||||
apply_polybar
|
||||
apply_rofi
|
||||
apply_terminal
|
||||
apply_dunst
|
||||
apply_i3wm
|
||||
75
config/i3/themes/bouquet/rofi/askpass.rasi
Normal file
75
config/i3/themes/bouquet/rofi/askpass.rasi
Normal file
@ -0,0 +1,75 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
location: center;
|
||||
anchor: center;
|
||||
fullscreen: false;
|
||||
width: 350px;
|
||||
x-offset: 0px;
|
||||
y-offset: 0px;
|
||||
padding: 15px;
|
||||
border: 0px solid;
|
||||
border-radius: 10px;
|
||||
border-color: @selected;
|
||||
background-color: @background;
|
||||
cursor: "default";
|
||||
children: [ "inputbar", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
children: [ "textbox-prompt-colon", "prompt", "entry" ];
|
||||
}
|
||||
|
||||
dummy {
|
||||
expand: false;
|
||||
width: 10px;
|
||||
background-color: transparent;
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "";
|
||||
padding: 10px 13px;
|
||||
border-radius: 100%;
|
||||
background-color: @urgent;
|
||||
text-color: @background;
|
||||
}
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
border-radius: 15px;
|
||||
background-color: @selected;
|
||||
text-color: @background;
|
||||
}
|
||||
entry {
|
||||
enabled: true;
|
||||
padding: 10px 15px;
|
||||
border-radius: 15px;
|
||||
background-color: @background-alt;
|
||||
text-color: inherit;
|
||||
cursor: text;
|
||||
placeholder: "Password";
|
||||
placeholder-color: inherit;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: false;
|
||||
}
|
||||
152
config/i3/themes/bouquet/rofi/asroot.rasi
Normal file
152
config/i3/themes/bouquet/rofi/asroot.rasi
Normal file
@ -0,0 +1,152 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
show-icons: false;
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
/*
|
||||
USE_ICON=YES
|
||||
*/
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
transparency: "real";
|
||||
location: center;
|
||||
anchor: center;
|
||||
fullscreen: false;
|
||||
width: 500px;
|
||||
x-offset: 0px;
|
||||
y-offset: 0px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 10px;
|
||||
border-color: @selected;
|
||||
cursor: "default";
|
||||
background-color: @background;
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 20px;
|
||||
margin: 0px;
|
||||
padding: 30px;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar", "listview", "message" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
padding: 0px;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
children: [ "dummy", "textbox-prompt-colon", "prompt", "dummy" ];
|
||||
}
|
||||
|
||||
dummy {
|
||||
expand: true;
|
||||
background-color: transparent;
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "";
|
||||
padding: 10px 12px;
|
||||
border-radius: 100%;
|
||||
background-color: @selected;
|
||||
text-color: @background;
|
||||
}
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
border-radius: 20px;
|
||||
background-color: @selected;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 100%;
|
||||
border-color: @selected;
|
||||
background-color: @background-alt;
|
||||
text-color: @foreground;
|
||||
}
|
||||
textbox {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.5;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 5;
|
||||
lines: 1;
|
||||
cycle: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
|
||||
spacing: 10px;
|
||||
background-color: transparent;
|
||||
cursor: "default";
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
padding: 22px 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 100%;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
cursor: pointer;
|
||||
}
|
||||
element-text {
|
||||
font: "feather 20";
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.5;
|
||||
}
|
||||
|
||||
element normal.normal,
|
||||
element alternate.normal {
|
||||
background-color: var(background-alt);
|
||||
text-color: var(foreground);
|
||||
}
|
||||
element normal.urgent,
|
||||
element alternate.urgent,
|
||||
element selected.active {
|
||||
background-color: var(urgent);
|
||||
text-color: var(background);
|
||||
}
|
||||
element normal.active,
|
||||
element alternate.active,
|
||||
element selected.urgent {
|
||||
background-color: var(active);
|
||||
text-color: var(background);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected);
|
||||
text-color: var(background);
|
||||
}
|
||||
148
config/i3/themes/bouquet/rofi/confirm.rasi
Normal file
148
config/i3/themes/bouquet/rofi/confirm.rasi
Normal file
@ -0,0 +1,148 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
show-icons: false;
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
/*
|
||||
USE_ICON=YES
|
||||
*/
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
transparency: "real";
|
||||
location: center;
|
||||
anchor: center;
|
||||
fullscreen: false;
|
||||
width: 300px;
|
||||
x-offset: 0px;
|
||||
y-offset: 0px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 10px;
|
||||
border-color: @selected;
|
||||
cursor: "default";
|
||||
background-color: @background;
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 30px;
|
||||
background-color: transparent;
|
||||
children: [ "message", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
padding: 0px;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
children: [ "textbox-prompt-colon", "prompt"];
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "";
|
||||
padding: 10px 14px;
|
||||
border-radius: 100%;
|
||||
background-color: @urgent;
|
||||
text-color: @background;
|
||||
}
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
border-radius: 20px;
|
||||
background-color: @active;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 100%;
|
||||
border-color: @selected;
|
||||
background-color: @background-alt;
|
||||
text-color: @foreground;
|
||||
}
|
||||
textbox {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.5;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 2;
|
||||
lines: 1;
|
||||
cycle: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
|
||||
spacing: 10px;
|
||||
background-color: transparent;
|
||||
cursor: "default";
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
padding: 5px;
|
||||
border: 0px solid;
|
||||
border-radius: 100%;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
cursor: pointer;
|
||||
}
|
||||
element-text {
|
||||
font: "feather 20";
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.5;
|
||||
}
|
||||
|
||||
element normal.normal,
|
||||
element alternate.normal {
|
||||
background-color: var(background-alt);
|
||||
text-color: var(foreground);
|
||||
}
|
||||
element normal.urgent,
|
||||
element alternate.urgent,
|
||||
element selected.active {
|
||||
background-color: var(urgent);
|
||||
text-color: var(background);
|
||||
}
|
||||
element normal.active,
|
||||
element alternate.active,
|
||||
element selected.urgent {
|
||||
background-color: var(active);
|
||||
text-color: var(background);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected);
|
||||
text-color: var(background);
|
||||
}
|
||||
318
config/i3/themes/bouquet/rofi/launcher.rasi
Normal file
318
config/i3/themes/bouquet/rofi/launcher.rasi
Normal file
@ -0,0 +1,318 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
modi: "drun,run,filebrowser,window";
|
||||
show-icons: true;
|
||||
display-drun: " Apps";
|
||||
display-run: " Run";
|
||||
display-filebrowser: " Files";
|
||||
display-window: " Windows";
|
||||
display-ssh: " SSH";
|
||||
drun-display-format: "{name}";
|
||||
window-format: "{c} · {t}";
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
* {
|
||||
border-colour: var(selected);
|
||||
handle-colour: var(selected);
|
||||
background-colour: var(background);
|
||||
foreground-colour: var(foreground);
|
||||
alternate-background: var(background-alt);
|
||||
normal-background: var(background);
|
||||
normal-foreground: var(foreground);
|
||||
urgent-background: var(urgent);
|
||||
urgent-foreground: var(background);
|
||||
active-background: var(active);
|
||||
active-foreground: var(background);
|
||||
selected-normal-background: var(selected);
|
||||
selected-normal-foreground: var(background);
|
||||
selected-urgent-background: var(active);
|
||||
selected-urgent-foreground: var(background);
|
||||
selected-active-background: var(urgent);
|
||||
selected-active-foreground: var(background);
|
||||
alternate-normal-background: var(background);
|
||||
alternate-normal-foreground: var(foreground);
|
||||
alternate-urgent-background: var(urgent);
|
||||
alternate-urgent-foreground: var(background);
|
||||
alternate-active-background: var(active);
|
||||
alternate-active-foreground: var(background);
|
||||
}
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
/* properties for window widget */
|
||||
transparency: "real";
|
||||
location: center;
|
||||
anchor: center;
|
||||
fullscreen: false;
|
||||
width: 600px;
|
||||
x-offset: 0px;
|
||||
y-offset: 0px;
|
||||
|
||||
/* properties for all widgets */
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 10px;
|
||||
border-color: @border-colour;
|
||||
cursor: "default";
|
||||
/* Backgroud Colors */
|
||||
background-color: @background-colour;
|
||||
/* Backgroud Image */
|
||||
//background-image: url("/path/to/image.png", none);
|
||||
/* Simple Linear Gradient */
|
||||
//background-image: linear-gradient(red, orange, pink, purple);
|
||||
/* Directional Linear Gradient */
|
||||
//background-image: linear-gradient(to bottom, pink, yellow, magenta);
|
||||
/* Angle Linear Gradient */
|
||||
//background-image: linear-gradient(45, cyan, purple, indigo);
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 20px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar", "message", "custombox" ];
|
||||
}
|
||||
|
||||
/*****----- A Custom Box -----*****/
|
||||
custombox {
|
||||
spacing: 10px;
|
||||
background-color: @background-colour;
|
||||
text-color: @foreground-colour;
|
||||
orientation: horizontal;
|
||||
children: [ "mode-switcher", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 6px 12px;
|
||||
border: 0px solid;
|
||||
border-radius: 8px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: @foreground-colour;
|
||||
children: [ "textbox-prompt-colon", "entry" ];
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
padding: 5px 0px;
|
||||
expand: false;
|
||||
str: "";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
entry {
|
||||
enabled: true;
|
||||
padding: 5px 0px;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
cursor: text;
|
||||
placeholder: "Search...";
|
||||
placeholder-color: inherit;
|
||||
}
|
||||
num-filtered-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-num-sep {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "/";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
num-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
case-indicator {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 1;
|
||||
lines: 6;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
fixed-height: true;
|
||||
fixed-columns: true;
|
||||
|
||||
spacing: 5px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: "default";
|
||||
}
|
||||
scrollbar {
|
||||
handle-width: 5px ;
|
||||
handle-color: @handle-colour;
|
||||
border-radius: 10px;
|
||||
background-color: @alternate-background;
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 8px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: pointer;
|
||||
}
|
||||
element normal.normal {
|
||||
background-color: var(normal-background);
|
||||
text-color: var(normal-foreground);
|
||||
}
|
||||
element normal.urgent {
|
||||
background-color: var(urgent-background);
|
||||
text-color: var(urgent-foreground);
|
||||
}
|
||||
element normal.active {
|
||||
background-color: var(active-background);
|
||||
text-color: var(active-foreground);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected-normal-background);
|
||||
text-color: var(selected-normal-foreground);
|
||||
}
|
||||
element selected.urgent {
|
||||
background-color: var(selected-urgent-background);
|
||||
text-color: var(selected-urgent-foreground);
|
||||
}
|
||||
element selected.active {
|
||||
background-color: var(selected-active-background);
|
||||
text-color: var(selected-active-foreground);
|
||||
}
|
||||
element alternate.normal {
|
||||
background-color: var(alternate-normal-background);
|
||||
text-color: var(alternate-normal-foreground);
|
||||
}
|
||||
element alternate.urgent {
|
||||
background-color: var(alternate-urgent-background);
|
||||
text-color: var(alternate-urgent-foreground);
|
||||
}
|
||||
element alternate.active {
|
||||
background-color: var(alternate-active-background);
|
||||
text-color: var(alternate-active-foreground);
|
||||
}
|
||||
element-icon {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
size: 24px;
|
||||
cursor: inherit;
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
highlight: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
/*****----- Mode Switcher -----*****/
|
||||
mode-switcher{
|
||||
enabled: true;
|
||||
expand: false;
|
||||
orientation: vertical;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
button {
|
||||
padding: 0px 20px 0px 20px;
|
||||
border: 0px solid;
|
||||
border-radius: 8px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
cursor: pointer;
|
||||
}
|
||||
button selected {
|
||||
background-color: var(selected-normal-background);
|
||||
text-color: var(selected-normal-foreground);
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
textbox {
|
||||
padding: 10px 12px;
|
||||
border: 0px solid;
|
||||
border-radius: 8px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: @foreground-colour;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
highlight: none;
|
||||
placeholder-color: @foreground-colour;
|
||||
blink: true;
|
||||
markup: true;
|
||||
}
|
||||
error-message {
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 8px;
|
||||
border-color: @border-colour;
|
||||
background-color: @background-colour;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
152
config/i3/themes/bouquet/rofi/music.rasi
Normal file
152
config/i3/themes/bouquet/rofi/music.rasi
Normal file
@ -0,0 +1,152 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
show-icons: false;
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
/*
|
||||
USE_ICON=YES
|
||||
*/
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
transparency: "real";
|
||||
location: center;
|
||||
anchor: center;
|
||||
fullscreen: false;
|
||||
width: 600px;
|
||||
x-offset: 0px;
|
||||
y-offset: 0px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 10px;
|
||||
border-color: @selected;
|
||||
cursor: "default";
|
||||
background-color: @background;
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 20px;
|
||||
margin: 0px;
|
||||
padding: 30px;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar", "listview", "message" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
padding: 0px;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
children: [ "dummy", "textbox-prompt-colon", "prompt", "dummy" ];
|
||||
}
|
||||
|
||||
dummy {
|
||||
expand: true;
|
||||
background-color: transparent;
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "";
|
||||
padding: 10px 14px;
|
||||
border-radius: 100%;
|
||||
background-color: @selected;
|
||||
text-color: @background;
|
||||
}
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
border-radius: 20px;
|
||||
background-color: @selected;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 100%;
|
||||
border-color: @selected;
|
||||
background-color: @background-alt;
|
||||
text-color: @foreground;
|
||||
}
|
||||
textbox {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.5;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 6;
|
||||
lines: 1;
|
||||
cycle: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
|
||||
spacing: 10px;
|
||||
background-color: transparent;
|
||||
cursor: "default";
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
padding: 22px 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 100%;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
cursor: pointer;
|
||||
}
|
||||
element-text {
|
||||
font: "feather 20";
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.5;
|
||||
}
|
||||
|
||||
element normal.normal,
|
||||
element alternate.normal {
|
||||
background-color: var(background-alt);
|
||||
text-color: var(foreground);
|
||||
}
|
||||
element normal.urgent,
|
||||
element alternate.urgent,
|
||||
element selected.active {
|
||||
background-color: var(urgent);
|
||||
text-color: var(background);
|
||||
}
|
||||
element normal.active,
|
||||
element alternate.active,
|
||||
element selected.urgent {
|
||||
background-color: var(active);
|
||||
text-color: var(background);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected);
|
||||
text-color: var(background);
|
||||
}
|
||||
319
config/i3/themes/bouquet/rofi/networkmenu.rasi
Normal file
319
config/i3/themes/bouquet/rofi/networkmenu.rasi
Normal file
@ -0,0 +1,319 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
modi: "drun,run,filebrowser,window";
|
||||
show-icons: false;
|
||||
display-drun: " Apps";
|
||||
display-run: " Run";
|
||||
display-filebrowser: " Files";
|
||||
display-window: " Windows";
|
||||
display-ssh: " SSH";
|
||||
drun-display-format: "{name}";
|
||||
window-format: "{w} · {c} · {t}";
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
* {
|
||||
border-colour: var(selected);
|
||||
handle-colour: var(selected);
|
||||
background-colour: var(background);
|
||||
foreground-colour: var(foreground);
|
||||
alternate-background: var(background-alt);
|
||||
normal-background: var(background);
|
||||
normal-foreground: var(foreground);
|
||||
urgent-background: var(urgent);
|
||||
urgent-foreground: var(background);
|
||||
active-background: var(active);
|
||||
active-foreground: var(background);
|
||||
selected-normal-background: var(selected);
|
||||
selected-normal-foreground: var(background);
|
||||
selected-urgent-background: var(active);
|
||||
selected-urgent-foreground: var(background);
|
||||
selected-active-background: var(urgent);
|
||||
selected-active-foreground: var(background);
|
||||
alternate-normal-background: var(background);
|
||||
alternate-normal-foreground: var(foreground);
|
||||
alternate-urgent-background: var(urgent);
|
||||
alternate-urgent-foreground: var(background);
|
||||
alternate-active-background: var(active);
|
||||
alternate-active-foreground: var(background);
|
||||
}
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
/* properties for window widget */
|
||||
transparency: "real";
|
||||
location: center;
|
||||
anchor: center;
|
||||
fullscreen: false;
|
||||
width: 450px;
|
||||
height: 430px;
|
||||
x-offset: 0px;
|
||||
y-offset: 0px;
|
||||
|
||||
/* properties for all widgets */
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 10px;
|
||||
border-color: @border-colour;
|
||||
cursor: "default";
|
||||
/* Backgroud Colors */
|
||||
background-color: @background-colour;
|
||||
/* Backgroud Image */
|
||||
//background-image: url("/path/to/image.png", none);
|
||||
/* Simple Linear Gradient */
|
||||
//background-image: linear-gradient(red, orange, pink, purple);
|
||||
/* Directional Linear Gradient */
|
||||
//background-image: linear-gradient(to bottom, pink, yellow, magenta);
|
||||
/* Angle Linear Gradient */
|
||||
//background-image: linear-gradient(45, cyan, purple, indigo);
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 20px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- A Custom Box -----*****/
|
||||
custombox {
|
||||
spacing: 10px;
|
||||
background-color: @background-colour;
|
||||
text-color: @foreground-colour;
|
||||
orientation: horizontal;
|
||||
children: [ "mode-switcher", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 10px 12px;
|
||||
border: 0px solid;
|
||||
border-radius: 8px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: @foreground-colour;
|
||||
children: [ "textbox-prompt-colon", "prompt", "entry" ];
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
padding: 0px;
|
||||
expand: false;
|
||||
str: "直";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
entry {
|
||||
enabled: true;
|
||||
padding: 0px;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
cursor: text;
|
||||
placeholder: "";
|
||||
placeholder-color: inherit;
|
||||
}
|
||||
num-filtered-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-num-sep {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "/";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
num-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
case-indicator {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 1;
|
||||
lines: 6;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
fixed-height: true;
|
||||
fixed-columns: true;
|
||||
|
||||
spacing: 5px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: "default";
|
||||
}
|
||||
scrollbar {
|
||||
handle-width: 5px ;
|
||||
handle-color: @handle-colour;
|
||||
border-radius: 10px;
|
||||
background-color: @alternate-background;
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 8px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: pointer;
|
||||
}
|
||||
element normal.normal {
|
||||
background-color: var(normal-background);
|
||||
text-color: var(normal-foreground);
|
||||
}
|
||||
element normal.urgent {
|
||||
background-color: var(urgent-background);
|
||||
text-color: var(urgent-foreground);
|
||||
}
|
||||
element normal.active {
|
||||
background-color: var(active-background);
|
||||
text-color: var(active-foreground);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected-normal-background);
|
||||
text-color: var(selected-normal-foreground);
|
||||
}
|
||||
element selected.urgent {
|
||||
background-color: var(selected-urgent-background);
|
||||
text-color: var(selected-urgent-foreground);
|
||||
}
|
||||
element selected.active {
|
||||
background-color: var(selected-active-background);
|
||||
text-color: var(selected-active-foreground);
|
||||
}
|
||||
element alternate.normal {
|
||||
background-color: var(alternate-normal-background);
|
||||
text-color: var(alternate-normal-foreground);
|
||||
}
|
||||
element alternate.urgent {
|
||||
background-color: var(alternate-urgent-background);
|
||||
text-color: var(alternate-urgent-foreground);
|
||||
}
|
||||
element alternate.active {
|
||||
background-color: var(alternate-active-background);
|
||||
text-color: var(alternate-active-foreground);
|
||||
}
|
||||
element-icon {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
size: 24px;
|
||||
cursor: inherit;
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
highlight: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
/*****----- Mode Switcher -----*****/
|
||||
mode-switcher{
|
||||
enabled: true;
|
||||
expand: false;
|
||||
orientation: vertical;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
button {
|
||||
padding: 0px 20px 0px 20px;
|
||||
border: 0px solid;
|
||||
border-radius: 8px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
cursor: pointer;
|
||||
}
|
||||
button selected {
|
||||
background-color: var(selected-normal-background);
|
||||
text-color: var(selected-normal-foreground);
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
textbox {
|
||||
padding: 10px 12px;
|
||||
border: 0px solid;
|
||||
border-radius: 8px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: @foreground-colour;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
highlight: none;
|
||||
placeholder-color: @foreground-colour;
|
||||
blink: true;
|
||||
markup: true;
|
||||
}
|
||||
error-message {
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 8px;
|
||||
border-color: @border-colour;
|
||||
background-color: @background-colour;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
152
config/i3/themes/bouquet/rofi/powermenu.rasi
Normal file
152
config/i3/themes/bouquet/rofi/powermenu.rasi
Normal file
@ -0,0 +1,152 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
show-icons: false;
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
/*
|
||||
USE_ICON=YES
|
||||
*/
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
transparency: "real";
|
||||
location: center;
|
||||
anchor: center;
|
||||
fullscreen: false;
|
||||
width: 600px;
|
||||
x-offset: 0px;
|
||||
y-offset: 0px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 10px;
|
||||
border-color: @selected;
|
||||
cursor: "default";
|
||||
background-color: @background;
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 20px;
|
||||
margin: 0px;
|
||||
padding: 30px;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar", "listview", "message" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
padding: 0px;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
children: [ "dummy", "textbox-prompt-colon", "prompt", "dummy" ];
|
||||
}
|
||||
|
||||
dummy {
|
||||
expand: true;
|
||||
background-color: transparent;
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "";
|
||||
padding: 10px 14px;
|
||||
border-radius: 100%;
|
||||
background-color: @selected;
|
||||
text-color: @background;
|
||||
}
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
border-radius: 20px;
|
||||
background-color: @selected;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 100%;
|
||||
border-color: @selected;
|
||||
background-color: @background-alt;
|
||||
text-color: @foreground;
|
||||
}
|
||||
textbox {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.5;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 6;
|
||||
lines: 1;
|
||||
cycle: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
|
||||
spacing: 10px;
|
||||
background-color: transparent;
|
||||
cursor: "default";
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
padding: 22px 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 100%;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
cursor: pointer;
|
||||
}
|
||||
element-text {
|
||||
font: "feather 20";
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.5;
|
||||
}
|
||||
|
||||
element normal.normal,
|
||||
element alternate.normal {
|
||||
background-color: var(background-alt);
|
||||
text-color: var(foreground);
|
||||
}
|
||||
element normal.urgent,
|
||||
element alternate.urgent,
|
||||
element selected.active {
|
||||
background-color: var(urgent);
|
||||
text-color: var(background);
|
||||
}
|
||||
element normal.active,
|
||||
element alternate.active,
|
||||
element selected.urgent {
|
||||
background-color: var(active);
|
||||
text-color: var(background);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected);
|
||||
text-color: var(background);
|
||||
}
|
||||
318
config/i3/themes/bouquet/rofi/runner.rasi
Normal file
318
config/i3/themes/bouquet/rofi/runner.rasi
Normal file
@ -0,0 +1,318 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
modi: "run";
|
||||
show-icons: true;
|
||||
display-drun: " Apps";
|
||||
display-run: " Run";
|
||||
display-filebrowser: " Files";
|
||||
display-window: " Windows";
|
||||
display-ssh: " SSH";
|
||||
drun-display-format: "{name}";
|
||||
window-format: "{w} · {c} · {t}";
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
* {
|
||||
border-colour: var(selected);
|
||||
handle-colour: var(selected);
|
||||
background-colour: var(background);
|
||||
foreground-colour: var(foreground);
|
||||
alternate-background: var(background-alt);
|
||||
normal-background: var(background);
|
||||
normal-foreground: var(foreground);
|
||||
urgent-background: var(urgent);
|
||||
urgent-foreground: var(background);
|
||||
active-background: var(active);
|
||||
active-foreground: var(background);
|
||||
selected-normal-background: var(selected);
|
||||
selected-normal-foreground: var(background);
|
||||
selected-urgent-background: var(active);
|
||||
selected-urgent-foreground: var(background);
|
||||
selected-active-background: var(urgent);
|
||||
selected-active-foreground: var(background);
|
||||
alternate-normal-background: var(background);
|
||||
alternate-normal-foreground: var(foreground);
|
||||
alternate-urgent-background: var(urgent);
|
||||
alternate-urgent-foreground: var(background);
|
||||
alternate-active-background: var(active);
|
||||
alternate-active-foreground: var(background);
|
||||
}
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
/* properties for window widget */
|
||||
transparency: "real";
|
||||
location: center;
|
||||
anchor: center;
|
||||
fullscreen: false;
|
||||
width: 450px;
|
||||
x-offset: 0px;
|
||||
y-offset: 0px;
|
||||
|
||||
/* properties for all widgets */
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 10px;
|
||||
border-color: @border-colour;
|
||||
cursor: "default";
|
||||
/* Backgroud Colors */
|
||||
background-color: @background-colour;
|
||||
/* Backgroud Image */
|
||||
//background-image: url("/path/to/image.png", none);
|
||||
/* Simple Linear Gradient */
|
||||
//background-image: linear-gradient(red, orange, pink, purple);
|
||||
/* Directional Linear Gradient */
|
||||
//background-image: linear-gradient(to bottom, pink, yellow, magenta);
|
||||
/* Angle Linear Gradient */
|
||||
//background-image: linear-gradient(45, cyan, purple, indigo);
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 20px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- A Custom Box -----*****/
|
||||
custombox {
|
||||
spacing: 10px;
|
||||
background-color: @background-colour;
|
||||
text-color: @foreground-colour;
|
||||
orientation: horizontal;
|
||||
children: [ "mode-switcher", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 6px 12px;
|
||||
border: 0px solid;
|
||||
border-radius: 8px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: @foreground-colour;
|
||||
children: [ "textbox-prompt-colon", "entry" ];
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
padding: 5px 0px;
|
||||
expand: false;
|
||||
str: "";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
entry {
|
||||
enabled: true;
|
||||
padding: 5px 0px;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
cursor: text;
|
||||
placeholder: "Run...";
|
||||
placeholder-color: inherit;
|
||||
}
|
||||
num-filtered-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-num-sep {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "/";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
num-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
case-indicator {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 1;
|
||||
lines: 6;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
fixed-height: true;
|
||||
fixed-columns: true;
|
||||
|
||||
spacing: 5px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: "default";
|
||||
}
|
||||
scrollbar {
|
||||
handle-width: 5px ;
|
||||
handle-color: @handle-colour;
|
||||
border-radius: 10px;
|
||||
background-color: @alternate-background;
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 8px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: pointer;
|
||||
}
|
||||
element normal.normal {
|
||||
background-color: var(normal-background);
|
||||
text-color: var(normal-foreground);
|
||||
}
|
||||
element normal.urgent {
|
||||
background-color: var(urgent-background);
|
||||
text-color: var(urgent-foreground);
|
||||
}
|
||||
element normal.active {
|
||||
background-color: var(active-background);
|
||||
text-color: var(active-foreground);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected-normal-background);
|
||||
text-color: var(selected-normal-foreground);
|
||||
}
|
||||
element selected.urgent {
|
||||
background-color: var(selected-urgent-background);
|
||||
text-color: var(selected-urgent-foreground);
|
||||
}
|
||||
element selected.active {
|
||||
background-color: var(selected-active-background);
|
||||
text-color: var(selected-active-foreground);
|
||||
}
|
||||
element alternate.normal {
|
||||
background-color: var(alternate-normal-background);
|
||||
text-color: var(alternate-normal-foreground);
|
||||
}
|
||||
element alternate.urgent {
|
||||
background-color: var(alternate-urgent-background);
|
||||
text-color: var(alternate-urgent-foreground);
|
||||
}
|
||||
element alternate.active {
|
||||
background-color: var(alternate-active-background);
|
||||
text-color: var(alternate-active-foreground);
|
||||
}
|
||||
element-icon {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
size: 24px;
|
||||
cursor: inherit;
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
highlight: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
/*****----- Mode Switcher -----*****/
|
||||
mode-switcher{
|
||||
enabled: true;
|
||||
expand: false;
|
||||
orientation: vertical;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
button {
|
||||
padding: 0px 20px 0px 20px;
|
||||
border: 0px solid;
|
||||
border-radius: 8px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
cursor: pointer;
|
||||
}
|
||||
button selected {
|
||||
background-color: var(selected-normal-background);
|
||||
text-color: var(selected-normal-foreground);
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
textbox {
|
||||
padding: 10px 12px;
|
||||
border: 0px solid;
|
||||
border-radius: 8px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: @foreground-colour;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
highlight: none;
|
||||
placeholder-color: @foreground-colour;
|
||||
blink: true;
|
||||
markup: true;
|
||||
}
|
||||
error-message {
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 8px;
|
||||
border-color: @border-colour;
|
||||
background-color: @background-colour;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
152
config/i3/themes/bouquet/rofi/screenshot.rasi
Normal file
152
config/i3/themes/bouquet/rofi/screenshot.rasi
Normal file
@ -0,0 +1,152 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
show-icons: false;
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
/*
|
||||
USE_ICON=YES
|
||||
*/
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
transparency: "real";
|
||||
location: center;
|
||||
anchor: center;
|
||||
fullscreen: false;
|
||||
width: 500px;
|
||||
x-offset: 0px;
|
||||
y-offset: 0px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 10px;
|
||||
border-color: @selected;
|
||||
cursor: "default";
|
||||
background-color: @background;
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 20px;
|
||||
margin: 0px;
|
||||
padding: 30px;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar", "listview", "message" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
padding: 0px;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
children: [ "dummy", "textbox-prompt-colon", "prompt", "dummy" ];
|
||||
}
|
||||
|
||||
dummy {
|
||||
expand: true;
|
||||
background-color: transparent;
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "";
|
||||
padding: 10px 12px;
|
||||
border-radius: 100%;
|
||||
background-color: @selected;
|
||||
text-color: @background;
|
||||
}
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
border-radius: 20px;
|
||||
background-color: @selected;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 100%;
|
||||
border-color: @selected;
|
||||
background-color: @background-alt;
|
||||
text-color: @foreground;
|
||||
}
|
||||
textbox {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.5;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 5;
|
||||
lines: 1;
|
||||
cycle: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
|
||||
spacing: 10px;
|
||||
background-color: transparent;
|
||||
cursor: "default";
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
padding: 22px 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 100%;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
cursor: pointer;
|
||||
}
|
||||
element-text {
|
||||
font: "feather 20";
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.5;
|
||||
}
|
||||
|
||||
element normal.normal,
|
||||
element alternate.normal {
|
||||
background-color: var(background-alt);
|
||||
text-color: var(foreground);
|
||||
}
|
||||
element normal.urgent,
|
||||
element alternate.urgent,
|
||||
element selected.active {
|
||||
background-color: var(urgent);
|
||||
text-color: var(background);
|
||||
}
|
||||
element normal.active,
|
||||
element alternate.active,
|
||||
element selected.urgent {
|
||||
background-color: var(active);
|
||||
text-color: var(background);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected);
|
||||
text-color: var(background);
|
||||
}
|
||||
12
config/i3/themes/bouquet/rofi/shared/colors.rasi
Normal file
12
config/i3/themes/bouquet/rofi/shared/colors.rasi
Normal file
@ -0,0 +1,12 @@
|
||||
/* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com> */
|
||||
|
||||
/* Colors */
|
||||
|
||||
* {
|
||||
background: #091927;
|
||||
background-alt: #0c2133;
|
||||
foreground: #e1e7ee;
|
||||
selected: #8DA2B3;
|
||||
active: #7FB2E1;
|
||||
urgent: #77A7D6;
|
||||
}
|
||||
7
config/i3/themes/bouquet/rofi/shared/fonts.rasi
Normal file
7
config/i3/themes/bouquet/rofi/shared/fonts.rasi
Normal file
@ -0,0 +1,7 @@
|
||||
/* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com> */
|
||||
|
||||
/* Text Font */
|
||||
|
||||
* {
|
||||
font: "Iosevka 10";
|
||||
}
|
||||
319
config/i3/themes/bouquet/rofi/themes.rasi
Normal file
319
config/i3/themes/bouquet/rofi/themes.rasi
Normal file
@ -0,0 +1,319 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
modi: "drun,run,filebrowser,window";
|
||||
show-icons: false;
|
||||
display-drun: " Apps";
|
||||
display-run: " Run";
|
||||
display-filebrowser: " Files";
|
||||
display-window: " Windows";
|
||||
display-ssh: " SSH";
|
||||
drun-display-format: "{name}";
|
||||
window-format: "{w} · {c} · {t}";
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
* {
|
||||
border-colour: var(selected);
|
||||
handle-colour: var(selected);
|
||||
background-colour: var(background);
|
||||
foreground-colour: var(foreground);
|
||||
alternate-background: var(background-alt);
|
||||
normal-background: var(background);
|
||||
normal-foreground: var(foreground);
|
||||
urgent-background: var(urgent);
|
||||
urgent-foreground: var(background);
|
||||
active-background: var(active);
|
||||
active-foreground: var(background);
|
||||
selected-normal-background: var(selected);
|
||||
selected-normal-foreground: var(background);
|
||||
selected-urgent-background: var(active);
|
||||
selected-urgent-foreground: var(background);
|
||||
selected-active-background: var(urgent);
|
||||
selected-active-foreground: var(background);
|
||||
alternate-normal-background: var(background);
|
||||
alternate-normal-foreground: var(foreground);
|
||||
alternate-urgent-background: var(urgent);
|
||||
alternate-urgent-foreground: var(background);
|
||||
alternate-active-background: var(active);
|
||||
alternate-active-foreground: var(background);
|
||||
}
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
/* properties for window widget */
|
||||
transparency: "real";
|
||||
location: center;
|
||||
anchor: center;
|
||||
fullscreen: false;
|
||||
width: 450px;
|
||||
x-offset: 0px;
|
||||
y-offset: 0px;
|
||||
|
||||
/* properties for all widgets */
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 10px;
|
||||
border-color: @border-colour;
|
||||
cursor: "default";
|
||||
/* Backgroud Colors */
|
||||
background-color: @background-colour;
|
||||
/* Backgroud Image */
|
||||
//background-image: url("/path/to/image.png", none);
|
||||
/* Simple Linear Gradient */
|
||||
//background-image: linear-gradient(red, orange, pink, purple);
|
||||
/* Directional Linear Gradient */
|
||||
//background-image: linear-gradient(to bottom, pink, yellow, magenta);
|
||||
/* Angle Linear Gradient */
|
||||
//background-image: linear-gradient(45, cyan, purple, indigo);
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 20px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- A Custom Box -----*****/
|
||||
custombox {
|
||||
spacing: 10px;
|
||||
background-color: @background-colour;
|
||||
text-color: @foreground-colour;
|
||||
orientation: horizontal;
|
||||
children: [ "mode-switcher", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 6px 12px;
|
||||
border: 0px solid;
|
||||
border-radius: 8px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: @foreground-colour;
|
||||
children: [ "textbox-prompt-colon", "prompt" ];
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 5px 0px;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
padding: 5px 0px;
|
||||
expand: false;
|
||||
str: "";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
entry {
|
||||
enabled: true;
|
||||
padding: 5px 0px;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
cursor: text;
|
||||
placeholder: "Run...";
|
||||
placeholder-color: inherit;
|
||||
}
|
||||
num-filtered-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-num-sep {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "/";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
num-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
case-indicator {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 1;
|
||||
lines: 6;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
fixed-height: true;
|
||||
fixed-columns: true;
|
||||
|
||||
spacing: 5px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: "default";
|
||||
}
|
||||
scrollbar {
|
||||
handle-width: 5px ;
|
||||
handle-color: @handle-colour;
|
||||
border-radius: 10px;
|
||||
background-color: @alternate-background;
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 8px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: pointer;
|
||||
}
|
||||
element normal.normal {
|
||||
background-color: var(normal-background);
|
||||
text-color: var(normal-foreground);
|
||||
}
|
||||
element normal.urgent {
|
||||
background-color: var(urgent-background);
|
||||
text-color: var(urgent-foreground);
|
||||
}
|
||||
element normal.active {
|
||||
background-color: var(active-background);
|
||||
text-color: var(active-foreground);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected-normal-background);
|
||||
text-color: var(selected-normal-foreground);
|
||||
}
|
||||
element selected.urgent {
|
||||
background-color: var(selected-urgent-background);
|
||||
text-color: var(selected-urgent-foreground);
|
||||
}
|
||||
element selected.active {
|
||||
background-color: var(selected-active-background);
|
||||
text-color: var(selected-active-foreground);
|
||||
}
|
||||
element alternate.normal {
|
||||
background-color: var(alternate-normal-background);
|
||||
text-color: var(alternate-normal-foreground);
|
||||
}
|
||||
element alternate.urgent {
|
||||
background-color: var(alternate-urgent-background);
|
||||
text-color: var(alternate-urgent-foreground);
|
||||
}
|
||||
element alternate.active {
|
||||
background-color: var(alternate-active-background);
|
||||
text-color: var(alternate-active-foreground);
|
||||
}
|
||||
element-icon {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
size: 24px;
|
||||
cursor: inherit;
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
highlight: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
/*****----- Mode Switcher -----*****/
|
||||
mode-switcher{
|
||||
enabled: true;
|
||||
expand: false;
|
||||
orientation: vertical;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
button {
|
||||
padding: 0px 20px 0px 20px;
|
||||
border: 0px solid;
|
||||
border-radius: 8px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
cursor: pointer;
|
||||
}
|
||||
button selected {
|
||||
background-color: var(selected-normal-background);
|
||||
text-color: var(selected-normal-foreground);
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
textbox {
|
||||
padding: 10px 12px;
|
||||
border: 0px solid;
|
||||
border-radius: 8px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: @foreground-colour;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
highlight: none;
|
||||
placeholder-color: @foreground-colour;
|
||||
blink: true;
|
||||
markup: true;
|
||||
}
|
||||
error-message {
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 8px;
|
||||
border-color: @border-colour;
|
||||
background-color: @background-colour;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
318
config/i3/themes/bouquet/rofi/windows.rasi
Normal file
318
config/i3/themes/bouquet/rofi/windows.rasi
Normal file
@ -0,0 +1,318 @@
|
||||
/**
|
||||
* Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
modi: "window";
|
||||
show-icons: true;
|
||||
display-drun: " Apps";
|
||||
display-run: " Run";
|
||||
display-filebrowser: " Files";
|
||||
display-window: " Windows";
|
||||
display-ssh: " SSH";
|
||||
drun-display-format: "{name}";
|
||||
window-format: "{c} · {t}";
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
* {
|
||||
border-colour: var(selected);
|
||||
handle-colour: var(selected);
|
||||
background-colour: var(background);
|
||||
foreground-colour: var(foreground);
|
||||
alternate-background: var(background-alt);
|
||||
normal-background: var(background);
|
||||
normal-foreground: var(foreground);
|
||||
urgent-background: var(urgent);
|
||||
urgent-foreground: var(background);
|
||||
active-background: var(active);
|
||||
active-foreground: var(background);
|
||||
selected-normal-background: var(selected);
|
||||
selected-normal-foreground: var(background);
|
||||
selected-urgent-background: var(active);
|
||||
selected-urgent-foreground: var(background);
|
||||
selected-active-background: var(urgent);
|
||||
selected-active-foreground: var(background);
|
||||
alternate-normal-background: var(background);
|
||||
alternate-normal-foreground: var(foreground);
|
||||
alternate-urgent-background: var(urgent);
|
||||
alternate-urgent-foreground: var(background);
|
||||
alternate-active-background: var(active);
|
||||
alternate-active-foreground: var(background);
|
||||
}
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
/* properties for window widget */
|
||||
transparency: "real";
|
||||
location: center;
|
||||
anchor: center;
|
||||
fullscreen: false;
|
||||
width: 500px;
|
||||
x-offset: 0px;
|
||||
y-offset: 0px;
|
||||
|
||||
/* properties for all widgets */
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 10px;
|
||||
border-color: @border-colour;
|
||||
cursor: "default";
|
||||
/* Backgroud Colors */
|
||||
background-color: @background-colour;
|
||||
/* Backgroud Image */
|
||||
//background-image: url("/path/to/image.png", none);
|
||||
/* Simple Linear Gradient */
|
||||
//background-image: linear-gradient(red, orange, pink, purple);
|
||||
/* Directional Linear Gradient */
|
||||
//background-image: linear-gradient(to bottom, pink, yellow, magenta);
|
||||
/* Angle Linear Gradient */
|
||||
//background-image: linear-gradient(45, cyan, purple, indigo);
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 20px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- A Custom Box -----*****/
|
||||
custombox {
|
||||
spacing: 10px;
|
||||
background-color: @background-colour;
|
||||
text-color: @foreground-colour;
|
||||
orientation: horizontal;
|
||||
children: [ "mode-switcher", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 6px 12px;
|
||||
border: 0px solid;
|
||||
border-radius: 8px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: @foreground-colour;
|
||||
children: [ "textbox-prompt-colon", "entry" ];
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
padding: 5px 0px;
|
||||
expand: false;
|
||||
str: "";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
entry {
|
||||
enabled: true;
|
||||
padding: 5px 0px;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
cursor: text;
|
||||
placeholder: "Filter...";
|
||||
placeholder-color: inherit;
|
||||
}
|
||||
num-filtered-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-num-sep {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "/";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
num-rows {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
case-indicator {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 1;
|
||||
lines: 6;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
fixed-height: true;
|
||||
fixed-columns: true;
|
||||
|
||||
spacing: 5px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: "default";
|
||||
}
|
||||
scrollbar {
|
||||
handle-width: 5px ;
|
||||
handle-color: @handle-colour;
|
||||
border-radius: 10px;
|
||||
background-color: @alternate-background;
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 8px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: pointer;
|
||||
}
|
||||
element normal.normal {
|
||||
background-color: var(normal-background);
|
||||
text-color: var(normal-foreground);
|
||||
}
|
||||
element normal.urgent {
|
||||
background-color: var(urgent-background);
|
||||
text-color: var(urgent-foreground);
|
||||
}
|
||||
element normal.active {
|
||||
background-color: var(active-background);
|
||||
text-color: var(active-foreground);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected-normal-background);
|
||||
text-color: var(selected-normal-foreground);
|
||||
}
|
||||
element selected.urgent {
|
||||
background-color: var(selected-urgent-background);
|
||||
text-color: var(selected-urgent-foreground);
|
||||
}
|
||||
element selected.active {
|
||||
background-color: var(selected-active-background);
|
||||
text-color: var(selected-active-foreground);
|
||||
}
|
||||
element alternate.normal {
|
||||
background-color: var(alternate-normal-background);
|
||||
text-color: var(alternate-normal-foreground);
|
||||
}
|
||||
element alternate.urgent {
|
||||
background-color: var(alternate-urgent-background);
|
||||
text-color: var(alternate-urgent-foreground);
|
||||
}
|
||||
element alternate.active {
|
||||
background-color: var(alternate-active-background);
|
||||
text-color: var(alternate-active-foreground);
|
||||
}
|
||||
element-icon {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
size: 24px;
|
||||
cursor: inherit;
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
highlight: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
/*****----- Mode Switcher -----*****/
|
||||
mode-switcher{
|
||||
enabled: true;
|
||||
expand: false;
|
||||
orientation: vertical;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
button {
|
||||
padding: 0px 20px 0px 20px;
|
||||
border: 0px solid;
|
||||
border-radius: 8px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
cursor: pointer;
|
||||
}
|
||||
button selected {
|
||||
background-color: var(selected-normal-background);
|
||||
text-color: var(selected-normal-foreground);
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
textbox {
|
||||
padding: 10px 12px;
|
||||
border: 0px solid;
|
||||
border-radius: 8px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: @foreground-colour;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
highlight: none;
|
||||
placeholder-color: @foreground-colour;
|
||||
blink: true;
|
||||
markup: true;
|
||||
}
|
||||
error-message {
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 8px;
|
||||
border-color: @border-colour;
|
||||
background-color: @background-colour;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user