services: Add autostarting dropdown-terminal
This commit is contained in:
parent
440629f3c3
commit
1c45202f18
4 changed files with 46 additions and 9 deletions
|
@ -90,8 +90,8 @@ bindsym $mod+ctrl+v sticky toggle
|
||||||
|
|
||||||
# set up scratch pad for todo and 'drop-down' terminal
|
# set up scratch pad for todo and 'drop-down' terminal
|
||||||
# call scratchpads to current workspace -- scratchpads started on i3 starting (see end of file)
|
# call scratchpads to current workspace -- scratchpads started on i3 starting (see end of file)
|
||||||
bindsym $mod+t [class="Alacritty" instance="scratchpad" title="todo.md"] scratchpad show
|
bindsym $mod+t [class="scratchpad" title="dropdown-todo"] scratchpad show
|
||||||
bindsym $mod+Shift+Return [class="Alacritty" instance="scratchpad" title="dropdown"] scratchpad show
|
bindsym $mod+Shift+Return [class="scratchpad" title="dropdown-terminal"] scratchpad show
|
||||||
|
|
||||||
# GAP MANAGEMENT
|
# GAP MANAGEMENT
|
||||||
# disable titles and borders, necessary for i3gaps to work apparently
|
# disable titles and borders, necessary for i3gaps to work apparently
|
||||||
|
@ -196,10 +196,13 @@ for_window [class="^spotify$"] move to workspace 10
|
||||||
|
|
||||||
# set up scratch pad for todo and 'drop-down' terminal
|
# set up scratch pad for todo and 'drop-down' terminal
|
||||||
# to be called to current workspace when needed
|
# to be called to current workspace when needed
|
||||||
exec --no-startup-id alacritty --title "todo.md" --class "scratchpad,Alacritty" -e nvim -c ":set nonumber norelativenumber noshowmode noruler laststatus=0 noshowcmd shortmess=F" ~/todo.md
|
exec --no-startup-id alacritty --title "dropdown-todo" --class "Alacritty,scratchpad" -e nvim -c ":set nonumber norelativenumber noshowmode noruler laststatus=0 noshowcmd shortmess=F" ~/documents/records/todo.md
|
||||||
exec --no-startup-id alacritty --title "dropdown" --class scratchpad,Alacritty
|
|
||||||
for_window [class="Alacritty" instance="scratchpad"] floating enable
|
# windows with class floating will automatically float
|
||||||
for_window [class="Alacritty" instance="scratchpad"] move scratchpad
|
# windows with class scratchpad will automatically float and be sent to the scratchpad
|
||||||
|
for_window [class="floating"] floating enable
|
||||||
|
for_window [class="scratchpad"] floating enable
|
||||||
|
for_window [class="scratchpad"] move scratchpad
|
||||||
|
|
||||||
# autostart often used apps
|
# autostart often used apps
|
||||||
# needs to be done like this to both automatically start the apps on correct workspace
|
# needs to be done like this to both automatically start the apps on correct workspace
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
../dropdown-terminal.service
|
11
services/.config/systemd/user/dropdown-terminal.service
Normal file
11
services/.config/systemd/user/dropdown-terminal.service
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Alacritty window hidden on i3 scratchpad
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
# workaround to allow relative executable invocation (i.e. current users' home dir)
|
||||||
|
ExecStart=/bin/bash -c 'alacritty --title "dropdown-terminal" --class Alacritty,scratchpad'
|
||||||
|
Restart=always
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
|
@ -3,8 +3,13 @@
|
||||||
This module uses `systemd` to provide various services for the user running the dotfiles.
|
This module uses `systemd` to provide various services for the user running the dotfiles.
|
||||||
The services will get moved into the correct `.config` directory for `systemd` to pick them up as user services.
|
The services will get moved into the correct `.config` directory for `systemd` to pick them up as user services.
|
||||||
|
|
||||||
They will, for now, *not* be automatically enabled when installing the dotfiles. This is pending changes.
|
They are, for now, *automatically* enabled when installing the dotfiles. This is pending changes.
|
||||||
They can be enabled as needed by invoking `systemctl --user enable [service]`. Be aware that
|
They can be enabled or disabled as needed by invoking `systemctl --user enable|disable [service]`.
|
||||||
|
Be aware that, for the services to work correctly out of the box all the following applications have to exist on the system:
|
||||||
|
`an2linuxserver`, `dunst`, `greenclip`, `keybase`, `redshift`.
|
||||||
|
If they are not found, their service will fail silently (well, with a systemd error log, but who checks *those* first thing...)
|
||||||
|
|
||||||
|
Lastly, the directory `~/documents/notes/uni` will begin to be synced with `git`, so will need a) `git` installed, b) the directory to exist as a `git` directory, c) to be disabled if you do not want this directory to be continually synced.
|
||||||
|
|
||||||
## Why systemd
|
## Why systemd
|
||||||
|
|
||||||
|
@ -25,9 +30,18 @@ So what that essentially means: this service module uses `systemd` *for now*.
|
||||||
It might change to something else in the future.
|
It might change to something else in the future.
|
||||||
It might also not be written very well, since I am using it to adopt a mental mapping of `systemd` at the same time.
|
It might also not be written very well, since I am using it to adopt a mental mapping of `systemd` at the same time.
|
||||||
|
|
||||||
|
## Drop-in Changes to services
|
||||||
|
|
||||||
|
There are, for now, small changes to the services that get installed by default with their arch packages: `greenclip` and `redshift`.
|
||||||
|
Both need a running X server for their program to start successfully, and both are repeatedly run way too fast by systemd by default and would crash.
|
||||||
|
I have not yet created a new target solely for X having started
|
||||||
|
(and by default you can not access system-wide systemd targets from a user-wide service),
|
||||||
|
so in the meantime these changes simply make the programs wait longer before trying to restart.
|
||||||
|
This generally gives ample time for the services to start correctly by themselves.
|
||||||
|
|
||||||
## Commit Notes service
|
## Commit Notes service
|
||||||
|
|
||||||
This service keeps my university note directory in sync with a remote origin.
|
This service `uni_notes_sync.service` keeps my university note directory in sync with a remote origin.
|
||||||
The script behind it (`git-sync`) can be used more generally to keep any git directory in sync.
|
The script behind it (`git-sync`) can be used more generally to keep any git directory in sync.
|
||||||
|
|
||||||
The idea behind the services is: commit asap, push when finished.
|
The idea behind the services is: commit asap, push when finished.
|
||||||
|
@ -38,3 +52,11 @@ In effect this means, using the default values, the service will commit any chan
|
||||||
|
|
||||||
The two cycles can be changed independently from each other via the environment variables mentioned above so that, for example, the repository can be pushed every single time a commit takes place, or commits can be checked for on faster or shorter intervals.
|
The two cycles can be changed independently from each other via the environment variables mentioned above so that, for example, the repository can be pushed every single time a commit takes place, or commits can be checked for on faster or shorter intervals.
|
||||||
As another example, if you want to check for changes every 30 seconds but still push every hour, you would do `GS_TIME_TO_COMMIT=30` and `GS_UNCHANGED_RUNS_TO_PUSH=120`.
|
As another example, if you want to check for changes every 30 seconds but still push every hour, you would do `GS_TIME_TO_COMMIT=30` and `GS_UNCHANGED_RUNS_TO_PUSH=120`.
|
||||||
|
|
||||||
|
## Dropdown Terminal service
|
||||||
|
|
||||||
|
The `dropdown-terminal.service` is very simple, and always keeps a (`alacritty`) terminal window running.
|
||||||
|
The program is started with a `scratchpad` class, which is picked up by [`i3`](i3) and automatically hidden.
|
||||||
|
You can then show/hide the terminal as a floating overlay as you need, mimicking a floating terminal
|
||||||
|
(by default with `super + shift + return`, though this may change).
|
||||||
|
When you close the window in any way, systemd automatically restarts it in the background.
|
||||||
|
|
Loading…
Reference in a new issue